gen: fix generic comp time if (#8254)
							parent
							
								
									d8c94cd1fd
								
							
						
					
					
						commit
						0d204603d1
					
				|  | @ -213,6 +213,11 @@ fn (mut g Gen) comp_if(node ast.IfExpr) { | ||||||
| 			if should_create_scope { | 			if should_create_scope { | ||||||
| 				g.writeln('}') | 				g.writeln('}') | ||||||
| 			} | 			} | ||||||
|  | 			if !comp_if_stmts_skip && branch.cond is ast.InfixExpr { | ||||||
|  | 				if (branch.cond as ast.InfixExpr).op == .key_is { | ||||||
|  | 					break | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
| 		} | 		} | ||||||
| 		g.defer_ifdef = '' | 		g.defer_ifdef = '' | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -80,3 +80,24 @@ fn test_generic_t_is3() { | ||||||
| 	} | 	} | ||||||
| 	assert res == GenericTIsTest{} | 	assert res == GenericTIsTest{} | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | fn test_generic_t_is_with_else() { | ||||||
|  | 	res := generic_t_is_with_else<GenericTIsTest>('') or { | ||||||
|  | 		assert false | ||||||
|  | 		GenericTIsTest{} | ||||||
|  | 	} | ||||||
|  | 	assert res == GenericTIsTest{} | ||||||
|  | 	str := generic_t_is_with_else<string>('test') or { | ||||||
|  | 		assert false | ||||||
|  | 		'' | ||||||
|  | 	} | ||||||
|  | 	assert str == 'test' | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | fn generic_t_is_with_else<T>(raw_data string) ?T { | ||||||
|  | 	$if T is string { | ||||||
|  | 		return raw_data | ||||||
|  | 	} $else { | ||||||
|  | 		return T{} | ||||||
|  | 	} | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue