diff options
| author | gingerBill <ginger.bill.22@gmail.com> | 2016-07-25 11:14:25 +0100 |
|---|---|---|
| committer | gingerBill <ginger.bill.22@gmail.com> | 2016-07-25 11:14:25 +0100 |
| commit | 32ab8fcf99df786c264ca566799b022c66cca34b (patch) | |
| tree | 79b3f9642c1e49c3995b417fd8b599a20974f564 /src/checker/expression.cpp | |
| parent | 9d8355d3612e65a5764640fb972bc4ef9f013088 (diff) | |
`alias` and unified parameters lists for procedures and structures.
Diffstat (limited to 'src/checker/expression.cpp')
| -rw-r--r-- | src/checker/expression.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/checker/expression.cpp b/src/checker/expression.cpp index 1cc36cc65..9302990b5 100644 --- a/src/checker/expression.cpp +++ b/src/checker/expression.cpp @@ -123,13 +123,13 @@ void check_procedure_type(Checker *c, Type *type, AstNode *proc_type_node) { // gb_printf("%td -> %td\n", param_count, result_count); Type *params = check_get_params(c, c->context.scope, proc_type_node->procedure_type.param_list, param_count); - Type *results = check_get_results(c, c->context.scope, proc_type_node->procedure_type.results_list, result_count); + Type *results = check_get_results(c, c->context.scope, proc_type_node->procedure_type.result_list, result_count); - type->procedure.scope = c->context.scope; - type->procedure.params = params; - type->procedure.params_count = proc_type_node->procedure_type.param_count; - type->procedure.results = results; - type->procedure.results_count = proc_type_node->procedure_type.result_count; + type->procedure.scope = c->context.scope; + type->procedure.params = params; + type->procedure.param_count = proc_type_node->procedure_type.param_count; + type->procedure.results = results; + type->procedure.result_count = proc_type_node->procedure_type.result_count; } @@ -171,6 +171,7 @@ void check_identifier(Checker *c, Operand *o, AstNode *n, Type *named_type) { break; case Entity_TypeName: + case Entity_AliasName: o->mode = Addressing_Type; break; @@ -1416,9 +1417,9 @@ ExpressionKind check_call_expression(Checker *c, Operand *operand, AstNode *call check_call_arguments(c, operand, proc_type, call); auto *proc = &proc_type->procedure; - if (proc->results_count == 0) { + if (proc->result_count == 0) { operand->mode = Addressing_NoValue; - } else if (proc->results_count == 1) { + } else if (proc->result_count == 1) { operand->mode = Addressing_Value; operand->type = proc->results->tuple.variables[0]->type; } else { @@ -1524,7 +1525,6 @@ void check_expression_with_type_hint(Checker *c, Operand *o, AstNode *e, Type *t } } - ExpressionKind check__expression_base(Checker *c, Operand *o, AstNode *node, Type *type_hint) { ExpressionKind kind = Expression_Statement; |