cgen: fix generic fn with anon fn in body (#12647)
							parent
							
								
									988779846f
								
							
						
					
					
						commit
						2144471ce1
					
				| 
						 | 
					@ -217,7 +217,9 @@ fn (mut g Gen) gen_fn_decl(node &ast.FnDecl, skip bool) {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	mut type_name := g.typ(node.return_type)
 | 
						mut type_name := g.typ(node.return_type)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	name = g.generic_fn_name(g.cur_concrete_types, name, true)
 | 
						if node.generic_names.len > 0 {
 | 
				
			||||||
 | 
							name = g.generic_fn_name(g.cur_concrete_types, name, true)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if g.pref.translated && node.attrs.contains('c') {
 | 
						if g.pref.translated && node.attrs.contains('c') {
 | 
				
			||||||
		// This fixes unknown symbols errors when building separate .c => .v files
 | 
							// This fixes unknown symbols errors when building separate .c => .v files
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,11 @@
 | 
				
			||||||
 | 
					fn foo<T>() string {
 | 
				
			||||||
 | 
						x := fn () string {
 | 
				
			||||||
 | 
							return 'ok'
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return x()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn test_generic_fn_with_anon_fn() {
 | 
				
			||||||
 | 
						ret := foo<int>()
 | 
				
			||||||
 | 
						assert ret == 'ok'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue