- Notifications
You must be signed in to change notification settings - Fork 10.5k
/
Copy pathavailability_compound.swift
28 lines (20 loc) · 1.41 KB
/
availability_compound.swift
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
// RUN: %target-typecheck-verify-swift -swift-version 4
publicstructPair<A, B>{}
publicstructPublicStruct{
publicstructInner{}
@available(*, unavailable)
internalstructObsolete{} // expected-note * {{marked unavailable here}}
// expected-note@-1 3{{type declared here}}
}
@available(*, unavailable, renamed:"PublicStruct")
publictypealiasObsoleteAlias=PublicStruct // expected-note * {{marked unavailable here}}
publicleta:ObsoleteAlias.Inner? // expected-error {{'ObsoleteAlias' has been renamed to 'PublicStruct'}}
publicletb:ObsoleteAlias.Obsolete? // expected-error {{'ObsoleteAlias' has been renamed to 'PublicStruct'}}
// expected-error@-1 {{constant cannot be declared public because its type uses an internal type}}
publicletc:Pair<ObsoleteAlias.Inner,PublicStruct.Obsolete>? // expected-error {{'ObsoleteAlias' has been renamed to 'PublicStruct'}}
// expected-error@-1 {{'Obsolete' is unavailable}}
// expected-error@-2 {{constant cannot be declared public because its type uses an internal type}}
publicletc2:Pair<PublicStruct.Obsolete,ObsoleteAlias.Inner>? // expected-error {{'Obsolete' is unavailable}}
// expected-error@-1 {{'ObsoleteAlias' has been renamed to 'PublicStruct'}}
// expected-error@-2 {{constant cannot be declared public because its type uses an internal type}}
publicletd:ObsoleteAlias? // expected-error {{'ObsoleteAlias' has been renamed to 'PublicStruct'}}