fix bool expressions
							parent
							
								
									806691c1db
								
							
						
					
					
						commit
						edf8a2cd08
					
				|  | @ -30,8 +30,8 @@ void function2() { | ||||||
| 	while (true) { | 	while (true) { | ||||||
| 		foo(0); | 		foo(0); | ||||||
| 	} | 	} | ||||||
| 	int e = 1 + 2 > 0; | 	bool e = 1 + 2 > 0; | ||||||
| 	int e2 = 1 + 2 < 0; | 	bool e2 = 1 + 2 < 0; | ||||||
| 	int j = 0; | 	int j = 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -333,6 +333,13 @@ pub fn (p mut Parser) expr(rbp int) (ast.Expr,types.Type) { | ||||||
| 		else if prev_tok.is_left_assoc() { | 		else if prev_tok.is_left_assoc() { | ||||||
| 			mut expr := ast.Expr{} | 			mut expr := ast.Expr{} | ||||||
| 			expr,t2 = p.expr(prev_tok.precedence()) | 			expr,t2 = p.expr(prev_tok.precedence()) | ||||||
|  | 			op := prev_tok.kind | ||||||
|  | 			if op in [.gt, .lt, .ge, .le] { | ||||||
|  | 				typ = types.bool_type | ||||||
|  | 			} | ||||||
|  | 			else { | ||||||
|  | 				typ = t2 | ||||||
|  | 			} | ||||||
| 			// println(t2.name + '222')
 | 			// println(t2.name + '222')
 | ||||||
| 			node = ast.BinaryExpr{ | 			node = ast.BinaryExpr{ | ||||||
| 				left: node | 				left: node | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue