Skip to content

Commit b7e1288

Browse files
cirrasfourls
authored andcommitted
Fix various name resolution failures in DelphiSymbolTableExecutorTest
These failures weren't important to the tests, but it's best for this code to be as well-formed as possible. Plus, it helped in identifying cases where we were logging name resolution failures erroneously.
1 parent ce6afcb commit b7e1288

File tree

13 files changed

+38
-42
lines changed

13 files changed

+38
-42
lines changed

delphi-frontend/src/test/java/au/com/integradev/delphi/executor/DelphiSymbolTableExecutorTest.java

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -325,8 +325,8 @@ void testSelfTypes() {
325325
@Test
326326
void testSelfInNestedProcedures() {
327327
execute("SelfInNestedProcedures.pas");
328-
verifyUsages(17, 11, reference(34, 2));
329-
verifyUsages(19, 11, reference(29, 4), reference(38, 4));
328+
verifyUsages(17, 11, reference(37, 2));
329+
verifyUsages(19, 11, reference(32, 4), reference(41, 4));
330330
}
331331

332332
@Test
@@ -499,8 +499,8 @@ void testSimpleTypeResolution() {
499499
@Test
500500
void testCharTypeResolution() {
501501
execute("typeResolution/Chars.pas");
502-
verifyUsages(7, 9, reference(22, 2));
503-
verifyUsages(12, 9, reference(23, 2));
502+
verifyUsages(7, 10, reference(22, 2));
503+
verifyUsages(12, 10, reference(23, 2));
504504
}
505505

506506
@Test
@@ -1073,10 +1073,10 @@ void testGenericParameterizedMethods() {
10731073
11,
10741074
14,
10751075
reference(16, 15),
1076-
reference(29, 2),
1077-
reference(30, 2),
1078-
reference(31, 2),
1079-
reference(32, 2));
1076+
reference(23, 2),
1077+
reference(24, 2),
1078+
reference(25, 2),
1079+
reference(26, 2));
10801080
}
10811081

10821082
@Test
@@ -1606,15 +1606,21 @@ private static Path createStandardLibrary(Path baseDir) {
16061606
"unit System;\n"
16071607
+ "interface\n"
16081608
+ "type\n"
1609+
+ " TArray<T> = array of T;\n"
16091610
+ " TObject = class\n"
1610-
+ " constructor Create;"
1611+
+ " constructor Create;\n"
1612+
+ " procedure Free;\n"
16111613
+ " end;\n"
16121614
+ " IInterface = interface\n"
16131615
+ " end;\n"
1614-
+ " TClassHelperBase = class\n"
1616+
+ " TInterfacedObject = class(TObject, IInterface)\n"
1617+
+ " end;\n"
1618+
+ " TClassHelperBase = class(TInterfacedObject, IInterface)\n"
16151619
+ " end;\n"
16161620
+ " TVarRec = record\n"
16171621
+ " end;\n"
1622+
+ " TCustomAttribute = class(TObject)\n"
1623+
+ " end;\n"
16181624
+ "implementation\n"
16191625
+ "end.");
16201626

@@ -1716,7 +1722,7 @@ private static Path createStandardLibrary(Path baseDir) {
17161722
+ "function MessageDlg(const Msg: string; DlgType: TMsgDlgType;\n"
17171723
+ " Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;\n"
17181724
+ "begin\n"
1719-
+ " Result := MessageDlgPosHelp(Msg, DlgType, Buttons, HelpCtx, -1, -1, '');\n"
1725+
+ " // ...\n"
17201726
+ "end;\n"
17211727
+ "\n"
17221728
+ "end.");

delphi-frontend/src/test/resources/au/com/integradev/delphi/symbol/BareInterfaceMethodReference.pas

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
interface
44

55
function Foo(Baz: Integer): Integer;
6-
function ExternalFunc(Result: Booelan): Boolean;
6+
function ExternalFunc(Result: Boolean): Boolean;
77

88
implementation
99

