Added unary expressions to semcheck and codegen.
This commit is contained in:
@@ -330,6 +330,7 @@ no_matching_overload_found :: (checker : *Semantic_Checker, call : *AST_Node, ov
|
||||
record_error(checker, message, locations, false);
|
||||
}
|
||||
|
||||
|
||||
not_all_control_paths_return_value :: (checker : *Semantic_Checker, node : *AST_Node) {
|
||||
builder : String_Builder;
|
||||
init_string_builder(*builder,, temp);
|
||||
@@ -1374,6 +1375,19 @@ check_node :: (checker : *Semantic_Checker, node : *AST_Node) -> Type_Variable_H
|
||||
field_var := create_field(checker, node);
|
||||
return field_var;
|
||||
}
|
||||
case .Unary; {
|
||||
var := check_node(checker, node.children[0]);
|
||||
variable, handle := new_type_variable(checker);
|
||||
type := from_handle(checker, var);
|
||||
variable.type = type.type;
|
||||
variable.typename = type.typename;
|
||||
variable.scope = type.scope;
|
||||
variable.source_node = node;
|
||||
node.type_variable = handle;
|
||||
add_child(variable, var);
|
||||
|
||||
return handle;
|
||||
}
|
||||
case .Binary; {
|
||||
lhs_var := check_node(checker, node.children[0]);
|
||||
if lhs_var == 0 {
|
||||
|
||||
Reference in New Issue
Block a user