Skip to content

Commit 9a6027d

Browse files
committed
IDE: sort the output of LookedupTypeNames
Any changes to the order in which lookups happen would require changing all the regression tests.
1 parent 12cb368 commit 9a6027d

File tree

2 files changed

+18
-10
lines changed

2 files changed

+18
-10
lines changed

test/IDE/complete_member_basetypes.swift

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ protocol DerivedPComp: BaseP1, BaseP2 {}
1616

1717
func testInheritedArchetype(arg: some DerivedP1) {
1818
arg.#^TestDerivedP1^#
19-
// TestDerivedP1: LookedupTypeNames: ['Mod.DerivedP1', 'Mod.BaseP1']
19+
// TestDerivedP1: LookedupTypeNames: ['Mod.BaseP1', 'Mod.DerivedP1']
2020
}
2121

2222
func testMultiInheritedArchetype(arg: some DerivedPComp) {
2323
arg.#^TestDerivedPComp^#
24-
// TestDerivedPComp: LookedupTypeNames: ['Mod.DerivedPComp', 'Mod.BaseP1', 'Mod.BaseP2']
24+
// TestDerivedPComp: LookedupTypeNames: ['Mod.BaseP1', 'Mod.BaseP2', 'Mod.DerivedPComp']
2525
}
2626

2727
func testCompositionArchetype(arg: some BaseP1 & BaseP2) {
@@ -36,12 +36,12 @@ protocol DiamondTop: DiamondEdge1, DiamondEdge2 {}
3636

3737
func testDiamondProtocol(arg: some DiamondTop) {
3838
arg.#^TestDiamondTop^#
39-
// TestDiamondTop: LookedupTypeNames: ['Mod.DiamondTop', 'Mod.DiamondEdge1', 'Mod.DiamondRoot', 'Mod.DiamondEdge2']
39+
// TestDiamondTop: LookedupTypeNames: ['Mod.DiamondEdge1', 'Mod.DiamondEdge2', 'Mod.DiamondRoot', 'Mod.DiamondTop']
4040
}
4141

4242
func testExistential(arg: any DiamondTop) {
4343
arg.#^TestAnyDiamondTop^#
44-
// TestAnyDiamondTop: LookedupTypeNames: ['Mod.DiamondTop', 'Mod.DiamondEdge1', 'Mod.DiamondRoot', 'Mod.DiamondEdge2']
44+
// TestAnyDiamondTop: LookedupTypeNames: ['Mod.DiamondEdge1', 'Mod.DiamondEdge2', 'Mod.DiamondRoot', 'Mod.DiamondTop']
4545
}
4646

4747
class BaseClass {}
@@ -54,19 +54,19 @@ func testBasicClass(arg: BaseClass) {
5454

5555
func testSubClass(arg: DerivedClass) {
5656
arg.#^TestDerivedClass^#
57-
// TestDerivedClass: LookedupTypeNames: ['Mod.DerivedClass', 'Mod.BaseClass']
57+
// TestDerivedClass: LookedupTypeNames: ['Mod.BaseClass', 'Mod.DerivedClass']
5858
}
5959

6060
protocol BaseClassConstrainedP: BaseClass {}
6161
protocol DerivedClassConstrainedP: DerivedClass {}
6262

6363
func testClassConstrainedProto(arg: some BaseClassConstrainedP) {
6464
arg.#^TestBaseClassConstrainedP^#
65-
// TestBaseClassConstrainedP: LookedupTypeNames: ['Mod.BaseClassConstrainedP', 'Mod.BaseClass']
65+
// TestBaseClassConstrainedP: LookedupTypeNames: ['Mod.BaseClass', 'Mod.BaseClassConstrainedP']
6666
}
6767
func testClassConstriainedProto2(arg: some DerivedClassConstrainedP) {
6868
arg.#^TestDerivedClassConstrainedP^#
69-
// TestDerivedClassConstrainedP: LookedupTypeNames: ['Mod.DerivedClassConstrainedP', 'Mod.DerivedClass', 'Mod.BaseClass']
69+
// TestDerivedClassConstrainedP: LookedupTypeNames: ['Mod.BaseClass', 'Mod.DerivedClass', 'Mod.DerivedClassConstrainedP']
7070
}
7171

7272
class BaseClassWithProto: BaseP1 {}
@@ -79,7 +79,7 @@ func testBaseClassWithProto(arg: BaseClassWithProto) {
7979

8080
func testDerivedClassWithProto(arg: DerivedClassWithProto) {
8181
arg.#^TestDerivedClassWithProto^#
82-
// TestDerivedClassWithProto: LookedupTypeNames: ['Mod.DerivedClassWithProto', 'Mod.BaseP2', 'Mod.BaseP1', 'Mod.BaseClassWithProto']
82+
// TestDerivedClassWithProto: LookedupTypeNames: ['Mod.BaseClassWithProto', 'Mod.BaseP1', 'Mod.BaseP2', 'Mod.DerivedClassWithProto']
8383
}
8484

8585
struct GenericS<T> {}
@@ -92,6 +92,6 @@ func testConditionalConformanceNo(arg: GenericS<String>) {
9292

9393
func testConditionalConformanceYes(arg: GenericS<Int>) {
9494
arg.#^TestConditionalConformanceYes^#
95-
// TestConditionalConformanceYes: LookedupTypeNames: ['Mod.GenericS', 'Mod.BaseP1', 'Swift.Sendable']
95+
// TestConditionalConformanceYes: LookedupTypeNames: ['Mod.BaseP1', 'Mod.GenericS', 'Swift.Sendable']
9696

9797
}

tools/swift-ide-test/swift-ide-test.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1372,9 +1372,17 @@ printCodeCompletionLookedupTypeNames(ArrayRef<NullTerminatedStringRef> names,
13721372
if (names.empty())
13731373
return;
13741374

1375+
SmallVector<NullTerminatedStringRef, 2> sortedNames;
1376+
sortedNames.append(names.begin(), names.end());
1377+
llvm::sort(sortedNames,
1378+
[](NullTerminatedStringRef a, NullTerminatedStringRef b) {
1379+
return a.compare(b) <= 0;
1380+
});
1381+
13751382
OS << "LookedupTypeNames: [";
13761383
llvm::interleave(
1377-
names.begin(), names.end(), [&](auto name) { OS << "'" << name << "'"; },
1384+
sortedNames.begin(), sortedNames.end(),
1385+
[&](auto name) { OS << "'" << name << "'"; },
13781386
[&]() { OS << ", "; });
13791387
OS << "]\n";
13801388
}

0 commit comments

Comments
 (0)