diff --git a/interpreter.c b/interpreter.c index 55a9c94..588a730 100644 --- a/interpreter.c +++ b/interpreter.c @@ -3257,13 +3257,14 @@ ReturnObject *interpretAssignmentStmtNode(StmtNode *node, { AssignmentStmtNode *stmt = (AssignmentStmtNode *)node->stmt; ValueObject *val = interpretExprNode(stmt->expr, scope); + if (!val) return NULL; /* interpolate assigned strings */ if (val->type == VT_STRING) { ValueObject *use = castStringImplicit(val, scope); deleteValueObject(val); + if (!use) return NULL; val = use; } - if (!val) return NULL; if (!updateScopeValue(scope, scope, stmt->target, val)) { deleteValueObject(val); return NULL;