From f25818e9230b77bbe3a3422c75d1544c9b417fcf Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 15 Jul 2019 21:18:37 +0100 Subject: Make procedure parameters just named values rather than copied variables --- src/check_stmt.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/check_stmt.cpp') diff --git a/src/check_stmt.cpp b/src/check_stmt.cpp index 24f540930..e2090688f 100644 --- a/src/check_stmt.cpp +++ b/src/check_stmt.cpp @@ -303,9 +303,13 @@ Type *check_assignment_variable(CheckerContext *ctx, Operand *lhs, Operand *rhs) } } + Entity *e = entity_of_ident(lhs->expr); + gbString str = expr_to_string(lhs->expr); if (lhs->mode == Addressing_Immutable) { error(lhs->expr, "Cannot assign to an immutable: '%s'", str); + } else if (e != nullptr && e->flags & EntityFlag_Param) { + error(lhs->expr, "Cannot assign to '%s' which is a procedure parameter", str); } else { error(lhs->expr, "Cannot assign to '%s'", str); } -- cgit v1.2.3