Skip to content

Commit 4f26b01

Browse files
authored
Update Swift-side tests for Clang providing an unversioned SwiftName. (#9414)
The behavior in versioned-objc.swift changes now that we've fixed this, since we always prefer to use a type's Swift 4 name. A handful of new tests have also been added to versioned.swift.
1 parent 886b1f8 commit 4f26b01

File tree

5 files changed

+58
-4
lines changed

5 files changed

+58
-4
lines changed

test/APINotes/Inputs/custom-frameworks/APINotesFrameworkTest.framework/Headers/APINotesFrameworkTest.apinotes

+8
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,19 @@ SwiftVersions:
9898
- Name: acceptDoublePointer
9999
SwiftName: 'acceptPointer(_:)'
100100
Nullability: [ O ]
101+
- Name: normallyUnchanged
102+
SwiftName: normallyUnchangedButChangedInSwift3()
103+
- Name: normallyChangedOriginal
104+
SwiftName: normallyChangedButSpecialInSwift3()
101105
Tags:
102106
- Name: SomeCStruct
103107
SwiftName: ImportantCStruct
104108
- Name: InnerInSwift4
105109
SwiftName: InnerInSwift4
110+
- Name: NormallyUnchangedWrapper
111+
SwiftName: NormallyUnchangedButChangedInSwift3Wrapper
112+
- Name: NormallyChangedOriginalWrapper
113+
SwiftName: NormallyChangedButSpecialInSwift3Wrapper
106114
Typedefs:
107115
- Name: SomeCAlias
108116
SwiftName: ImportantCAlias

test/APINotes/Inputs/custom-frameworks/APINotesFrameworkTest.framework/Headers/APINotesFrameworkTest.h

+3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ void acceptDoublePointer(double* _Nonnull ptr) __attribute__((swift_name("accept
44

55
void oldAcceptDoublePointer(double* _Nonnull ptr) __attribute__((availability(swift, unavailable, replacement="acceptDoublePointer")));
66

7+
void normallyUnchanged(void);
8+
void normallyChangedOriginal(void) __attribute__((swift_name("normallyChanged()")));
9+
710
#ifdef __OBJC__
811

912
__attribute__((objc_root_class))

test/APINotes/Inputs/custom-frameworks/APINotesFrameworkTest.framework/Headers/Types.h

+7
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,11 @@ struct __attribute__((swift_name("VeryImportantCStruct"))) SomeCStruct {
66

77
typedef int __attribute__((swift_name("VeryImportantCAlias"))) SomeCAlias;
88

9+
struct NormallyUnchangedWrapper {
10+
int value;
11+
};
12+
struct NormallyChangedOriginalWrapper{
13+
int value;
14+
} __attribute__((swift_name("NormallyChangedWrapper")));
15+
916
#pragma clang assume_nonnull end

test/APINotes/versioned-objc.swift

+4-4
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,21 @@ func testNonGeneric() {
2424
}
2525

2626
func testRenamedGeneric() {
27-
// CHECK-DIAGS-3:[[@LINE+1]]:{{[0-9]+}}: error: 'RenamedGeneric' has been renamed to 'OldRenamedGeneric'
27+
// CHECK-DIAGS-3-NOT: 'RenamedGeneric' has been renamed to 'OldRenamedGeneric'
2828
let _: OldRenamedGeneric<Base> = RenamedGeneric<Base>()
2929
// CHECK-DIAGS-4:[[@LINE-1]]:{{[0-9]+}}: error: 'OldRenamedGeneric' has been renamed to 'RenamedGeneric'
3030

31-
// CHECK-DIAGS-3:[[@LINE+1]]:{{[0-9]+}}: error: 'RenamedGeneric' has been renamed to 'OldRenamedGeneric'
31+
// CHECK-DIAGS-3-NOT: 'RenamedGeneric' has been renamed to 'OldRenamedGeneric'
3232
let _: RenamedGeneric<Base> = OldRenamedGeneric<Base>()
3333
// CHECK-DIAGS-4:[[@LINE-1]]:{{[0-9]+}}: error: 'OldRenamedGeneric' has been renamed to 'RenamedGeneric'
3434

3535
class SwiftClass {}
3636

37-
// CHECK-DIAGS-3:[[@LINE+1]]:{{[0-9]+}}: error: 'OldRenamedGeneric' requires that 'SwiftClass' inherit from 'Base'
37+
// CHECK-DIAGS-3:[[@LINE+1]]:{{[0-9]+}}: error: 'RenamedGeneric' requires that 'SwiftClass' inherit from 'Base'
3838
let _: OldRenamedGeneric<SwiftClass> = RenamedGeneric<SwiftClass>()
3939
// CHECK-DIAGS-4:[[@LINE-1]]:{{[0-9]+}}: error: 'RenamedGeneric' requires that 'SwiftClass' inherit from 'Base'
4040

41-
// CHECK-DIAGS-3:[[@LINE+1]]:{{[0-9]+}}: error: 'OldRenamedGeneric' requires that 'SwiftClass' inherit from 'Base'
41+
// CHECK-DIAGS-3:[[@LINE+1]]:{{[0-9]+}}: error: 'RenamedGeneric' requires that 'SwiftClass' inherit from 'Base'
4242
let _: RenamedGeneric<SwiftClass> = OldRenamedGeneric<SwiftClass>()
4343
// CHECK-DIAGS-4:[[@LINE-1]]:{{[0-9]+}}: error: 'RenamedGeneric' requires that 'SwiftClass' inherit from 'Base'
4444
}

test/APINotes/versioned.swift

+36
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,42 @@
1010
// CHECK-SWIFT-4: func accept(_ ptr: UnsafeMutablePointer<Double>)
1111
// CHECK-SWIFT-3: func acceptPointer(_ ptr: UnsafeMutablePointer<Double>?)
1212

13+
// CHECK-SWIFT-4: func normallyUnchanged()
14+
// CHECK-SWIFT-4: @available(swift, obsoleted: 4, renamed: "normallyUnchanged()")
15+
// CHECK-SWIFT-4-NEXT: func normallyUnchangedButChangedInSwift3()
16+
// CHECK-SWIFT-3: @available(swift, obsoleted: 3, renamed: "normallyUnchangedButChangedInSwift3()")
17+
// CHECK-SWIFT-3-NEXT: func normallyUnchanged()
18+
// CHECK-SWIFT-3: func normallyUnchangedButChangedInSwift3()
19+
20+
21+
// CHECK-SWIFT-4: func normallyChanged()
22+
// CHECK-SWIFT-4-NEXT: @available(swift, obsoleted: 4, renamed: "normallyChanged()")
23+
// CHECK-SWIFT-4-NEXT: func normallyChangedButSpecialInSwift3()
24+
// CHECK-SWIFT-4-NEXT: @available(swift, obsoleted: 3, renamed: "normallyChanged()")
25+
// CHECK-SWIFT-4-NEXT: func normallyChangedOriginal()
26+
// CHECK-SWIFT-3: @available(swift, introduced: 4, renamed: "normallyChangedButSpecialInSwift3()")
27+
// CHECK-SWIFT-3-NEXT: func normallyChanged()
28+
// CHECK-SWIFT-3-NEXT: func normallyChangedButSpecialInSwift3()
29+
// CHECK-SWIFT-3-NEXT: @available(swift, obsoleted: 3, renamed: "normallyChangedButSpecialInSwift3()")
30+
// CHECK-SWIFT-3-NEXT: func normallyChangedOriginal()
31+
32+
// CHECK-SWIFT-4: @available(swift, obsoleted: 4, renamed: "NormallyUnchangedWrapper")
33+
// CHECK-SWIFT-4-NEXT: typealias NormallyUnchangedButChangedInSwift3Wrapper = NormallyUnchangedWrapper
34+
// CHECK-SWIFT-4: struct NormallyUnchangedWrapper {
35+
// CHECK-SWIFT-3: typealias NormallyUnchangedButChangedInSwift3Wrapper = NormallyUnchangedWrapper
36+
// CHECK-SWIFT-3-NEXT: struct NormallyUnchangedWrapper {
37+
38+
// CHECK-SWIFT-4: @available(swift, obsoleted: 4, renamed: "NormallyChangedWrapper")
39+
// CHECK-SWIFT-4-NEXT: typealias NormallyChangedButSpecialInSwift3Wrapper = NormallyChangedWrapper
40+
// CHECK-SWIFT-4: @available(swift, obsoleted: 3, renamed: "NormallyChangedWrapper")
41+
// CHECK-SWIFT-4-NEXT: typealias NormallyChangedOriginalWrapper = NormallyChangedWrapper
42+
// CHECK-SWIFT-4: struct NormallyChangedWrapper {
43+
// CHECK-SWIFT-3: typealias NormallyChangedButSpecialInSwift3Wrapper = NormallyChangedWrapper
44+
// CHECK-SWIFT-3-NEXT: @available(swift, obsoleted: 3, renamed: "NormallyChangedButSpecialInSwift3Wrapper")
45+
// CHECK-SWIFT-3-NEXT: typealias NormallyChangedOriginalWrapper = NormallyChangedButSpecialInSwift3Wrapper
46+
// CHECK-SWIFT-3-NEXT: struct NormallyChangedWrapper {
47+
48+
1349
// 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
1450
// 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
1551

0 commit comments

Comments
 (0)