cgen: fix error for anon fn decl inside ternary (#14150)
							parent
							
								
									60e205a193
								
							
						
					
					
						commit
						88f22b4367
					
				| 
						 | 
					@ -379,7 +379,10 @@ fn (mut g Gen) gen_fn_decl(node &ast.FnDecl, skip bool) {
 | 
				
			||||||
	defer {
 | 
						defer {
 | 
				
			||||||
		g.tmp_count = ctmp
 | 
							g.tmp_count = ctmp
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						prev_inside_ternary := g.inside_ternary
 | 
				
			||||||
 | 
						g.inside_ternary = 0
 | 
				
			||||||
	g.stmts(node.stmts)
 | 
						g.stmts(node.stmts)
 | 
				
			||||||
 | 
						g.inside_ternary = prev_inside_ternary
 | 
				
			||||||
	if node.is_noreturn {
 | 
						if node.is_noreturn {
 | 
				
			||||||
		g.writeln('\twhile(1);')
 | 
							g.writeln('\twhile(1);')
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,25 @@
 | 
				
			||||||
 | 
					fn foofun(op rune) fn () string {
 | 
				
			||||||
 | 
						return match op {
 | 
				
			||||||
 | 
							`1` {
 | 
				
			||||||
 | 
								fn () string {
 | 
				
			||||||
 | 
									return '1 passed'
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							`2` {
 | 
				
			||||||
 | 
								fn () string {
 | 
				
			||||||
 | 
									return '2 passed'
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							else {
 | 
				
			||||||
 | 
								fn () string {
 | 
				
			||||||
 | 
									return 'Nor 1 or 2 passed'
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn test_anon_fn_decl_inside_ternary() {
 | 
				
			||||||
 | 
						a := foofun(`1`)
 | 
				
			||||||
 | 
						println(a())
 | 
				
			||||||
 | 
						assert a() == '1 passed'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue