[test] Update APINotes tests for Swift 3 removal

For the most part, this moves 3/4 tests to 4/5 tests. There are
some interesting changes here because API notes for 4 also apply
to 3 unless otherwise specified, and 4.2 is the next version after
4 rather than 5, but everything should still be correct and testing
useful stuff.
This commit is contained in:
Jordan Rose
2018-07-12 15:35:57 -07:00
parent b02d5543d4
commit abaf05f1b4
10 changed files with 381 additions and 382 deletions

View File

@@ -41,10 +41,10 @@ Classes:
- Name: accessorsOnlyWeak
PropertyKind: Instance
SwiftImportAsAccessors: true
- Name: accessorsOnlyExceptInVersion3
- Name: accessorsOnlyExceptInVersion4
PropertyKind: Instance
SwiftImportAsAccessors: true
- Name: accessorsOnlyForClassExceptInVersion3
- Name: accessorsOnlyForClassExceptInVersion4
PropertyKind: Class
SwiftImportAsAccessors: true
- Name: accessorsOnlyWithNewType
@@ -63,7 +63,7 @@ Functions:
- Name: jumpToLocation
SwiftName: 'jumpTo(x:y:z:)'
Tags:
- Name: InnerInSwift4
- Name: InnerInSwift5
SwiftName: Outer.Inner
Globals:
- Name: multiVersionedGlobal34Notes
@@ -84,146 +84,6 @@ Globals:
SwiftName: multiVersionedGlobal45Both_NEW
SwiftVersions:
- Version: 3.0
Classes:
- Name: PrintingInterference
Methods:
- Selector: 'print:'
MethodKind: Instance
SwiftName: 'print(_:)'
- Name: PrintingRenamed
Methods:
- Selector: 'print'
MethodKind: Instance
SwiftName: 'print()'
- Selector: 'print:'
MethodKind: Instance
SwiftName: 'print(_:)'
- Selector: 'print:options:'
MethodKind: Instance
SwiftName: 'print(_:options:)'
- Selector: 'print'
MethodKind: Class
SwiftName: 'print()'
- Selector: 'print:'
MethodKind: Class
SwiftName: 'print(_:)'
- Selector: 'print:options:'
MethodKind: Class
SwiftName: 'print(_:options:)'
- Name: TestProperties
Methods:
- Selector: accessorsOnlyRenamedRetyped
MethodKind: Instance
SwiftName: 'renamedAndRetyped()'
ResultType: 'id _Nonnull'
- Selector: 'setAccessorsOnlyRenamedRetyped:'
MethodKind: Instance
SwiftName: 'setRenamedAndRetyped(_:)'
Parameters:
- Position: 0
Type: 'id _Nullable'
- Selector: accessorsOnlyRenamedRetypedClass
MethodKind: Class
SwiftName: 'renamedAndRetypedClass()'
ResultType: 'id _Nonnull'
- Selector: 'setAccessorsOnlyRenamedRetypedClass:'
MethodKind: Class
SwiftName: 'setRenamedAndRetypedClass(_:)'
Parameters:
- Position: 0
Type: 'id _Nullable'
Properties:
- Name: accessorsOnlyInVersion3
PropertyKind: Instance
SwiftImportAsAccessors: true
- Name: accessorsOnlyForClassInVersion3
PropertyKind: Class
SwiftImportAsAccessors: true
- Name: accessorsOnlyExceptInVersion3
PropertyKind: Instance
SwiftImportAsAccessors: false
- Name: accessorsOnlyForClassExceptInVersion3
PropertyKind: Class
SwiftImportAsAccessors: false
- Name: accessorsOnlyRenamedRetyped
PropertyKind: Instance
SwiftImportAsAccessors: true
- Name: accessorsOnlyRenamedRetypedClass
PropertyKind: Class
SwiftImportAsAccessors: true
- Name: NewlyGenericSub
SwiftImportAsNonGeneric: true
- Name: RenamedGeneric
SwiftName: OldRenamedGeneric
- Name: ClassWithManyRenames
Methods:
- Selector: "classWithManyRenamesForInt:"
MethodKind: Class
SwiftName: "init(swift3Factory:)"
- Selector: "initWithBoolean:"
MethodKind: Instance
SwiftName: "init(swift3Boolean:)"
- Selector: "doImportantThings"
MethodKind: Instance
SwiftName: "swift3DoImportantThings()"
Properties:
- Name: "importantClassProperty"
PropertyKind: Class
SwiftName: "swift3ClassProperty"
- Name: "importantInstanceProperty"
PropertyKind: Instance
SwiftName: "swift3InstanceProperty"
Protocols:
- Name: ProtoWithVersionedUnavailableMember
Methods:
- Selector: requirement
MethodKind: Instance
ResultType: 'ForwardClass * _Nullable'
- Name: ProtoWithManyRenames
Methods:
- Selector: "initWithBoolean:"
MethodKind: Instance
SwiftName: "init(swift3Boolean:)"
- Selector: "doImportantThings"
MethodKind: Instance
SwiftName: "swift3DoImportantThings()"
Properties:
- Name: "importantClassProperty"
PropertyKind: Class
SwiftName: "swift3ClassProperty"
Functions:
- Name: acceptDoublePointer
SwiftName: 'acceptPointer(_:)'
Nullability: [ O ]
- Name: normallyUnchanged
SwiftName: normallyUnchangedButChangedInSwift3()
- Name: normallyChangedOriginal
SwiftName: normallyChangedButSpecialInSwift3()
Tags:
- Name: SomeCStruct
SwiftName: ImportantCStruct
- Name: InnerInSwift4
SwiftName: InnerInSwift4
- Name: NormallyUnchangedWrapper
SwiftName: NormallyUnchangedButChangedInSwift3Wrapper
- Name: NormallyChangedOriginalWrapper
SwiftName: NormallyChangedButSpecialInSwift3Wrapper
Typedefs:
- Name: SomeCAlias
SwiftName: ImportantCAlias
- Name: EnclosingStructIdentifier
SwiftName: EnclosingStructIdentifier
Enumerators:
- Name: AnonymousEnumRenamed
SwiftName: AnonymousEnumRenamedSwift3
- Name: UnknownEnumRenamed
SwiftName: UnknownEnumRenamedSwift3
- Name: TrueEnumRenamed
SwiftName: renamedSwift3
- Name: TrueEnumAliasRenamed
SwiftName: aliasRenamedSwift3
- Name: OptionyEnumRenamed
SwiftName: renamedSwift3
Globals:
- Name: multiVersionedGlobal34
SwiftName: multiVersionedGlobal34_3
@@ -259,7 +119,145 @@ SwiftVersions:
SwiftName: multiVersionedGlobal45Notes_5
- Name: multiVersionedGlobal45Both
SwiftName: multiVersionedGlobal45Both_5
- Version: 4 # Versions are deliberately ordered as "3, 5, 4.2, 4" to catch bugs.
- Version: 4 # Versions are deliberately ordered as "3, 5, 4, 4.2" to catch bugs.
Classes:
- Name: ClassWithManyRenames
Methods:
- Selector: "classWithManyRenamesForInt:"
MethodKind: Class
SwiftName: "init(swift4Factory:)"
- Selector: "initWithBoolean:"
MethodKind: Instance
SwiftName: "init(swift4Boolean:)"
- Selector: "doImportantThings"
MethodKind: Instance
SwiftName: "swift4DoImportantThings()"
Properties:
- Name: "importantClassProperty"
PropertyKind: Class
SwiftName: "swift4ClassProperty"
- Name: "importantInstanceProperty"
PropertyKind: Instance
SwiftName: "swift4InstanceProperty"
- Name: NewlyGenericSub
SwiftImportAsNonGeneric: true
- Name: PrintingInterference
Methods:
- Selector: 'print:'
MethodKind: Instance
SwiftName: 'print(_:)'
- Name: PrintingRenamed
Methods:
- Selector: 'print'
MethodKind: Instance
SwiftName: 'print()'
- Selector: 'print:'
MethodKind: Instance
SwiftName: 'print(_:)'
- Selector: 'print:options:'
MethodKind: Instance
SwiftName: 'print(_:options:)'
- Selector: 'print'
MethodKind: Class
SwiftName: 'print()'
- Selector: 'print:'
MethodKind: Class
SwiftName: 'print(_:)'
- Selector: 'print:options:'
MethodKind: Class
SwiftName: 'print(_:options:)'
- Name: RenamedGeneric
SwiftName: OldRenamedGeneric
- Name: TestProperties
Methods:
- Selector: accessorsOnlyRenamedRetyped
MethodKind: Instance
SwiftName: 'renamedAndRetyped()'
ResultType: 'id _Nonnull'
- Selector: 'setAccessorsOnlyRenamedRetyped:'
MethodKind: Instance
SwiftName: 'setRenamedAndRetyped(_:)'
Parameters:
- Position: 0
Type: 'id _Nullable'
- Selector: accessorsOnlyRenamedRetypedClass
MethodKind: Class
SwiftName: 'renamedAndRetypedClass()'
ResultType: 'id _Nonnull'
- Selector: 'setAccessorsOnlyRenamedRetypedClass:'
MethodKind: Class
SwiftName: 'setRenamedAndRetypedClass(_:)'
Parameters:
- Position: 0
Type: 'id _Nullable'
Properties:
- Name: accessorsOnlyInVersion4
PropertyKind: Instance
SwiftImportAsAccessors: true
- Name: accessorsOnlyForClassInVersion4
PropertyKind: Class
SwiftImportAsAccessors: true
- Name: accessorsOnlyExceptInVersion4
PropertyKind: Instance
SwiftImportAsAccessors: false
- Name: accessorsOnlyForClassExceptInVersion4
PropertyKind: Class
SwiftImportAsAccessors: false
- Name: accessorsOnlyRenamedRetyped
PropertyKind: Instance
SwiftImportAsAccessors: true
- Name: accessorsOnlyRenamedRetypedClass
PropertyKind: Class
SwiftImportAsAccessors: true
Protocols:
- Name: ProtoWithManyRenames
Methods:
- Selector: "initWithBoolean:"
MethodKind: Instance
SwiftName: "init(swift4Boolean:)"
- Selector: "doImportantThings"
MethodKind: Instance
SwiftName: "swift4DoImportantThings()"
Properties:
- Name: "importantClassProperty"
PropertyKind: Class
SwiftName: "swift4ClassProperty"
- Name: ProtoWithVersionedUnavailableMember
Methods:
- Selector: requirement
MethodKind: Instance
ResultType: 'ForwardClass * _Nullable'
Tags:
- Name: InnerInSwift5
SwiftName: InnerInSwift5
- Name: NormallyChangedOriginalWrapper
SwiftName: NormallyChangedButSpecialInSwift4Wrapper
- Name: NormallyUnchangedWrapper
SwiftName: NormallyUnchangedButChangedInSwift4Wrapper
- Name: SomeCStruct
SwiftName: ImportantCStruct
Enumerators:
- Name: AnonymousEnumRenamed
SwiftName: AnonymousEnumRenamedSwift4
- Name: UnknownEnumRenamed
SwiftName: UnknownEnumRenamedSwift4
- Name: TrueEnumRenamed
SwiftName: renamedSwift4
- Name: TrueEnumAliasRenamed
SwiftName: aliasRenamedSwift4
- Name: OptionyEnumRenamed
SwiftName: renamedSwift4
Typedefs:
- Name: SomeCAlias
SwiftName: ImportantCAlias
Functions:
- Name: acceptDoublePointer
SwiftName: 'acceptPointer(_:)'
Nullability: [ O ]
- Name: normallyUnchanged
SwiftName: normallyUnchangedButChangedInSwift4()
- Name: normallyChangedOriginal
SwiftName: normallyChangedButSpecialInSwift4()
Globals:
- Name: multiVersionedGlobal34
SwiftName: multiVersionedGlobal34_4

View File

@@ -4,7 +4,7 @@ struct Outer {
int value;
};
struct InnerInSwift4 {
struct InnerInSwift5 {
int value;
};

View File

@@ -8,11 +8,11 @@
@property (nonatomic, readonly, retain) id accessorsOnlyRO;
@property (nonatomic, readwrite, weak) id accessorsOnlyWeak;
@property (nonatomic, readwrite, retain) id accessorsOnlyInVersion3;
@property (nonatomic, readwrite, retain, class) id accessorsOnlyForClassInVersion3;
@property (nonatomic, readwrite, retain) id accessorsOnlyInVersion4;
@property (nonatomic, readwrite, retain, class) id accessorsOnlyForClassInVersion4;
@property (nonatomic, readwrite, retain) id accessorsOnlyExceptInVersion3;
@property (nonatomic, readwrite, retain, class) id accessorsOnlyForClassExceptInVersion3;
@property (nonatomic, readwrite, retain) id accessorsOnlyExceptInVersion4;
@property (nonatomic, readwrite, retain, class) id accessorsOnlyForClassExceptInVersion4;
@end
@interface TestPropertiesSub: TestProperties

View File

@@ -1,4 +1,4 @@
// RUN: %target-typecheck-verify-swift -I %S/Inputs/custom-modules -F %S/Inputs/custom-frameworks -swift-version 4
// RUN: %target-typecheck-verify-swift -I %S/Inputs/custom-modules -F %S/Inputs/custom-frameworks
import APINotesTest
import APINotesFrameworkTest

View File

@@ -1,3 +1,4 @@
// RUN: not %target-swift-frontend -typecheck -verify -I %S/Inputs/custom-modules -F %S/Inputs/custom-frameworks -swift-version 4 %s
// RUN: %target-swift-frontend -typecheck -verify -I %S/Inputs/custom-modules -F %S/Inputs/custom-frameworks -swift-version 4.2 %s
// RUN: %target-swift-frontend -typecheck -verify -I %S/Inputs/custom-modules -F %S/Inputs/custom-frameworks -swift-version 5 %s
// REQUIRES: objc_interop

View File

@@ -1,8 +1,8 @@
// RUN: %empty-directory(%t)
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-module -source-filename %s -module-to-print=APINotesFrameworkTest -function-definitions=false -print-regular-comments -swift-version 4 | %FileCheck -check-prefix=CHECK-SWIFT-4 -check-prefix=CHECK-BOTH %s
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-module -source-filename %s -module-to-print=APINotesFrameworkTest -function-definitions=false -print-regular-comments -swift-version 5 | %FileCheck -check-prefix=CHECK-SWIFT-5 -check-prefix=CHECK-BOTH %s
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-module -source-filename %s -module-to-print=APINotesFrameworkTest -function-definitions=false -print-regular-comments -swift-version 3 | %FileCheck -check-prefix=CHECK-SWIFT-3 -check-prefix=CHECK-BOTH %s
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-module -source-filename %s -module-to-print=APINotesFrameworkTest -function-definitions=false -print-regular-comments -swift-version 4 | %FileCheck -check-prefix=CHECK-SWIFT-4 -check-prefix=CHECK-BOTH %s
// REQUIRES: objc_interop
@@ -18,19 +18,19 @@
// CHECK-BOTH-DAG: func accessorsOnlyWeak() -> Any?
// CHECK-BOTH-DAG: func setAccessorsOnlyWeak(_ accessorsOnlyWeak: Any?)
// CHECK-SWIFT-4-DAG: var accessorsOnlyInVersion3: Any
// CHECK-SWIFT-4-DAG: class var accessorsOnlyForClassInVersion3: Any
// CHECK-SWIFT-3-DAG: func accessorsOnlyInVersion3() -> Any
// CHECK-SWIFT-3-DAG: func setAccessorsOnlyInVersion3(_ accessorsOnlyInVersion3: Any)
// CHECK-SWIFT-3-DAG: class func accessorsOnlyForClassInVersion3() -> Any
// CHECK-SWIFT-3-DAG: class func setAccessorsOnlyForClassInVersion3(_ accessorsOnlyForClassInVersion3: Any)
// CHECK-SWIFT-5-DAG: var accessorsOnlyInVersion4: Any
// CHECK-SWIFT-5-DAG: class var accessorsOnlyForClassInVersion4: Any
// CHECK-SWIFT-4-DAG: func accessorsOnlyInVersion4() -> Any
// CHECK-SWIFT-4-DAG: func setAccessorsOnlyInVersion4(_ accessorsOnlyInVersion4: Any)
// CHECK-SWIFT-4-DAG: class func accessorsOnlyForClassInVersion4() -> Any
// CHECK-SWIFT-4-DAG: class func setAccessorsOnlyForClassInVersion4(_ accessorsOnlyForClassInVersion4: Any)
// CHECK-SWIFT-4-DAG: func accessorsOnlyExceptInVersion3() -> Any
// CHECK-SWIFT-4-DAG: func setAccessorsOnlyExceptInVersion3(_ accessorsOnlyExceptInVersion3: Any)
// CHECK-SWIFT-4-DAG: class func accessorsOnlyForClassExceptInVersion3() -> Any
// CHECK-SWIFT-4-DAG: class func setAccessorsOnlyForClassExceptInVersion3(_ accessorsOnlyForClassExceptInVersion3: Any)
// CHECK-SWIFT-3-DAG: var accessorsOnlyExceptInVersion3: Any
// CHECK-SWIFT-3-DAG: class var accessorsOnlyForClassExceptInVersion3: Any
// CHECK-SWIFT-5-DAG: func accessorsOnlyExceptInVersion4() -> Any
// CHECK-SWIFT-5-DAG: func setAccessorsOnlyExceptInVersion4(_ accessorsOnlyExceptInVersion4: Any)
// CHECK-SWIFT-5-DAG: class func accessorsOnlyForClassExceptInVersion4() -> Any
// CHECK-SWIFT-5-DAG: class func setAccessorsOnlyForClassExceptInVersion4(_ accessorsOnlyForClassExceptInVersion4: Any)
// CHECK-SWIFT-4-DAG: var accessorsOnlyExceptInVersion4: Any
// CHECK-SWIFT-4-DAG: class var accessorsOnlyForClassExceptInVersion4: Any
// CHECK-BOTH: {{^}$}}
@@ -46,12 +46,12 @@
// CHECK-BOTH: {{^}$}}
// CHECK-SWIFT-3-DAG: func renamedAndRetyped() -> Any{{$}}
// CHECK-SWIFT-3-DAG: func setRenamedAndRetyped(_ accessorsOnlyRenamedRetyped: Any?)
// CHECK-SWIFT-4-DAG: var accessorsOnlyRenamedRetyped: Any!
// CHECK-SWIFT-4-DAG: func renamedAndRetyped() -> Any{{$}}
// CHECK-SWIFT-4-DAG: func setRenamedAndRetyped(_ accessorsOnlyRenamedRetyped: Any?)
// CHECK-SWIFT-5-DAG: var accessorsOnlyRenamedRetyped: Any!
// CHECK-SWIFT-3-DAG: class func renamedAndRetypedClass() -> Any{{$}}
// CHECK-SWIFT-3-DAG: class func setRenamedAndRetypedClass(_ accessorsOnlyRenamedRetypedClass: Any?)
// CHECK-SWIFT-4-DAG: class var accessorsOnlyRenamedRetypedClass: Any!
// CHECK-SWIFT-4-DAG: class func renamedAndRetypedClass() -> Any{{$}}
// CHECK-SWIFT-4-DAG: class func setRenamedAndRetypedClass(_ accessorsOnlyRenamedRetypedClass: Any?)
// CHECK-SWIFT-5-DAG: class var accessorsOnlyRenamedRetypedClass: Any!
// CHECK-BOTH: {{^}$}}

View File

@@ -1,35 +1,35 @@
// RUN: %empty-directory(%t)
// RUN: not %target-swift-frontend -typecheck -F %S/Inputs/custom-frameworks -swift-version 5 %s 2>&1 | %FileCheck -check-prefix=CHECK-DIAGS -check-prefix=CHECK-DIAGS-5 %s
// RUN: not %target-swift-frontend -typecheck -F %S/Inputs/custom-frameworks -swift-version 4 %s 2>&1 | %FileCheck -check-prefix=CHECK-DIAGS -check-prefix=CHECK-DIAGS-4 %s
// RUN: not %target-swift-frontend -typecheck -F %S/Inputs/custom-frameworks -swift-version 3 %s 2>&1 | %FileCheck -check-prefix=CHECK-DIAGS -check-prefix=CHECK-DIAGS-3 %s
// REQUIRES: objc_interop
import APINotesFrameworkTest
func testRenamedClassMembers(obj: AnyObject) {
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: error: 'doImportantThings()' has been renamed to 'swift3DoImportantThings()'
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: error: 'doImportantThings()' has been renamed to 'swift4DoImportantThings()'
obj.doImportantThings()
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: 'doImportantThings()' has been renamed to 'finalDoImportantThings()'
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: 'doImportantThings()' has been renamed to 'finalDoImportantThings()'
// CHECK-DIAGS-3-NOT: :[[@LINE+1]]:{{[0-9]+}}:
obj.swift3DoImportantThings()
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: 'swift3DoImportantThings()' has been renamed to 'finalDoImportantThings()'
// CHECK-DIAGS-4-NOT: :[[@LINE+1]]:{{[0-9]+}}:
obj.swift4DoImportantThings()
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: 'swift4DoImportantThings()' has been renamed to 'finalDoImportantThings()'
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: error: 'finalDoImportantThings()' has been renamed to 'swift3DoImportantThings()'
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: error: 'finalDoImportantThings()' has been renamed to 'swift4DoImportantThings()'
obj.finalDoImportantThings()
// CHECK-DIAGS-4-NOT: :[[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-5-NOT: :[[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: error: 'importantInstanceProperty' has been renamed to 'swift3InstanceProperty'
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: error: 'importantInstanceProperty' has been renamed to 'swift4InstanceProperty'
_ = obj.importantInstanceProperty
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: 'importantInstanceProperty' has been renamed to 'finalInstanceProperty'
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: 'importantInstanceProperty' has been renamed to 'finalInstanceProperty'
// CHECK-DIAGS-3-NOT: :[[@LINE+1]]:{{[0-9]+}}:
_ = obj.swift3InstanceProperty
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: 'swift3InstanceProperty' has been renamed to 'finalInstanceProperty'
// CHECK-DIAGS-4-NOT: :[[@LINE+1]]:{{[0-9]+}}:
_ = obj.swift4InstanceProperty
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: 'swift4InstanceProperty' has been renamed to 'finalInstanceProperty'
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: error: 'finalInstanceProperty' has been renamed to 'swift3InstanceProperty'
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: error: 'finalInstanceProperty' has been renamed to 'swift4InstanceProperty'
_ = obj.finalInstanceProperty
// CHECK-DIAGS-4-NOT: :[[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-5-NOT: :[[@LINE-1]]:{{[0-9]+}}:
}

View File

@@ -1,176 +1,176 @@
// RUN: %empty-directory(%t)
// RUN: not %target-swift-frontend -typecheck -F %S/Inputs/custom-frameworks -swift-version 5 %s 2>&1 | %FileCheck -check-prefix=CHECK-DIAGS -check-prefix=CHECK-DIAGS-5 %s
// RUN: not %target-swift-frontend -typecheck -F %S/Inputs/custom-frameworks -swift-version 4 %s 2>&1 | %FileCheck -check-prefix=CHECK-DIAGS -check-prefix=CHECK-DIAGS-4 %s
// RUN: not %target-swift-frontend -typecheck -F %S/Inputs/custom-frameworks -swift-version 3 %s 2>&1 | %FileCheck -check-prefix=CHECK-DIAGS -check-prefix=CHECK-DIAGS-3 %s
// REQUIRES: objc_interop
import APINotesFrameworkTest
// CHECK-DIAGS-4-NOT: versioned-objc.swift:[[@LINE-1]]:
// CHECK-DIAGS-5-NOT: versioned-objc.swift:[[@LINE-1]]:
class ProtoWithVersionedUnavailableMemberImpl: ProtoWithVersionedUnavailableMember {
// CHECK-DIAGS-3: versioned-objc.swift:[[@LINE-1]]:7: error: type 'ProtoWithVersionedUnavailableMemberImpl' cannot conform to protocol 'ProtoWithVersionedUnavailableMember' because it has requirements that cannot be satisfied
// CHECK-DIAGS-4: versioned-objc.swift:[[@LINE-1]]:7: error: type 'ProtoWithVersionedUnavailableMemberImpl' cannot conform to protocol 'ProtoWithVersionedUnavailableMember' because it has requirements that cannot be satisfied
func requirement() -> Any? { return nil }
}
func testNonGeneric() {
// CHECK-DIAGS-3:[[@LINE+1]]:{{[0-9]+}}: error: cannot convert value of type 'Any' to specified type 'Int'
// CHECK-DIAGS-4:[[@LINE+1]]:{{[0-9]+}}: error: cannot convert value of type 'Any' to specified type 'Int'
let _: Int = NewlyGenericSub.defaultElement()
// CHECK-DIAGS-4:[[@LINE-1]]:{{[0-9]+}}: error: generic parameter 'Element' could not be inferred
// CHECK-DIAGS-5:[[@LINE-1]]:{{[0-9]+}}: error: generic parameter 'Element' could not be inferred
// CHECK-DIAGS-3:[[@LINE+1]]:{{[0-9]+}}: error: cannot specialize non-generic type 'NewlyGenericSub'
// CHECK-DIAGS-4:[[@LINE+1]]:{{[0-9]+}}: error: cannot specialize non-generic type 'NewlyGenericSub'
let _: Int = NewlyGenericSub<Base>.defaultElement()
// CHECK-DIAGS-4:[[@LINE-1]]:{{[0-9]+}}: error: cannot convert value of type 'Base' to specified type 'Int'
// CHECK-DIAGS-5:[[@LINE-1]]:{{[0-9]+}}: error: cannot convert value of type 'Base' to specified type 'Int'
}
func testRenamedGeneric() {
// CHECK-DIAGS-3-NOT: 'RenamedGeneric' has been renamed to 'OldRenamedGeneric'
// CHECK-DIAGS-4-NOT: 'RenamedGeneric' has been renamed to 'OldRenamedGeneric'
let _: OldRenamedGeneric<Base> = RenamedGeneric<Base>()
// CHECK-DIAGS-4:[[@LINE-1]]:{{[0-9]+}}: error: 'OldRenamedGeneric' has been renamed to 'RenamedGeneric'
// CHECK-DIAGS-5:[[@LINE-1]]:{{[0-9]+}}: error: 'OldRenamedGeneric' has been renamed to 'RenamedGeneric'
// CHECK-DIAGS-3-NOT: 'RenamedGeneric' has been renamed to 'OldRenamedGeneric'
// CHECK-DIAGS-4-NOT: 'RenamedGeneric' has been renamed to 'OldRenamedGeneric'
let _: RenamedGeneric<Base> = OldRenamedGeneric<Base>()
// CHECK-DIAGS-4:[[@LINE-1]]:{{[0-9]+}}: error: 'OldRenamedGeneric' has been renamed to 'RenamedGeneric'
// CHECK-DIAGS-5:[[@LINE-1]]:{{[0-9]+}}: error: 'OldRenamedGeneric' has been renamed to 'RenamedGeneric'
class SwiftClass {}
// CHECK-DIAGS-3:[[@LINE+1]]:{{[0-9]+}}: error: 'OldRenamedGeneric' requires that 'SwiftClass' inherit from 'Base'
// CHECK-DIAGS-4:[[@LINE+1]]:{{[0-9]+}}: error: 'OldRenamedGeneric' requires that 'SwiftClass' inherit from 'Base'
let _: OldRenamedGeneric<SwiftClass> = RenamedGeneric<SwiftClass>()
// CHECK-DIAGS-4:[[@LINE-1]]:{{[0-9]+}}: error: 'OldRenamedGeneric' requires that 'SwiftClass' inherit from 'Base'
// CHECK-DIAGS-5:[[@LINE-1]]:{{[0-9]+}}: error: 'OldRenamedGeneric' requires that 'SwiftClass' inherit from 'Base'
// CHECK-DIAGS-3:[[@LINE+1]]:{{[0-9]+}}: error: 'RenamedGeneric' requires that 'SwiftClass' inherit from 'Base'
// CHECK-DIAGS-4:[[@LINE+1]]:{{[0-9]+}}: error: 'RenamedGeneric' requires that 'SwiftClass' inherit from 'Base'
let _: RenamedGeneric<SwiftClass> = OldRenamedGeneric<SwiftClass>()
// CHECK-DIAGS-4:[[@LINE-1]]:{{[0-9]+}}: error: 'RenamedGeneric' requires that 'SwiftClass' inherit from 'Base'
// CHECK-DIAGS-5:[[@LINE-1]]:{{[0-9]+}}: error: 'RenamedGeneric' requires that 'SwiftClass' inherit from 'Base'
}
func testRenamedClassMembers(obj: ClassWithManyRenames) {
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: error: 'classWithManyRenamesForInt' has been replaced by 'init(swift3Factory:)'
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: error: 'classWithManyRenamesForInt' has been replaced by 'init(swift4Factory:)'
_ = ClassWithManyRenames.classWithManyRenamesForInt(0)
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: 'classWithManyRenamesForInt' has been replaced by 'init(for:)'
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: 'classWithManyRenamesForInt' has been replaced by 'init(for:)'
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: error: 'init(forInt:)' has been renamed to 'init(swift3Factory:)'
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: error: 'init(forInt:)' has been renamed to 'init(swift4Factory:)'
_ = ClassWithManyRenames(forInt: 0)
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: 'init(forInt:)' has been renamed to 'init(for:)'
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: 'init(forInt:)' has been renamed to 'init(for:)'
// CHECK-DIAGS-3-NOT: :[[@LINE+1]]:{{[0-9]+}}:
_ = ClassWithManyRenames(swift3Factory: 0)
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: 'init(swift3Factory:)' has been renamed to 'init(for:)'
// CHECK-DIAGS-4-NOT: :[[@LINE+1]]:{{[0-9]+}}:
_ = ClassWithManyRenames(swift4Factory: 0)
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: 'init(swift4Factory:)' has been renamed to 'init(for:)'
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: error: 'init(for:)' has been renamed to 'init(swift3Factory:)'
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: error: 'init(for:)' has been renamed to 'init(swift4Factory:)'
_ = ClassWithManyRenames(for: 0)
// CHECK-DIAGS-4-NOT: :[[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-5-NOT: :[[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: error: 'init(boolean:)' has been renamed to 'init(swift3Boolean:)'
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: error: 'init(boolean:)' has been renamed to 'init(swift4Boolean:)'
_ = ClassWithManyRenames(boolean: false)
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: 'init(boolean:)' has been renamed to 'init(finalBoolean:)'
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: 'init(boolean:)' has been renamed to 'init(finalBoolean:)'
// CHECK-DIAGS-3-NOT: :[[@LINE+1]]:{{[0-9]+}}:
_ = ClassWithManyRenames(swift3Boolean: false)
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: 'init(swift3Boolean:)' has been renamed to 'init(finalBoolean:)'
// CHECK-DIAGS-4-NOT: :[[@LINE+1]]:{{[0-9]+}}:
_ = ClassWithManyRenames(swift4Boolean: false)
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: 'init(swift4Boolean:)' has been renamed to 'init(finalBoolean:)'
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: error: 'init(finalBoolean:)' has been renamed to 'init(swift3Boolean:)'
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: error: 'init(finalBoolean:)' has been renamed to 'init(swift4Boolean:)'
_ = ClassWithManyRenames(finalBoolean: false)
// CHECK-DIAGS-4-NOT: :[[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-5-NOT: :[[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: error: 'doImportantThings()' has been renamed to 'swift3DoImportantThings()'
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: error: 'doImportantThings()' has been renamed to 'swift4DoImportantThings()'
obj.doImportantThings()
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: 'doImportantThings()' has been renamed to 'finalDoImportantThings()'
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: 'doImportantThings()' has been renamed to 'finalDoImportantThings()'
// CHECK-DIAGS-3-NOT: :[[@LINE+1]]:{{[0-9]+}}:
obj.swift3DoImportantThings()
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: 'swift3DoImportantThings()' has been renamed to 'finalDoImportantThings()'
// CHECK-DIAGS-4-NOT: :[[@LINE+1]]:{{[0-9]+}}:
obj.swift4DoImportantThings()
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: 'swift4DoImportantThings()' has been renamed to 'finalDoImportantThings()'
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: error: 'finalDoImportantThings()' has been renamed to 'swift3DoImportantThings()'
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: error: 'finalDoImportantThings()' has been renamed to 'swift4DoImportantThings()'
obj.finalDoImportantThings()
// CHECK-DIAGS-4-NOT: :[[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-5-NOT: :[[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: error: 'importantClassProperty' has been renamed to 'swift3ClassProperty'
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: error: 'importantClassProperty' has been renamed to 'swift4ClassProperty'
_ = ClassWithManyRenames.importantClassProperty
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: 'importantClassProperty' has been renamed to 'finalClassProperty'
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: 'importantClassProperty' has been renamed to 'finalClassProperty'
// CHECK-DIAGS-3-NOT: :[[@LINE+1]]:{{[0-9]+}}:
_ = ClassWithManyRenames.swift3ClassProperty
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: 'swift3ClassProperty' has been renamed to 'finalClassProperty'
// CHECK-DIAGS-4-NOT: :[[@LINE+1]]:{{[0-9]+}}:
_ = ClassWithManyRenames.swift4ClassProperty
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: 'swift4ClassProperty' has been renamed to 'finalClassProperty'
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: error: 'finalClassProperty' has been renamed to 'swift3ClassProperty'
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: error: 'finalClassProperty' has been renamed to 'swift4ClassProperty'
_ = ClassWithManyRenames.finalClassProperty
// CHECK-DIAGS-4-NOT: :[[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-5-NOT: :[[@LINE-1]]:{{[0-9]+}}:
}
func testRenamedProtocolMembers(obj: ProtoWithManyRenames) {
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: error: 'init(boolean:)' has been renamed to 'init(swift3Boolean:)'
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: error: 'init(boolean:)' has been renamed to 'init(swift4Boolean:)'
_ = type(of: obj).init(boolean: false)
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: 'init(boolean:)' has been renamed to 'init(finalBoolean:)'
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: 'init(boolean:)' has been renamed to 'init(finalBoolean:)'
// CHECK-DIAGS-3-NOT: :[[@LINE+1]]:{{[0-9]+}}:
_ = type(of: obj).init(swift3Boolean: false)
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: 'init(swift3Boolean:)' has been renamed to 'init(finalBoolean:)'
// CHECK-DIAGS-4-NOT: :[[@LINE+1]]:{{[0-9]+}}:
_ = type(of: obj).init(swift4Boolean: false)
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: 'init(swift4Boolean:)' has been renamed to 'init(finalBoolean:)'
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: error: 'init(finalBoolean:)' has been renamed to 'init(swift3Boolean:)'
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: error: 'init(finalBoolean:)' has been renamed to 'init(swift4Boolean:)'
_ = type(of: obj).init(finalBoolean: false)
// CHECK-DIAGS-4-NOT: :[[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-5-NOT: :[[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: error: 'doImportantThings()' has been renamed to 'swift3DoImportantThings()'
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: error: 'doImportantThings()' has been renamed to 'swift4DoImportantThings()'
obj.doImportantThings()
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: 'doImportantThings()' has been renamed to 'finalDoImportantThings()'
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: 'doImportantThings()' has been renamed to 'finalDoImportantThings()'
// CHECK-DIAGS-3-NOT: :[[@LINE+1]]:{{[0-9]+}}:
obj.swift3DoImportantThings()
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: 'swift3DoImportantThings()' has been renamed to 'finalDoImportantThings()'
// CHECK-DIAGS-4-NOT: :[[@LINE+1]]:{{[0-9]+}}:
obj.swift4DoImportantThings()
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: 'swift4DoImportantThings()' has been renamed to 'finalDoImportantThings()'
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: error: 'finalDoImportantThings()' has been renamed to 'swift3DoImportantThings()'
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: error: 'finalDoImportantThings()' has been renamed to 'swift4DoImportantThings()'
obj.finalDoImportantThings()
// CHECK-DIAGS-4-NOT: :[[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-5-NOT: :[[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: error: 'importantClassProperty' has been renamed to 'swift3ClassProperty'
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: error: 'importantClassProperty' has been renamed to 'swift4ClassProperty'
_ = type(of: obj).importantClassProperty
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: 'importantClassProperty' has been renamed to 'finalClassProperty'
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: 'importantClassProperty' has been renamed to 'finalClassProperty'
// CHECK-DIAGS-3-NOT: :[[@LINE+1]]:{{[0-9]+}}:
_ = type(of: obj).swift3ClassProperty
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: 'swift3ClassProperty' has been renamed to 'finalClassProperty'
// CHECK-DIAGS-4-NOT: :[[@LINE+1]]:{{[0-9]+}}:
_ = type(of: obj).swift4ClassProperty
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: 'swift4ClassProperty' has been renamed to 'finalClassProperty'
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: error: 'finalClassProperty' has been renamed to 'swift3ClassProperty'
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: error: 'finalClassProperty' has been renamed to 'swift4ClassProperty'
_ = type(of: obj).finalClassProperty
// CHECK-DIAGS-4-NOT: :[[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-5-NOT: :[[@LINE-1]]:{{[0-9]+}}:
}
extension PrintingRenamed {
func testDroppingRenamedPrints() {
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: warning: use of 'print' treated as a reference to instance method
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: warning: use of 'print' treated as a reference to instance method
print()
// CHECK-DIAGS-4-NOT: [[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-5-NOT: [[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: warning: use of 'print' treated as a reference to instance method
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: warning: use of 'print' treated as a reference to instance method
print(self)
// CHECK-DIAGS-4-NOT: [[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-5-NOT: [[@LINE-1]]:{{[0-9]+}}:
}
static func testDroppingRenamedPrints() {
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: warning: use of 'print' treated as a reference to class method
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: warning: use of 'print' treated as a reference to class method
print()
// CHECK-DIAGS-4-NOT: [[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-5-NOT: [[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: warning: use of 'print' treated as a reference to class method
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: warning: use of 'print' treated as a reference to class method
print(self)
// CHECK-DIAGS-4-NOT: [[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-5-NOT: [[@LINE-1]]:{{[0-9]+}}:
}
}
extension PrintingInterference {
func testDroppingRenamedPrints() {
// CHECK-DIAGS-3: [[@LINE+1]]:{{[0-9]+}}: warning: use of 'print' treated as a reference to instance method
// CHECK-DIAGS-4: [[@LINE+1]]:{{[0-9]+}}: warning: use of 'print' treated as a reference to instance method
print(self)
// CHECK-DIAGS-4: [[@LINE-1]]:{{[0-9]+}}: error: use of 'print' nearly matches global function 'print(_:separator:terminator:)' in module 'Swift' rather than instance method 'print(_:extra:)'
// CHECK-DIAGS-5: [[@LINE-1]]:{{[0-9]+}}: error: use of 'print' nearly matches global function 'print(_:separator:terminator:)' in module 'Swift' rather than instance method 'print(_:extra:)'
// CHECK-DIAGS-3-NOT: [[@LINE+1]]:{{[0-9]+}}:
// CHECK-DIAGS-4-NOT: [[@LINE+1]]:{{[0-9]+}}:
print(self, extra: self)
// CHECK-DIAGS-4-NOT: [[@LINE-1]]:{{[0-9]+}}:
// CHECK-DIAGS-5-NOT: [[@LINE-1]]:{{[0-9]+}}:
}
}

View File

@@ -1,14 +1,14 @@
// RUN: %empty-directory(%t)
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-ast-typechecked -source-filename %s -swift-version 3 -find-mangled '$SSo11SomeCStructV' | %FileCheck -check-prefix=CHECK-TOP-ALIAS-3 %s
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-ast-typechecked -source-filename %s -swift-version 4 -find-mangled '$SSo11SomeCStructV' | %FileCheck -check-prefix=CHECK-TOP-ALIAS-4 %s
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-ast-typechecked -source-filename %s -swift-version 5 -find-mangled '$SSo11SomeCStructV' | %FileCheck -check-prefix=CHECK-TOP-ALIAS-5 %s
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-ast-typechecked -source-filename %s -swift-version 3 -find-mangled '$SSo13InnerInSwift4V' | %FileCheck -check-prefix=CHECK-NESTED-ALIAS-3 %s
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-ast-typechecked -source-filename %s -swift-version 4 -find-mangled '$SSo13InnerInSwift4V' | %FileCheck -check-prefix=CHECK-NESTED-ALIAS-4 %s
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-ast-typechecked -source-filename %s -swift-version 4 -find-mangled '$SSo13InnerInSwift5V' | %FileCheck -check-prefix=CHECK-NESTED-ALIAS-4 %s
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-ast-typechecked -source-filename %s -swift-version 5 -find-mangled '$SSo13InnerInSwift5V' | %FileCheck -check-prefix=CHECK-NESTED-ALIAS-5 %s
import APINotesFrameworkTest
// CHECK-TOP-ALIAS-3: typealias ImportantCStruct = VeryImportantCStruct
// CHECK-TOP-ALIAS-4: struct VeryImportantCStruct {
// CHECK-NESTED-ALIAS-3: typealias InnerInSwift4 = Outer.Inner
// CHECK-NESTED-ALIAS-4: struct Inner {
// CHECK-TOP-ALIAS-4: typealias ImportantCStruct = VeryImportantCStruct
// CHECK-TOP-ALIAS-5: struct VeryImportantCStruct {
// CHECK-NESTED-ALIAS-4: typealias InnerInSwift5 = Outer.Inner
// CHECK-NESTED-ALIAS-5: struct Inner {

View File

@@ -1,56 +1,56 @@
// RUN: %empty-directory(%t)
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-module -source-filename %s -module-to-print=APINotesFrameworkTest -function-definitions=false -print-regular-comments -swift-version 5 | %FileCheck -check-prefix=CHECK-SWIFT-5 %s
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-module -source-filename %s -module-to-print=APINotesFrameworkTest -function-definitions=false -print-regular-comments -swift-version 4 | %FileCheck -check-prefix=CHECK-SWIFT-4 %s
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-module -source-filename %s -module-to-print=APINotesFrameworkTest -function-definitions=false -print-regular-comments -swift-version 3 | %FileCheck -check-prefix=CHECK-SWIFT-3 %s
// CHECK-SWIFT-5: func jumpTo(x: Double, y: Double, z: Double)
// CHECK-SWIFT-4: func jumpTo(x: Double, y: Double, z: Double)
// CHECK-SWIFT-3: func jumpTo(x: Double, y: Double, z: Double)
// CHECK-SWIFT-4: func accept(_ ptr: UnsafeMutablePointer<Double>)
// CHECK-SWIFT-3: func acceptPointer(_ ptr: UnsafeMutablePointer<Double>?)
// CHECK-SWIFT-5: func accept(_ ptr: UnsafeMutablePointer<Double>)
// CHECK-SWIFT-4: func acceptPointer(_ ptr: UnsafeMutablePointer<Double>?)
// CHECK-SWIFT-4: func normallyUnchanged()
// CHECK-SWIFT-4: @available(swift, obsoleted: 4, renamed: "normallyUnchanged()")
// CHECK-SWIFT-4-NEXT: func normallyUnchangedButChangedInSwift3()
// CHECK-SWIFT-3: @available(swift, obsoleted: 3, renamed: "normallyUnchangedButChangedInSwift3()")
// CHECK-SWIFT-3-NEXT: func normallyUnchanged()
// CHECK-SWIFT-3: func normallyUnchangedButChangedInSwift3()
// CHECK-SWIFT-5: func normallyUnchanged()
// CHECK-SWIFT-5: @available(swift, obsoleted: 4.2, renamed: "normallyUnchanged()")
// CHECK-SWIFT-5-NEXT: func normallyUnchangedButChangedInSwift4()
// CHECK-SWIFT-4: @available(swift, obsoleted: 3, renamed: "normallyUnchangedButChangedInSwift4()")
// CHECK-SWIFT-4-NEXT: func normallyUnchanged()
// CHECK-SWIFT-4: func normallyUnchangedButChangedInSwift4()
// CHECK-SWIFT-4: func normallyChanged()
// CHECK-SWIFT-4-NEXT: @available(swift, obsoleted: 4, renamed: "normallyChanged()")
// CHECK-SWIFT-4-NEXT: func normallyChangedButSpecialInSwift3()
// CHECK-SWIFT-4-NEXT: @available(swift, obsoleted: 3, renamed: "normallyChanged()")
// CHECK-SWIFT-5: func normallyChanged()
// CHECK-SWIFT-5-NEXT: @available(swift, obsoleted: 4.2, renamed: "normallyChanged()")
// CHECK-SWIFT-5-NEXT: func normallyChangedButSpecialInSwift4()
// CHECK-SWIFT-5-NEXT: @available(swift, obsoleted: 3, renamed: "normallyChanged()")
// CHECK-SWIFT-5-NEXT: func normallyChangedOriginal()
// CHECK-SWIFT-4: @available(swift, introduced: 4.2, renamed: "normallyChangedButSpecialInSwift4()")
// CHECK-SWIFT-4-NEXT: func normallyChanged()
// CHECK-SWIFT-4-NEXT: func normallyChangedButSpecialInSwift4()
// CHECK-SWIFT-4-NEXT: @available(swift, obsoleted: 3, renamed: "normallyChangedButSpecialInSwift4()")
// CHECK-SWIFT-4-NEXT: func normallyChangedOriginal()
// CHECK-SWIFT-3: @available(swift, introduced: 4, renamed: "normallyChangedButSpecialInSwift3()")
// CHECK-SWIFT-3-NEXT: func normallyChanged()
// CHECK-SWIFT-3-NEXT: func normallyChangedButSpecialInSwift3()
// CHECK-SWIFT-3-NEXT: @available(swift, obsoleted: 3, renamed: "normallyChangedButSpecialInSwift3()")
// CHECK-SWIFT-3-NEXT: func normallyChangedOriginal()
// CHECK-SWIFT-4: @available(swift, obsoleted: 4, renamed: "NormallyUnchangedWrapper")
// CHECK-SWIFT-4-NEXT: typealias NormallyUnchangedButChangedInSwift3Wrapper = NormallyUnchangedWrapper
// CHECK-SWIFT-4: struct NormallyUnchangedWrapper {
// CHECK-SWIFT-3: typealias NormallyUnchangedButChangedInSwift3Wrapper = NormallyUnchangedWrapper
// CHECK-SWIFT-3-NEXT: struct NormallyUnchangedWrapper {
// CHECK-SWIFT-5: @available(swift, obsoleted: 4.2, renamed: "NormallyUnchangedWrapper")
// CHECK-SWIFT-5-NEXT: typealias NormallyUnchangedButChangedInSwift4Wrapper = NormallyUnchangedWrapper
// CHECK-SWIFT-5: struct NormallyUnchangedWrapper {
// CHECK-SWIFT-4: typealias NormallyUnchangedButChangedInSwift4Wrapper = NormallyUnchangedWrapper
// CHECK-SWIFT-4-NEXT: struct NormallyUnchangedWrapper {
// CHECK-SWIFT-4: @available(swift, obsoleted: 4, renamed: "NormallyChangedWrapper")
// CHECK-SWIFT-4-NEXT: typealias NormallyChangedButSpecialInSwift3Wrapper = NormallyChangedWrapper
// CHECK-SWIFT-4: @available(swift, obsoleted: 3, renamed: "NormallyChangedWrapper")
// CHECK-SWIFT-4-NEXT: typealias NormallyChangedOriginalWrapper = NormallyChangedWrapper
// CHECK-SWIFT-4: struct NormallyChangedWrapper {
// CHECK-SWIFT-3: typealias NormallyChangedButSpecialInSwift3Wrapper = NormallyChangedWrapper
// CHECK-SWIFT-3-NEXT: @available(swift, obsoleted: 3, renamed: "NormallyChangedButSpecialInSwift3Wrapper")
// CHECK-SWIFT-3-NEXT: typealias NormallyChangedOriginalWrapper = NormallyChangedButSpecialInSwift3Wrapper
// CHECK-SWIFT-3-NEXT: struct NormallyChangedWrapper {
// CHECK-SWIFT-5: @available(swift, obsoleted: 4.2, renamed: "NormallyChangedWrapper")
// CHECK-SWIFT-5-NEXT: typealias NormallyChangedButSpecialInSwift4Wrapper = NormallyChangedWrapper
// CHECK-SWIFT-5: @available(swift, obsoleted: 3, renamed: "NormallyChangedWrapper")
// CHECK-SWIFT-5-NEXT: typealias NormallyChangedOriginalWrapper = NormallyChangedWrapper
// CHECK-SWIFT-5: struct NormallyChangedWrapper {
// CHECK-SWIFT-4: typealias NormallyChangedButSpecialInSwift4Wrapper = NormallyChangedWrapper
// CHECK-SWIFT-4-NEXT: @available(swift, obsoleted: 3, renamed: "NormallyChangedButSpecialInSwift4Wrapper")
// CHECK-SWIFT-4-NEXT: typealias NormallyChangedOriginalWrapper = NormallyChangedButSpecialInSwift4Wrapper
// CHECK-SWIFT-4-NEXT: struct NormallyChangedWrapper {
// RUN: not %target-swift-frontend -typecheck -F %S/Inputs/custom-frameworks -swift-version 5 %s 2>&1 | %FileCheck -check-prefix=CHECK-DIAGS -check-prefix=CHECK-DIAGS-5 %s
// RUN: not %target-swift-frontend -typecheck -F %S/Inputs/custom-frameworks -swift-version 4 %s 2>&1 | %FileCheck -check-prefix=CHECK-DIAGS -check-prefix=CHECK-DIAGS-4 %s
// RUN: not %target-swift-frontend -typecheck -F %S/Inputs/custom-frameworks -swift-version 3 %s 2>&1 | %FileCheck -check-prefix=CHECK-DIAGS -check-prefix=CHECK-DIAGS-3 %s
// RUN: %target-swift-frontend -emit-silgen -F %S/Inputs/custom-frameworks -swift-version 3 %s -DSILGEN 2>&1 | %FileCheck -check-prefix=CHECK-SILGEN -check-prefix=CHECK-SILGEN-3 %s
// RUN: %target-swift-frontend -emit-silgen -F %S/Inputs/custom-frameworks -swift-version 4 %s -DSILGEN 2>&1 | %FileCheck -check-prefix=CHECK-SILGEN -check-prefix=CHECK-SILGEN-4 %s
// RUN: %target-swift-frontend -emit-silgen -F %S/Inputs/custom-frameworks -swift-version 5 %s -DSILGEN 2>&1 | %FileCheck -check-prefix=CHECK-SILGEN -check-prefix=CHECK-SILGEN-5 %s
import APINotesFrameworkTest
@@ -58,103 +58,103 @@ import APINotesFrameworkTest
func testRenamedTopLevelDiags() {
var value = 0.0
// CHECK-DIAGS-4-NOT: versioned.swift:[[@LINE+1]]:
// CHECK-DIAGS-5-NOT: versioned.swift:[[@LINE+1]]:
accept(&value)
// CHECK-DIAGS-3: versioned.swift:[[@LINE-1]]:3: error: 'accept' has been renamed to 'acceptPointer(_:)'
// CHECK-DIAGS-3: note: 'accept' was introduced in Swift 4
// CHECK-DIAGS-4: versioned.swift:[[@LINE-1]]:3: error: 'accept' has been renamed to 'acceptPointer(_:)'
// CHECK-DIAGS-4: note: 'accept' was introduced in Swift 4.2
// CHECK-DIAGS-3-NOT: versioned.swift:[[@LINE+1]]:
// CHECK-DIAGS-4-NOT: versioned.swift:[[@LINE+1]]:
acceptPointer(&value)
// CHECK-DIAGS-4: versioned.swift:[[@LINE-1]]:3: error: 'acceptPointer' has been renamed to 'accept(_:)'
// CHECK-DIAGS-4: note: 'acceptPointer' was obsoleted in Swift 4
// CHECK-DIAGS-5: versioned.swift:[[@LINE-1]]:3: error: 'acceptPointer' has been renamed to 'accept(_:)'
// CHECK-DIAGS-5: note: 'acceptPointer' was obsoleted in Swift 4.2
acceptDoublePointer(&value)
// CHECK-DIAGS: versioned.swift:[[@LINE-1]]:3: error: 'acceptDoublePointer' has been renamed to
// CHECK-DIAGS-4-SAME: 'accept(_:)'
// CHECK-DIAGS-3-SAME: 'acceptPointer(_:)'
// CHECK-DIAGS-5-SAME: 'accept(_:)'
// CHECK-DIAGS-4-SAME: 'acceptPointer(_:)'
// CHECK-DIAGS: note: 'acceptDoublePointer' was obsoleted in Swift 3
oldAcceptDoublePointer(&value)
// CHECK-DIAGS: versioned.swift:[[@LINE-1]]:3: error: 'oldAcceptDoublePointer' has been renamed to
// CHECK-DIAGS-4-SAME: 'accept(_:)'
// CHECK-DIAGS-3-SAME: 'acceptPointer(_:)'
// CHECK-DIAGS-5-SAME: 'accept(_:)'
// CHECK-DIAGS-4-SAME: 'acceptPointer(_:)'
// CHECK-DIAGS: note: 'oldAcceptDoublePointer' has been explicitly marked unavailable here
_ = SomeCStruct()
// CHECK-DIAGS: versioned.swift:[[@LINE-1]]:7: error: 'SomeCStruct' has been renamed to
// CHECK-DIAGS-4-SAME: 'VeryImportantCStruct'
// CHECK-DIAGS-3-SAME: 'ImportantCStruct'
// CHECK-DIAGS-5-SAME: 'VeryImportantCStruct'
// CHECK-DIAGS-4-SAME: 'ImportantCStruct'
// CHECK-DIAGS: note: 'SomeCStruct' was obsoleted in Swift 3
// CHECK-DIAGS-3-NOT: versioned.swift:[[@LINE+1]]:
// CHECK-DIAGS-4-NOT: versioned.swift:[[@LINE+1]]:
_ = ImportantCStruct()
// CHECK-DIAGS-4: versioned.swift:[[@LINE-1]]:7: error: 'ImportantCStruct' has been renamed to 'VeryImportantCStruct'
// CHECK-DIAGS-4: note: 'ImportantCStruct' was obsoleted in Swift 4
// CHECK-DIAGS-5: versioned.swift:[[@LINE-1]]:7: error: 'ImportantCStruct' has been renamed to 'VeryImportantCStruct'
// CHECK-DIAGS-5: note: 'ImportantCStruct' was obsoleted in Swift 4.2
// CHECK-DIAGS-5-NOT: versioned.swift:[[@LINE+1]]:
_ = VeryImportantCStruct()
// CHECK-DIAGS-4-NOTE: versioned.swift:[[@LINE-1]]:
// CHECK-DIAGS-4-NOT: versioned.swift:[[@LINE+1]]:
_ = VeryImportantCStruct()
// CHECK-DIAGS-3-NOTE: versioned.swift:[[@LINE-1]]:
let s = InnerInSwift5()
// CHECK-DIAGS-5: versioned.swift:[[@LINE-1]]:11: error: 'InnerInSwift5' has been renamed to 'Outer.Inner'
// CHECK-DIAGS-5: note: 'InnerInSwift5' was obsoleted in Swift 4.2
_ = s.value
// CHECK-DIAGS-5-NOT: versioned.swift:[[@LINE-1]]:
// CHECK-DIAGS-3-NOT: versioned.swift:[[@LINE+1]]:
let s = InnerInSwift4()
// CHECK-DIAGS-4: versioned.swift:[[@LINE-1]]:11: error: 'InnerInSwift4' has been renamed to 'Outer.Inner'
// CHECK-DIAGS-4: note: 'InnerInSwift4' was obsoleted in Swift 4
// CHECK-DIAGS-5-NOT: versioned.swift:[[@LINE+1]]:
let t = Outer.Inner()
// CHECK-DIAGS-4-NOT: versioned.swift:[[@LINE-1]]:
_ = s.value
// CHECK-DIAGS-4-NOT: versioned.swift:[[@LINE-1]]:
// CHECK-DIAGS-4-NOT: versioned.swift:[[@LINE+1]]:
let t = Outer.Inner()
// CHECK-DIAGS-3-NOT: versioned.swift:[[@LINE-1]]:
_ = s.value
// CHECK-DIAGS-3-NOT: versioned.swift:[[@LINE-1]]:
}
func testAKA(structValue: ImportantCStruct, aliasValue: ImportantCAlias) {
let _: Int = structValue
// CHECK-DIAGS-3: versioned.swift:[[@LINE-1]]:16: error: cannot convert value of type 'ImportantCStruct' to specified type 'Int'
// CHECK-DIAGS-4: versioned.swift:[[@LINE-1]]:16: error: cannot convert value of type 'ImportantCStruct' to specified type 'Int'
let _: Int = aliasValue
// CHECK-DIAGS-3: versioned.swift:[[@LINE-1]]:16: error: cannot convert value of type 'ImportantCAlias' (aka 'Int32') to specified type 'Int'
// CHECK-DIAGS-4: versioned.swift:[[@LINE-1]]:16: error: cannot convert value of type 'ImportantCAlias' (aka 'Int32') to specified type 'Int'
let optStructValue: Optional = structValue
let _: Int = optStructValue
// CHECK-DIAGS-3: versioned.swift:[[@LINE-1]]:16: error: cannot convert value of type 'ImportantCStruct?' to specified type 'Int'
// CHECK-DIAGS-4: versioned.swift:[[@LINE-1]]:16: error: cannot convert value of type 'ImportantCStruct?' to specified type 'Int'
let optAliasValue: Optional = aliasValue
let _: Int = optAliasValue
// CHECK-DIAGS-3: versioned.swift:[[@LINE-1]]:16: error: cannot convert value of type 'ImportantCAlias?' (aka 'Optional<Int32>') to specified type 'Int'
// CHECK-DIAGS-4: versioned.swift:[[@LINE-1]]:16: error: cannot convert value of type 'ImportantCAlias?' (aka 'Optional<Int32>') to specified type 'Int'
}
func testRenamedEnumConstants() {
_ = AnonymousEnumValue // okay
// CHECK-DIAGS-4: [[@LINE+1]]:7: error: 'AnonymousEnumRenamed' has been renamed to 'AnonymousEnumRenamedSwiftUnversioned'
// CHECK-DIAGS-5: [[@LINE+1]]:7: error: 'AnonymousEnumRenamed' has been renamed to 'AnonymousEnumRenamedSwiftUnversioned'
_ = AnonymousEnumRenamed
// CHECK-DIAGS-3: [[@LINE-1]]:7: error: 'AnonymousEnumRenamed' has been renamed to 'AnonymousEnumRenamedSwift3'
// CHECK-DIAGS-4: [[@LINE-1]]:7: error: 'AnonymousEnumRenamed' has been renamed to 'AnonymousEnumRenamedSwift4'
// CHECK-DIAGS-4-NOT: :[[@LINE+1]]:7:
// CHECK-DIAGS-5-NOT: :[[@LINE+1]]:7:
_ = AnonymousEnumRenamedSwiftUnversioned
// CHECK-DIAGS-3: [[@LINE-1]]:7: error: 'AnonymousEnumRenamedSwiftUnversioned' has been renamed to 'AnonymousEnumRenamedSwift3'
// CHECK-DIAGS-4: [[@LINE-1]]:7: error: 'AnonymousEnumRenamedSwiftUnversioned' has been renamed to 'AnonymousEnumRenamedSwift4'
// CHECK-DIAGS-4: [[@LINE+1]]:7: error: 'AnonymousEnumRenamedSwift3' has been renamed to 'AnonymousEnumRenamedSwiftUnversioned'
_ = AnonymousEnumRenamedSwift3
// CHECK-DIAGS-3-NOT: :[[@LINE-1]]:7:
// CHECK-DIAGS-5: [[@LINE+1]]:7: error: 'AnonymousEnumRenamedSwift4' has been renamed to 'AnonymousEnumRenamedSwiftUnversioned'
_ = AnonymousEnumRenamedSwift4
// CHECK-DIAGS-4-NOT: :[[@LINE-1]]:7:
}
func testRenamedUnknownEnum() {
_ = UnknownEnumValue // okay
// CHECK-DIAGS-4: [[@LINE+1]]:7: error: 'UnknownEnumRenamed' has been renamed to 'UnknownEnumRenamedSwiftUnversioned'
// CHECK-DIAGS-5: [[@LINE+1]]:7: error: 'UnknownEnumRenamed' has been renamed to 'UnknownEnumRenamedSwiftUnversioned'
_ = UnknownEnumRenamed
// CHECK-DIAGS-3: [[@LINE-1]]:7: error: 'UnknownEnumRenamed' has been renamed to 'UnknownEnumRenamedSwift3'
// CHECK-DIAGS-4: [[@LINE-1]]:7: error: 'UnknownEnumRenamed' has been renamed to 'UnknownEnumRenamedSwift4'
// CHECK-DIAGS-4-NOT: :[[@LINE+1]]:7:
// CHECK-DIAGS-5-NOT: :[[@LINE+1]]:7:
_ = UnknownEnumRenamedSwiftUnversioned
// CHECK-DIAGS-3: [[@LINE-1]]:7: error: 'UnknownEnumRenamedSwiftUnversioned' has been renamed to 'UnknownEnumRenamedSwift3'
// CHECK-DIAGS-4: [[@LINE-1]]:7: error: 'UnknownEnumRenamedSwiftUnversioned' has been renamed to 'UnknownEnumRenamedSwift4'
// CHECK-DIAGS-4: [[@LINE+1]]:7: error: 'UnknownEnumRenamedSwift3' has been renamed to 'UnknownEnumRenamedSwiftUnversioned'
_ = UnknownEnumRenamedSwift3
// CHECK-DIAGS-3-NOT: :[[@LINE-1]]:7:
// CHECK-DIAGS-5: [[@LINE+1]]:7: error: 'UnknownEnumRenamedSwift4' has been renamed to 'UnknownEnumRenamedSwiftUnversioned'
_ = UnknownEnumRenamedSwift4
// CHECK-DIAGS-4-NOT: :[[@LINE-1]]:7:
}
func testRenamedTrueEnum() {
@@ -175,20 +175,20 @@ func testRenamedTrueEnum() {
// CHECK-DIAGS: [[@LINE+1]]:7: error: type 'TrueEnum' has no member 'TrueEnumRenamed'
_ = TrueEnum.TrueEnumRenamed
// CHECK-DIAGS-4: [[@LINE+1]]:16: error: 'Renamed' has been renamed to 'renamedSwiftUnversioned'
// CHECK-DIAGS-5: [[@LINE+1]]:16: error: 'Renamed' has been renamed to 'renamedSwiftUnversioned'
_ = TrueEnum.Renamed
// CHECK-DIAGS-3: [[@LINE-1]]:16: error: 'Renamed' has been renamed to 'renamedSwift3'
// CHECK-DIAGS-4: [[@LINE-1]]:16: error: 'Renamed' has been renamed to 'renamedSwift4'
// CHECK-DIAGS: [[@LINE+1]]:7: error: type 'TrueEnum' has no member 'renamed'
_ = TrueEnum.renamed
// CHECK-DIAGS-4-NOT: :[[@LINE+1]]:16:
// CHECK-DIAGS-5-NOT: :[[@LINE+1]]:16:
_ = TrueEnum.renamedSwiftUnversioned
// CHECK-DIAGS-3: [[@LINE-1]]:16: error: 'renamedSwiftUnversioned' has been renamed to 'renamedSwift3'
// CHECK-DIAGS-4: [[@LINE-1]]:16: error: 'renamedSwiftUnversioned' has been renamed to 'renamedSwift4'
// CHECK-DIAGS-4: [[@LINE+1]]:16: error: 'renamedSwift3' has been renamed to 'renamedSwiftUnversioned'
_ = TrueEnum.renamedSwift3
// CHECK-DIAGS-3-NOT: :[[@LINE-1]]:16:
// CHECK-DIAGS-5: [[@LINE+1]]:16: error: 'renamedSwift4' has been renamed to 'renamedSwiftUnversioned'
_ = TrueEnum.renamedSwift4
// CHECK-DIAGS-4-NOT: :[[@LINE-1]]:16:
// CHECK-DIAGS: [[@LINE+1]]:7: error: use of unresolved identifier 'TrueEnumAliasRenamed'
_ = TrueEnumAliasRenamed
@@ -196,20 +196,20 @@ func testRenamedTrueEnum() {
// CHECK-DIAGS: [[@LINE+1]]:7: error: type 'TrueEnum' has no member 'TrueEnumAliasRenamed'
_ = TrueEnum.TrueEnumAliasRenamed
// CHECK-DIAGS-4: [[@LINE+1]]:16: error: 'AliasRenamed' has been renamed to 'aliasRenamedSwiftUnversioned'
// CHECK-DIAGS-5: [[@LINE+1]]:16: error: 'AliasRenamed' has been renamed to 'aliasRenamedSwiftUnversioned'
_ = TrueEnum.AliasRenamed
// CHECK-DIAGS-3: [[@LINE-1]]:16: error: 'AliasRenamed' has been renamed to 'aliasRenamedSwift3'
// CHECK-DIAGS-4: [[@LINE-1]]:16: error: 'AliasRenamed' has been renamed to 'aliasRenamedSwift4'
// CHECK-DIAGS: [[@LINE+1]]:7: error: type 'TrueEnum' has no member 'aliasRenamed'
_ = TrueEnum.aliasRenamed
// CHECK-DIAGS-4-NOT: :[[@LINE+1]]:16:
// CHECK-DIAGS-5-NOT: :[[@LINE+1]]:16:
_ = TrueEnum.aliasRenamedSwiftUnversioned
// CHECK-DIAGS-3: [[@LINE-1]]:16: error: 'aliasRenamedSwiftUnversioned' has been renamed to 'aliasRenamedSwift3'
// CHECK-DIAGS-4: [[@LINE-1]]:16: error: 'aliasRenamedSwiftUnversioned' has been renamed to 'aliasRenamedSwift4'
// CHECK-DIAGS-4: [[@LINE+1]]:16: error: 'aliasRenamedSwift3' has been renamed to 'aliasRenamedSwiftUnversioned'
_ = TrueEnum.aliasRenamedSwift3
// CHECK-DIAGS-3-NOT: :[[@LINE-1]]:16:
// CHECK-DIAGS-5: [[@LINE+1]]:16: error: 'aliasRenamedSwift4' has been renamed to 'aliasRenamedSwiftUnversioned'
_ = TrueEnum.aliasRenamedSwift4
// CHECK-DIAGS-4-NOT: :[[@LINE-1]]:16:
}
func testRenamedOptionyEnum() {
@@ -230,46 +230,46 @@ func testRenamedOptionyEnum() {
// CHECK-DIAGS: [[@LINE+1]]:7: error: type 'OptionyEnum' has no member 'OptionyEnumRenamed'
_ = OptionyEnum.OptionyEnumRenamed
// CHECK-DIAGS-4: [[@LINE+1]]:19: error: 'Renamed' has been renamed to 'renamedSwiftUnversioned'
// CHECK-DIAGS-5: [[@LINE+1]]:19: error: 'Renamed' has been renamed to 'renamedSwiftUnversioned'
_ = OptionyEnum.Renamed
// CHECK-DIAGS-3: [[@LINE-1]]:19: error: 'Renamed' has been renamed to 'renamedSwift3'
// CHECK-DIAGS-4: [[@LINE-1]]:19: error: 'Renamed' has been renamed to 'renamedSwift4'
// CHECK-DIAGS: [[@LINE+1]]:7: error: type 'OptionyEnum' has no member 'renamed'
_ = OptionyEnum.renamed
// CHECK-DIAGS-4-NOT: :[[@LINE+1]]:19:
// CHECK-DIAGS-5-NOT: :[[@LINE+1]]:19:
_ = OptionyEnum.renamedSwiftUnversioned
// CHECK-DIAGS-3: [[@LINE-1]]:19: error: 'renamedSwiftUnversioned' has been renamed to 'renamedSwift3'
// CHECK-DIAGS-4: [[@LINE-1]]:19: error: 'renamedSwiftUnversioned' has been renamed to 'renamedSwift4'
// CHECK-DIAGS-4: [[@LINE+1]]:19: error: 'renamedSwift3' has been renamed to 'renamedSwiftUnversioned'
_ = OptionyEnum.renamedSwift3
// CHECK-DIAGS-3-NOT: :[[@LINE-1]]:19:
// CHECK-DIAGS-5: [[@LINE+1]]:19: error: 'renamedSwift4' has been renamed to 'renamedSwiftUnversioned'
_ = OptionyEnum.renamedSwift4
// CHECK-DIAGS-4-NOT: :[[@LINE-1]]:19:
}
#endif
#if !swift(>=4)
#if !swift(>=5)
func useSwift3Name(_: ImportantCStruct) {}
// CHECK-SILGEN-3: sil hidden @$S9versioned13useSwift3NameyySo11SomeCStructVF
func useSwift4Name(_: ImportantCStruct) {}
// CHECK-SILGEN-4: sil hidden @$S9versioned13useSwift4NameyySo11SomeCStructVF
func useNewlyNested(_: InnerInSwift4) {}
// CHECK-SILGEN-3: sil hidden @$S9versioned14useNewlyNestedyySo13InnerInSwift4VF
func useNewlyNested(_: InnerInSwift5) {}
// CHECK-SILGEN-4: sil hidden @$S9versioned14useNewlyNestedyySo13InnerInSwift5VF
#endif
func useSwift4Name(_: VeryImportantCStruct) {}
// CHECK-SILGEN: sil hidden @$S9versioned13useSwift4NameyySo11SomeCStructVF
func useSwift5Name(_: VeryImportantCStruct) {}
// CHECK-SILGEN: sil hidden @$S9versioned13useSwift5NameyySo11SomeCStructVF
#if swift(>=4)
func testSwiftWrapperInSwift4() {
#if swift(>=5)
func testSwiftWrapperInSwift5() {
_ = EnclosingStruct.Identifier.member
let _: EnclosingStruct.Identifier = .member
}
#else
func testSwiftWrapperInSwift3() {
func testSwiftWrapperInSwift4() {
_ = EnclosingStruct.Identifier.member
let _: EnclosingStruct.Identifier = .member
}