File tree Expand file tree Collapse file tree 2 files changed +11
-0
lines changed
delphi-frontend/src/main/java/au/com/integradev/delphi/symbol/resolve Expand file tree Collapse file tree 2 files changed +11
-0
lines changed Original file line number Diff line number Diff line change @@ -319,6 +319,13 @@ public void resolve(RoutineImplementationNode routine) {
319319 }
320320
321321 resolver .disambiguateIsClassInvocable (routine .isClassMethod ());
322+
323+ if (resolver .nameResolutionFailed () && !routine .getNameReferenceNode ().isQualified ()) {
324+ // No interface declaration found, and not a qualified name so it can't be a method.
325+ // It must be an implementation-local routine.
326+ return ;
327+ }
328+
322329 resolver .addToSymbolTable ();
323330
324331 completeTypeParameterReferences (routine );
Original file line number Diff line number Diff line change @@ -203,6 +203,10 @@ public boolean isAmbiguous() {
203203 return declarations .size () > 1 ;
204204 }
205205
206+ public boolean nameResolutionFailed () {
207+ return names .size () != resolvedDeclarations .size () + Math .min (1 , declarations .size ());
208+ }
209+
206210 private void checkAmbiguity () {
207211 if (isAmbiguous ()) {
208212 if (LOG .isWarnEnabled ()) {
You can’t perform that action at this time.
0 commit comments