diff --git a/components/codetools/tests/moduletests/fdt_nestedaliasclass.pas b/components/codetools/tests/moduletests/fdt_nestedaliasclass.pas new file mode 100644 index 0000000000..15dc06bb42 --- /dev/null +++ b/components/codetools/tests/moduletests/fdt_nestedaliasclass.pas @@ -0,0 +1,54 @@ +{ + ./testcodetools --format=plain --suite=TestFindDeclaration_NestedClasses +} +unit fdt_nestedaliasclass; + +{$mode objfpc}{$H+} + +interface + +uses + Classes, SysUtils; + +type + TBird = class + public type + TBirdWing = class + public + Span: word; + procedure Fly; virtual; + end; + end; + + TEagle = class(TBird) + public type + TAliasBirdWing = TBirdWing{declaration:fdt_nestedaliasclass.TBird.TBirdWing}; + TEagleWing = class(TAliasBirdWing{declaration:fdt_nestedaliasclass.TEagle.TAliasBirdWing}) + public + procedure Fly; override; + end; + end; + +implementation + +{ TBird.TBirdWing } + +procedure TBird.TBirdWing.Fly; +begin + +end; + +{ TEagle.TEagleWing } + +procedure TEagle.TEagleWing.Fly; +begin + //Span{declaration:fdt_nestedaliasclass.TBird.TBirdWing.Span}:=3; +end; + +var + Wing: TEagle.TEagleWing; +begin + Wing:=TEagle.TEagleWing{declaration:fdt_nestedaliasclass.TEagle.TEagleWing}.Create; + // Wing.Fly{declaration:fdt_nestedaliasclass.TEagle.TEagleWing.Fly}; +end. + diff --git a/components/codetools/tests/testfinddeclaration.pas b/components/codetools/tests/testfinddeclaration.pas index e714b1c02f..c151099e46 100644 --- a/components/codetools/tests/testfinddeclaration.pas +++ b/components/codetools/tests/testfinddeclaration.pas @@ -86,6 +86,7 @@ type procedure TestFindDeclaration_With; procedure TestFindDeclaration_ClassOf; procedure TestFindDeclaration_NestedClasses; + procedure TestFindDeclaration_NestedAliasClass; procedure TestFindDeclaration_ClassHelper; procedure TestFindDeclaration_TypeHelper; procedure TestFindDeclaration_ObjCClass; @@ -586,6 +587,11 @@ begin FindDeclarations('moduletests/fdt_nestedclasses.pas'); end; +procedure TTestFindDeclaration.TestFindDeclaration_NestedAliasClass; +begin + FindDeclarations('moduletests/fdt_nestedaliasclass.pas'); +end; + procedure TTestFindDeclaration.TestFindDeclaration_ClassHelper; begin FindDeclarations('moduletests/fdt_classhelper.pas');