diff --git a/components/codetools/examples/finddeclaration.lpi b/components/codetools/examples/finddeclaration.lpi
index c298f7e10e..2008fded09 100644
--- a/components/codetools/examples/finddeclaration.lpi
+++ b/components/codetools/examples/finddeclaration.lpi
@@ -26,7 +26,7 @@
-
+
@@ -37,6 +37,11 @@
+
+
+
+
+
diff --git a/components/codetools/examples/finddeclaration.lpr b/components/codetools/examples/finddeclaration.lpr
index c14b4e3a36..cd12ea2cf9 100644
--- a/components/codetools/examples/finddeclaration.lpr
+++ b/components/codetools/examples/finddeclaration.lpr
@@ -93,8 +93,9 @@ begin
X:=5;
Y:=43;
- writeln('FPCSrcDir=',Options.FPCSrcDir);
+ writeln('FPCDIR=',Options.FPCSrcDir);
writeln('PP=',Options.FPCPath);
+ writeln('LAZARUSDIR=',Options.LazarusSrcDir);
writeln('TARGET=',Options.TargetOS);
writeln('TARGETCPU=',Options.TargetProcessor);
if (ParamCount>=3) then begin
diff --git a/components/codetools/finddeclarationtool.pas b/components/codetools/finddeclarationtool.pas
index a4e4281b03..2550db613b 100644
--- a/components/codetools/finddeclarationtool.pas
+++ b/components/codetools/finddeclarationtool.pas
@@ -5927,6 +5927,7 @@ var
Params.Flags:=Params.Flags+[fdfSearchInParentNodes,fdfIgnoreCurContextNode];
end else begin
// only search in special context
+ Params.Flags:=Params.Flags+[fdfIgnoreUsedUnits];
end;
// check identifier for overloaded procs
@@ -5941,7 +5942,7 @@ var
// search ...
Params.SetIdentifier(Self,@Src[CurAtom.StartPos],@CheckSrcIdentifier);
{$IFDEF ShowExprEval}
- DebugLn(' ResolveIdentifier Ident="',GetIdentifier(Params.Identifier),'" ',Params.ContextNode.DescAsString,' ',dbgstr(copy(ExprType.Context.Tool.Src,Params.ContextNode.StartPos,15)));
+ DebugLn(' ResolveIdentifier Ident="',GetIdentifier(Params.Identifier),'" ContextNode=',Params.ContextNode.DescAsString,' ',dbgstr(copy(ExprType.Context.Tool.Src,Params.ContextNode.StartPos,15)));
{$ENDIF}
if ExprType.Context.Tool.FindIdentifierInContext(Params) then begin
if not Params.NewCodeTool.NodeIsConstructor(Params.NewNode) then begin
@@ -5979,9 +5980,10 @@ var
end;
if (ExprType.Context.Node.Desc in AllUsableSourceTypes) then begin
// identifier in front of the point is a unit name
- if ExprType.Context.Tool<>Self then begin
- ExprType.Context.Node:=ExprType.Context.Tool.GetInterfaceNode;
- end;
+ {$IFDEF ShowExprEval}
+ debugln(['ResolvePoint unit -> interface node']);
+ {$ENDIF}
+ ExprType.Context.Node:=ExprType.Context.Tool.GetInterfaceNode;
end
else if (ExprType.Context.Node.Desc=ctnClassOfType) then begin
// 'class of' plus '.' => jump to the class