cgen: fix `$if T !is` (#8311)
							parent
							
								
									b2f2f387dc
								
							
						
					
					
						commit
						02d8ede94d
					
				|  | @ -268,7 +268,8 @@ fn (mut g Gen) comp_if_expr(cond ast.Expr) { | |||
| 						// this is only allowed for generics currently, otherwise blocked by checker
 | ||||
| 						exp_type = g.unwrap_generic(left.typ) | ||||
| 					} | ||||
| 					g.write('$exp_type == $got_type') | ||||
| 					op := if cond.op == .key_is { '==' } else { '!=' } | ||||
| 					g.write('$exp_type $op $got_type') | ||||
| 				} | ||||
| 				.eq, .ne { | ||||
| 					// TODO Implement `$if method.args.len == 1`
 | ||||
|  |  | |||
|  | @ -0,0 +1,15 @@ | |||
| fn f<T>() int { | ||||
| 	$if T is int { | ||||
| 		return 1 | ||||
| 	} | ||||
| 	$if T !is int { | ||||
| 		return -1 | ||||
| 	} | ||||
| 	assert false | ||||
| 	return 0 | ||||
| } | ||||
| 
 | ||||
| fn test_generic_is() { | ||||
| 	assert f<int>() == 1 | ||||
| 	assert f<bool>() == -1 | ||||
| } | ||||
		Loading…
	
		Reference in New Issue