blob: c89db5720e791ca57cbc7d8b072edcae234e0d41 [file] [log] [blame]
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: ]