diff --git a/server/src/e2e/suite/testcases/resolve/basic.test b/server/src/e2e/suite/testcases/resolve/basic.test index 451521c3..c2499a5d 100644 --- a/server/src/e2e/suite/testcases/resolve/basic.test +++ b/server/src/e2e/suite/testcases/resolve/basic.test @@ -43,6 +43,18 @@ fun test() { ------------------------------------------------------------------------ 4:4 -> 3:8 resolved +======================================================================== +Local variable resolve with same name function in call +======================================================================== +fun value() {} + +fun test() { + let value = 1; + value(); +} +------------------------------------------------------------------------ +4:4 -> 0:4 resolved + ======================================================================== Parameter resolve ======================================================================== diff --git a/server/src/psi/Reference.ts b/server/src/psi/Reference.ts index a5620967..5f7ad528 100644 --- a/server/src/psi/Reference.ts +++ b/server/src/psi/Reference.ts @@ -312,14 +312,21 @@ export class Reference { } } - if (!this.processBlock(proc, state)) return false - if (parent?.type === "asm_arrangement_args") { // `asm(cell self) extends fun storeRef(self: Builder, cell: Cell): Builder` // ^^^^ this return this.resolveAsmArrangementArgs(parent, proc, state) } + if (parent?.type === "static_call_expression") { + // let context = context(); + // context(); + // ^^^^^^^ resolve only as global symbol + return this.processAllEntities(proc, state) + } + + if (!this.processBlock(proc, state)) return false + return this.processAllEntities(proc, state) }