Fix type result on binary compuations.
This commit is contained in:
@@ -1435,9 +1435,13 @@ check_node :: (checker : *Semantic_Checker, node : *AST_Node) -> Type_Variable_H
|
||||
|
||||
variable, handle := new_type_variable(checker);
|
||||
lhs_type := from_handle(checker, lhs_var);
|
||||
variable.type = lhs_type.type;
|
||||
rhs_type := from_handle(checker, rhs_var);
|
||||
|
||||
|
||||
|
||||
variable.type = lhs_type.type;
|
||||
variable.typename = lhs_type.typename;
|
||||
variable.scope = lhs_type.scope;
|
||||
variable.scope = lhs_type.scope;
|
||||
variable.source_node = node;
|
||||
node.type_variable = handle;
|
||||
add_child(variable, lhs_var);
|
||||
@@ -1452,6 +1456,16 @@ check_node :: (checker : *Semantic_Checker, node : *AST_Node) -> Type_Variable_H
|
||||
type_mismatch(checker, node, node.children[1], lhs_var, rhs_var);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if lhs_type.type == .Struct {
|
||||
variable.type = lhs_type.type;
|
||||
variable.typename = lhs_type.typename;
|
||||
variable.scope = lhs_type.scope;
|
||||
} else if rhs_type.type == .Struct {
|
||||
variable.type = rhs_type.type;
|
||||
variable.typename = rhs_type.typename;
|
||||
variable.scope = rhs_type.scope;
|
||||
}
|
||||
}
|
||||
case .TOKEN_ASSIGN; {
|
||||
if !types_compatible(checker, lhs_var, rhs_var) {
|
||||
|
||||
Reference in New Issue
Block a user