mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Mangling a non-canonical type can run into unexpected type sugar such as the newly introduced LocatableType. USRs should be based on canonical types anyway, so make sure we canonicalize before mangling. rdar://141168628
69 lines
2.6 KiB
Swift
69 lines
2.6 KiB
Swift
struct S {
|
|
func getArray() -> [S] { return [] }
|
|
func getInstance() -> S { return self }
|
|
static var Instance : S = S()
|
|
}
|
|
|
|
class C {
|
|
func getArray() -> [C] { return [] }
|
|
func getInstance() -> C { return self }
|
|
static var Instance : C = C()
|
|
}
|
|
|
|
enum E {
|
|
case CASE1
|
|
func getArray() -> [E] { return [] }
|
|
func getInstance() -> E { return self }
|
|
static var Instance : E = E.CASE1
|
|
}
|
|
func SGen() -> S { return S() }
|
|
func CGen() -> C { return C() }
|
|
func EGen() -> E { return .CASE1}
|
|
|
|
func foo(s : S, c : C, e: E) {
|
|
_ = s.getArray()
|
|
_ = s.getInstance()
|
|
_ = S.Instance
|
|
_ = c.getArray()
|
|
_ = c.getInstance()
|
|
_ = C.Instance
|
|
_ = e.getInstance()
|
|
_ = e.getArray()
|
|
_ = E.CASE1
|
|
_ = E.Instance
|
|
_ = SGen().getArray()
|
|
_ = CGen().getInstance()
|
|
_ = EGen().getArray()
|
|
_ = SArrayGen().count
|
|
}
|
|
|
|
func SArrayGen() -> [S] { return [] }
|
|
|
|
// RUN: %sourcekitd-test -req=cursor -pos=24:12 %s -- %s | %FileCheck -check-prefix=CHECK1 %s
|
|
// RUN: %sourcekitd-test -req=cursor -pos=25:12 %s -- %s | %FileCheck -check-prefix=CHECK1 %s
|
|
// RUN: %sourcekitd-test -req=cursor -pos=34:19 %s -- %s | %FileCheck -check-prefix=CHECK1 %s
|
|
// CHECK1: <Container>$s21cursor_info_container1SVD</Container>
|
|
|
|
// RUN: %sourcekitd-test -req=cursor -pos=26:12 %s -- %s | %FileCheck -check-prefix=CHECK2 %s
|
|
// CHECK2: <Container>$s21cursor_info_container1SVmD</Container>
|
|
|
|
// RUN: %sourcekitd-test -req=cursor -pos=27:12 %s -- %s | %FileCheck -check-prefix=CHECK3 %s
|
|
// RUN: %sourcekitd-test -req=cursor -pos=28:12 %s -- %s | %FileCheck -check-prefix=CHECK3 %s
|
|
// RUN: %sourcekitd-test -req=cursor -pos=35:19 %s -- %s | %FileCheck -check-prefix=CHECK3 %s
|
|
// CHECK3: <Container>$s21cursor_info_container1CCD</Container>
|
|
|
|
// RUN: %sourcekitd-test -req=cursor -pos=29:12 %s -- %s | %FileCheck -check-prefix=CHECK4 %s
|
|
// CHECK4: <Container>$s21cursor_info_container1CCmD</Container>
|
|
|
|
// RUN: %sourcekitd-test -req=cursor -pos=30:12 %s -- %s | %FileCheck -check-prefix=CHECK5 %s
|
|
// RUN: %sourcekitd-test -req=cursor -pos=31:12 %s -- %s | %FileCheck -check-prefix=CHECK5 %s
|
|
// RUN: %sourcekitd-test -req=cursor -pos=36:19 %s -- %s | %FileCheck -check-prefix=CHECK5 %s
|
|
// CHECK5: <Container>$s21cursor_info_container1EOD</Container>
|
|
|
|
// RUN: %sourcekitd-test -req=cursor -pos=32:12 %s -- %s | %FileCheck -check-prefix=CHECK6 %s
|
|
// RUN: %sourcekitd-test -req=cursor -pos=33:12 %s -- %s | %FileCheck -check-prefix=CHECK6 %s
|
|
// CHECK6: <Container>$s21cursor_info_container1EOmD</Container>
|
|
|
|
// RUN: %sourcekitd-test -req=cursor -pos=37:22 %s -- %s | %FileCheck -check-prefix=CHECK7 %s
|
|
// CHECK7: <Container>$sSay21cursor_info_container1SVGD</Container>
|