delphi-frontend/src/test/resources/au/com/integradev/delphi/symbol/BestEffortArguments.pas

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ procedure Foo;
88
var
99
Bar: Integer;
1010
begin
11-
Baz(Bar)[Bar];
11+
Baz(Bar)[Bar]; // The Baz invocation does not resolve, but the Bar expressions still should.
1212
end;
1313

1414
end.

delphi-frontend/src/test/resources/au/com/integradev/delphi/symbol/SelfInNestedProcedures.pas

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ implementation
2222

2323
uses System.SysUtils;
2424

25+
type
26+
TProc<T> = reference to procedure(Arg: T);
27+
2528
procedure TFoo.MyProc;
2629

2730
procedure SubProc(Self: TBaz);

delphi-frontend/src/test/resources/au/com/integradev/delphi/symbol/classReferences/ArgumentResolution.pas

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ TMetaFoo = class of TFoo;
1515

1616
implementation
1717

18-
procedure CallBaz(Meta: TMetaFoo);
18+
procedure AcceptFooType(Meta: TMetaFoo);
1919
begin
20-
Baz.Baz;
20+
// ...
2121
end;
2222

2323
procedure Test;
2424
begin
25-
CallBaz(TFoo);
26-
CallBaz(TBar);
25+
AcceptFooType(TFoo);
26+
AcceptFooType(TBar);
2727
end;
2828

2929

delphi-frontend/src/test/resources/au/com/integradev/delphi/symbol/dependencies/Helper.pas

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,7 @@ implementation
77
uses
88
System.SysUtils;
99

10-
function Foo: Boolean;
11-
begin
12-
Result := HelperDependency.Bar.NONEXISTENT;
13-
end;
14-
15-
function Bar: Boolean;
10+
function IsStringEmpty: Boolean;
1611
begin
1712
Result := ''.IsEmpty;
1813
end;

delphi-frontend/src/test/resources/au/com/integradev/delphi/symbol/dependencies/imports/UnitWithGetEnumeratorForTObject.pas

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ interface
66
TObjectHelper = class helper for TObject
77
function GetEnumerator: TObject;
88
function MoveNext: Boolean;
9-
property Current: TObject read Foo;
9+
property Current: TObject;
1010
end;
1111

1212
implementation

delphi-frontend/src/test/resources/au/com/integradev/delphi/symbol/generics/ParameterizedMethod.pas

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,8 @@ TFoo = class
1414
implementation
1515

1616
procedure TFoo.CompareAndPrintResult<T>(X, Y: T);
17-
var
18-
Comparer : IComparer<T>;
1917
begin
20-
Comparer := TComparer<T>.Default;
21-
if Comparer.Compare(X, Y) = 0 then
22-
WriteLn('Both members compare as equal')
23-
else
24-
WriteLn('Members do not compare as equal');
18+
// ...
2519
end;
2620

2721
procedure TFoo.Test;

delphi-frontend/src/test/resources/au/com/integradev/delphi/symbol/operators/UnaryOperatorOverloads.pas

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ implementation
1919
Result := True;
2020
end;
2121

22-
class operator TFoo.Positive(Foo: TFoo): String;
22+
class operator TFoo.Positive(Foo: TFoo): Integer;
2323
begin
24-
Result := '';
24+
Result := 123;
2525
end;
2626

27-
class operator TFoo.Negative(Foo: TFoo): Integer;
27+
class operator TFoo.Negative(Foo: TFoo): String;
2828
begin
29-
Result := 123;
29+
Result := '';
3030
end;
3131

3232
procedure ExpectBoolean(Bool: Boolean);

delphi-frontend/src/test/resources/au/com/integradev/delphi/symbol/overloads/CharInSet.pas

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ TFoo = class(TObject)
1010
protected
1111
FChar: Char;
1212
public
13-
property CharProperty: Char read FToken;
13+
property CharProperty: Char read FChar;
1414
function Test(TokenChar: TCharSet): Boolean;
1515
end;
1616

0 commit comments

Comments
 (0)