diff --git a/src/types/resolveExpression.ts b/src/types/resolveExpression.ts index a44850e64..871f97082 100644 --- a/src/types/resolveExpression.ts +++ b/src/types/resolveExpression.ts @@ -418,7 +418,7 @@ export function resolveConditional(ast: ASTConditional, sctx: StatementContext, export function resolveLValueRef(path: ASTLvalueRef[], sctx: StatementContext, ctx: CompilerContext): CompilerContext { const paths: ASTLvalueRef[] = path; - let t = sctx.vars[paths[0].name]; + let t = sctx.vars.get(paths[0].name); if (!t) { throwError(`Variable "${paths[0].name}" not found`, paths[0].ref); } @@ -487,7 +487,7 @@ export function resolveExpression(exp: ASTExpression, sctx: StatementContext, ct if (exp.kind === 'id') { // Find variable - const v = sctx.vars[exp.value]; + const v = sctx.vars.get(exp.value); if (!v) { if (!hasStaticConstant(ctx, exp.value)) { throwError('Unable to resolve id ' + exp.value, exp.ref); diff --git a/src/types/resolveStatements.ts b/src/types/resolveStatements.ts index 072a44953..0f80759ca 100644 --- a/src/types/resolveStatements.ts +++ b/src/types/resolveStatements.ts @@ -51,11 +51,8 @@ function addVariable(name: string, ref: TypeRef, src: StatementContext): Stateme } return { ...src, - vars: new Map({ - ...src.vars, - [name]: ref - }) - }; + vars: new Map(src.vars).set(name, ref) + } } function processCondition(condition: ASTCondition, sctx: StatementContext, ctx: CompilerContext): { ctx: CompilerContext, sctx: StatementContext } {