mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
That way, when the request gets truncated by os_log in sourcekit-lsp, we see most of the request. Most likely the sourcetext and the compiler args wouldn't have made it into the log message completely anyway. rdar://121322828
81 lines
3.0 KiB
Swift
81 lines
3.0 KiB
Swift
|
|
protocol FooProtocol {
|
|
/// fooInstanceVar Aaa.
|
|
/// Bbb.
|
|
///
|
|
/// Ccc.
|
|
var fooInstanceVar: Int { get }
|
|
typealias FooTypeAlias1
|
|
func fooInstanceFunc0() -> Double
|
|
func fooInstanceFunc1(_ a: Int) -> Double
|
|
subscript(i: Int) -> Double { get }
|
|
}
|
|
|
|
func test1(_ a: FooProtocol) {
|
|
a.
|
|
}
|
|
|
|
func testOptional1(_ a: FooProtocol?) {
|
|
a.
|
|
}
|
|
|
|
class C {
|
|
@available(*, unavailable) func unavail() {}
|
|
}
|
|
|
|
func test_unavail(_ a: C) {
|
|
a.
|
|
}
|
|
|
|
class Base {
|
|
func foo() {}
|
|
}
|
|
|
|
class Derived: Base {
|
|
override func foo() {}
|
|
}
|
|
|
|
func testOverrideUSR() {
|
|
Derived().
|
|
}
|
|
|
|
// RUN: %sourcekitd-test -req=complete -pos=15:5 %s -- %s > %t.response
|
|
// RUN: %diff -u %s.response %t.response
|
|
//
|
|
// RUN: %sourcekitd-test -req=complete -pos=19:5 %s -- %s | %FileCheck %s -check-prefix=CHECK-OPTIONAL
|
|
// RUN: %sourcekitd-test -req=complete.open -pos=19:5 %s -- %s | %FileCheck %s -check-prefix=CHECK-OPTIONAL-OPEN
|
|
// CHECK-OPTIONAL: {
|
|
// CHECK-OPTIONAL: key.kind: source.lang.swift.decl.function.method.instance,
|
|
// CHECK-OPTIONAL: key.name: "fooInstanceFunc0()",
|
|
// CHECK-OPTIONAL-LABEL: key.description: "fooInstanceFunc1(a: Int)",
|
|
// CHECK-OPTIONAL-NEXT: key.typename: "Double",
|
|
// CHECK-OPTIONAL-NEXT: key.context: source.codecompletion.context.thisclass,
|
|
// CHECK-OPTIONAL-NEXT: key.typerelation: source.codecompletion.typerelation.unknown,
|
|
// CHECK-OPTIONAL-NEXT: key.num_bytes_to_erase: 1,
|
|
// CHECK-OPTIONAL-NEXT: key.associated_usrs: "s:15complete_member11FooProtocolP16fooInstanceFunc1ySdSiF",
|
|
// CHECK-OPTIONAL-NEXT: key.modulename: "complete_member",
|
|
// CHECK-OPTIONAL-NEXT: key.sourcetext: "?.fooInstanceFunc1(<#T##a: Int##Int#>)"
|
|
// CHECK-OPTIONAL-NEXT: },
|
|
|
|
// RUN: %sourcekitd-test -req=complete.open -pos=19:5 %s -- %s | %FileCheck %s -check-prefix=CHECK-OPTIONAL-OPEN
|
|
// CHECK-OPTIONAL-OPEN-NOT: key.description: "fooInstanceFunc1
|
|
// CHECK-OPTIONAL-OPEN: key.description: "?.fooInstanceFunc1(a: Int)",
|
|
// CHECK-OPTIONAL-OPEN-NOT: key.description: "fooInstanceFunc1
|
|
|
|
// RUN: %sourcekitd-test -req=complete -pos=27:5 %s -- %s | %FileCheck %s -check-prefix=CHECK-UNAVAIL
|
|
// CHECK-UNAVAIL-NOT: key.name: "unavail()",
|
|
|
|
// RUN: %sourcekitd-test -req=complete -pos=39:15 %s -- %s | %FileCheck %s -check-prefix=CHECK-OVERRIDE_USR
|
|
// CHECK-OVERRIDE_USR: {
|
|
// CHECK-OVERRIDE_USR: key.kind: source.lang.swift.decl.function.method.instance,
|
|
// CHECK-OVERRIDE_USR-NEXT: key.name: "foo()",
|
|
// CHECK-OVERRIDE_USR-NEXT: key.description: "foo()",
|
|
// CHECK-OVERRIDE_USR-NEXT: key.typename: "Void",
|
|
// CHECK-OVERRIDE_USR-NEXT: key.context: source.codecompletion.context.thisclass,
|
|
// CHECK-OVERRIDE_USR-NEXT: key.typerelation: source.codecompletion.typerelation.unknown,
|
|
// CHECK-OVERRIDE_USR-NEXT: key.num_bytes_to_erase: 0,
|
|
// CHECK-OVERRIDE_USR-NEXT: key.associated_usrs: "s:15complete_member7DerivedC3fooyyF s:15complete_member4BaseC3fooyyF",
|
|
// CHECK-OVERRIDE_USR-NEXT: key.modulename: "complete_member",
|
|
// CHECK-OVERRIDE_USR-NEXT: key.sourcetext: "foo()"
|
|
// CHECK-OVERRIDE_USR-NEXT: }
|