File: complete_member.swift

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (80 lines) | stat: -rw-r--r-- 3,114 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80

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: }