Files
swift-mirror/test/SourceKit/InterfaceGen/gen_stdlib.swift
Xi Ge a5e51a3494 [SourceKit] In CursorInfo response, include the mangle name of the type of the underlying decl.
The mangled name of the type is identical to those for debugger. These
mangled names allow us to reconstruct the type from AST and generate interface
specifically for that type.

Related rdar://27306890
2016-07-12 13:10:58 -07:00

81 lines
3.2 KiB
Swift

var x: Int
// RUN: %sourcekitd-test -req=interface-gen -module Swift > %t.response
// RUN: FileCheck -check-prefix=CHECK-STDLIB -input-file %t.response %s
// RUN: FileCheck -check-prefix=CHECK-MUTATING-ATTR -input-file %t.response %s
// RUN: FileCheck -check-prefix=CHECK-HIDE-ATTR -input-file %t.response %s
// Just check a small part, mainly to make sure we can print the interface of the stdlib.
// CHECK-STDLIB-NOT: extension _SwiftNSOperatingSystemVersion
// CHECK-STDLIB: struct Int : SignedInteger, Comparable, Equatable {
// CHECK-STDLIB: static var max: Int { get }
// CHECK-STDLIB: static var min: Int { get }
// CHECK-STDLIB: }
// Check that extensions of nested decls are showing up.
// CHECK-STDLIB-LABEL: extension String.UTF16View.Index {
// CHECK-STDLIB: func samePosition(in utf8: String.UTF8View) -> String.UTF8View.Index?
// CHECK-STDLIB: func samePosition(in unicodeScalars: String.UnicodeScalarView) -> UnicodeScalarIndex?
// CHECK-STDLIB: func samePosition(in characters: String) -> Index?
// CHECK-STDLIB-NEXT: }
// CHECK-MUTATING-ATTR: mutating func
// CHECK-HIDE-ATTR-NOT: @effects
// CHECK-HIDE-ATTR-NOT: @semantics
// CHECK-HIDE-ATTR-NOT: @inline
// RUN: %sourcekitd-test -req=interface-gen-open -module Swift \
// RUN: == -req=cursor -pos=2:8 %s -- %s | FileCheck -check-prefix=CHECK1 %s
// CHECK1: source.lang.swift.ref.struct ()
// CHECK1-NEXT: Int
// CHECK1-NEXT: s:Si
// CHECK1-NEXT: Int.Type
// CHECK1-NEXT: _Tt
// CHECK1-NEXT: Swift{{$}}
// CHECK1-NEXT: <Group>Math/Integers</Group>
// CHECK1-NEXT: /<interface-gen>{{$}}
// CHECK1-NEXT: SYSTEM
// CHECK1-NEXT: <Declaration>struct Int : <Type usr="s:Ps13SignedInteger">SignedInteger</Type>{{.*}}{{.*}}<Type usr="s:Ps10Comparable">Comparable</Type>{{.*}}<Type usr="s:Ps9Equatable">Equatable</Type>{{.*}}</Declaration>
// RUN: %sourcekitd-test -req=module-groups -module Swift | FileCheck -check-prefix=GROUP1 %s
// GROUP1: <GROUPS>
// GROUP1-NOT: <NULL>
// GROUP1: <\GROUPS>
// RUN: %sourcekitd-test -req=interface-gen -module Swift -group-name Bool > %t.Bool.response
// RUN: FileCheck -check-prefix=CHECK-BOOL -input-file %t.Bool.response %s
// CHECK-BOOL-DAG: extension Bool : Boolean {
// CHECK-BOOL-DAG: extension Bool : BooleanLiteralConvertible {
// These are not in the bool group:
// CHECK-BOOL-NOT: Zip2Iterator
// CHECK-BOOL-NOT: Zip2Sequence
// CHECK-BOOL-NOT: struct Int
// CHECK-BOOL-NOT: struct Float
// CHECK-BOOL-NOT: extension String
// RUN: %sourcekitd-test -req=interface-gen -module Swift -interested-usr s:Sb > %t.Bool.response
// RUN: FileCheck -check-prefix=CHECK-BOOL -input-file %t.Bool.response %s
// RUN: %sourcekitd-test -req=interface-gen -module Swift -interested-usr s:Si > %t.Int.response
// RUN: FileCheck -check-prefix=CHECK-INT -input-file %t.Int.response %s
// CHECK-INT: struct Int
// CHECK-INT: extension Int
// CHECK-INT-NOT: Zip2Iterator
// CHECK-INT-NOT: Zip2Sequence
// CHECK-INT-NOT: struct Bool
// CHECK-INT-NOT: struct Float
// RUN: %sourcekitd-test -req=interface-gen -module Swift -interested-usr s:Sf > %t.Float.response
// RUN: FileCheck -check-prefix=CHECK-FLOAT -input-file %t.Float.response %s
// CHECK-FLOAT: struct Float
// CHECK-FLOAT-NOT: Zip2Iterator
// CHECK-FLOAT-NOT: Zip2Sequence
// CHECK-FLOAT-NOT: struct Bool
// CHECK-FLOAT-NOT: struct Int