func test(x: Foo) { x. } func bad() {} func good() {} func okay() {} struct Foo { func bad() { } func good() { } func good(_ p1: Int, p2: Any..., p3: ()->(), p4: (Int, Int), p5: inout Int) { } func okay() {} var sad: Int var xhappy: Int var zmeh: Int } // REQUIRES: objc_interop // RUN: %sourcekitd-test -req=complete.open -pos=2:1 -req-opts=hidelowpriority=0 %s -- %s > %t.nopopular.top // RUN: %sourcekitd-test -req=complete.open -pos=3:5 %s -- %s > %t.nopopular.foo // RUN: %FileCheck %s -check-prefix=NOPOP_TOP < %t.nopopular.top // RUN: %FileCheck %s -check-prefix=NOPOP_FOO < %t.nopopular.foo // RUN: %sourcekitd-test -req=complete.setpopularapi -req-opts=popular=%s.popular,unpopular=%s.unpopular \ // RUN: == -req=complete.open -req-opts=hidelowpriority=0 -pos=2:1 %s -- %s > %t.popular.top // RUN: %sourcekitd-test -req=complete.setpopularapi -req-opts=popular=%s.popular,unpopular=%s.unpopular \ // RUN: == -req=complete.open -pos=3:5 %s -- %s > %t.popular.foo // RUN: %FileCheck %s -check-prefix=POP_TOP < %t.popular.top // RUN: %FileCheck %s -check-prefix=POP_FOO < %t.popular.foo // NOPOP_TOP: key.name: "bad() // NOPOP_TOP: key.name: "good() // NOPOP_TOP: key.name: "okay() // POP_TOP: key.name: "good() // POP_TOP: key.name: "okay() // POP_TOP: key.name: "bad() // NOPOP_FOO: key.name: "bad() // NOPOP_FOO: key.name: "good() // NOPOP_FOO: key.name: "good(:p2:p3:p4:p5:) // NOPOP_FOO: key.name: "okay() // NOPOP_FOO: key.name: "sad // NOPOP_FOO: key.name: "xhappy // NOPOP_FOO: key.name: "zmeh // POP_FOO: key.name: "good(:p2:p3:p4:p5:) // POP_FOO: key.name: "good() // POP_FOO: key.name: "xhappy // POP_FOO: key.name: "okay() // POP_FOO: key.name: "zmeh // POP_FOO: key.name: "sad // POP_FOO: key.name: "bad() // RUN: %complete-test -hide-none -fuzz -group=none -popular="%s.popular" -unpopular="%s.unpopular" -tok=POPULAR_STMT_0 %s -- -I %S/Inputs > %t.popular.stmt.0 // RUN: %FileCheck %s -check-prefix=POPULAR_STMT_0 < %t.popular.stmt.0 import PopularAPI var globalColor = 0 struct OuterNominal { var fromOuterNominalColor: Int = 0 class Super { var fromSuperColor: Int = 0 } class Derived : Super { var fromDerivedColor: Int = 0 func test(argColor: Int) { let localColor = 1 #^POPULAR_STMT_0,,col^# // POPULAR_STMT_0-LABEL: Results for filterText: [ // POPULAR_STMT_0: argColor // POPULAR_STMT_0: localColor // POPULAR_STMT_0: fromDerivedColor // POPULAR_STMT_0: fromSuperColor // POPULAR_STMT_0: good() // POPULAR_STMT_0: fromOuterNominalColor // POPULAR_STMT_0: DDModuleColor // POPULAR_STMT_0: CCModuleColor // POPULAR_STMT_0: EEModuleColor // POPULAR_STMT_0: globalColor // POPULAR_STMT_0: okay() // POPULAR_STMT_0: ModuleCollaborate // POPULAR_STMT_0: bad() // POPULAR_STMT_0: ] // POPULAR_STMT_0-LABEL: Results for filterText: col [ // POPULAR_STMT_0: argColor // POPULAR_STMT_0: localColor // POPULAR_STMT_0: fromDerivedColor // POPULAR_STMT_0: fromSuperColor // POPULAR_STMT_0: fromOuterNominalColor // POPULAR_STMT_0: globalColor // POPULAR_STMT_0: DDModuleColor // POPULAR_STMT_0: CCModuleColor // POPULAR_STMT_0: EEModuleColor // POPULAR_STMT_0: ModuleCollaborate // POPULAR_STMT_0: BBModuleColor // POPULAR_STMT_0: AAModuleColor // POPULAR_STMT_0: ] } } } struct Outer { struct ABTabularMonkey {} struct ABTextMockery {} struct ABTradeableEquity {} struct ABVocalContour {} struct ABBobtail {} struct ABFont {} } // RUN: %complete-test -hide-none -fuzz -group=none -popular="%s.popular" -unpopular="%s.unpopular" -tok=POPULAR_VS_PREFIX_1 %s -- -I %S/Inputs | %FileCheck %s -check-prefix=POPULAR_VS_PREFIX_1 func testPopularityVsPrefixMatch1() { let x: Outer.#^POPULAR_VS_PREFIX_1,,AB,ABT^# } // POPULAR_VS_PREFIX_1-LABEL: Results for filterText: [ // POPULAR_VS_PREFIX_1-NEXT: ABVocalContour // POPULAR_VS_PREFIX_1-NEXT: ABBobtail // POPULAR_VS_PREFIX_1-NEXT: ABFont // POPULAR_VS_PREFIX_1-NEXT: ABTabularMonkey // POPULAR_VS_PREFIX_1-NEXT: ABTextMockery // POPULAR_VS_PREFIX_1-NEXT: ABTradeableEquity // POPULAR_VS_PREFIX_1: ] // POPULAR_VS_PREFIX_1-LABEL: Results for filterText: AB [ // POPULAR_VS_PREFIX_1-NEXT: ABVocalContour // POPULAR_VS_PREFIX_1-NEXT: ABBobtail // POPULAR_VS_PREFIX_1-NEXT: ABFont // POPULAR_VS_PREFIX_1-NEXT: ABTextMockery // POPULAR_VS_PREFIX_1-NEXT: ABTabularMonkey // POPULAR_VS_PREFIX_1-NEXT: ABTradeableEquity // POPULAR_VS_PREFIX_1-NEXT: ] // POPULAR_VS_PREFIX_1-LABEL: Results for filterText: ABT [ // POPULAR_VS_PREFIX_1-NEXT: ABTextMockery // POPULAR_VS_PREFIX_1-NEXT: ABTabularMonkey // POPULAR_VS_PREFIX_1-NEXT: ABTradeableEquity // POPULAR_VS_PREFIX_1-NEXT: ABVocalContour // POPULAR_VS_PREFIX_1-NEXT: ABBobtail // POPULAR_VS_PREFIX_1-NEXT: ABFont // POPULAR_VS_PREFIX_1-NEXT: ]