From b3b380964c10175712af504b2140982811c6438d Mon Sep 17 00:00:00 2001 From: Irmen de Jong Date: Sat, 4 Mar 2023 13:24:33 +0100 Subject: [PATCH] remove searchParameter() from lookups it shouldn't be needed to look up subroutine parameters by scoped name --- compilerAst/src/prog8/ast/AstToplevel.kt | 6 ------ .../src/prog8/ast/statements/AstStatements.kt | 16 ---------------- 2 files changed, 22 deletions(-) diff --git a/compilerAst/src/prog8/ast/AstToplevel.kt b/compilerAst/src/prog8/ast/AstToplevel.kt index 83eecb231..ebf1e50b0 100644 --- a/compilerAst/src/prog8/ast/AstToplevel.kt +++ b/compilerAst/src/prog8/ast/AstToplevel.kt @@ -76,9 +76,6 @@ interface IStatementContainer { fun isNotEmpty(): Boolean = statements.isNotEmpty() fun searchSymbol(name: String): Statement? { - if(this is Subroutine && isAsmSubroutine) - return searchParameter(name) - // this is called quite a lot and could perhaps be optimized a bit more, // but adding a memoization cache didn't make much of a practical runtime difference... for (stmt in statements) { @@ -139,9 +136,6 @@ interface IStatementContainer { } } - if(this is Subroutine && !isAsmSubroutine) - return searchParameter(name) - return null } diff --git a/compilerAst/src/prog8/ast/statements/AstStatements.kt b/compilerAst/src/prog8/ast/statements/AstStatements.kt index bbcb50512..a11c3501c 100644 --- a/compilerAst/src/prog8/ast/statements/AstStatements.kt +++ b/compilerAst/src/prog8/ast/statements/AstStatements.kt @@ -720,22 +720,6 @@ class Subroutine(override val name: String, override fun accept(visitor: AstWalker, parent: Node) = visitor.visit(this, parent) override fun toString() = "Subroutine(name=$name, parameters=$parameters, returntypes=$returntypes, ${statements.size} statements, address=$asmAddress)" - - // code to provide the ability to reference asmsub parameters via qualified name: - private val asmParamsDecls = mutableMapOf() - - fun searchParameter(name: String): VarDecl? { - // TODO can we get rid of this routine? it makes temporary vardecls... - val existingDecl = asmParamsDecls[name] - if(existingDecl!=null) - return existingDecl - - val param = parameters.firstOrNull {it.name==name} ?: return null - val decl = VarDecl.fromParameter(param) - decl.linkParents(this) - asmParamsDecls[name] = decl - return decl - } } open class SubroutineParameter(val name: String,