|
1 | 1 | // RUN: not %target-swift-frontend(mock-sdk: %clang-importer-sdk) -enable-objc-interop -typecheck -F %S/Inputs/frameworks %s 2>&1 | %FileCheck -check-prefix=CHECK -check-prefix=CHECK-PUBLIC %s
|
2 | 2 |
|
3 | 3 | // RUN: echo '#import <CategoryOverrides/Private.h>' > %t.h
|
4 |
| -// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck -F %S/Inputs/frameworks -enable-objc-interop -import-objc-header %t.h %s 2>&1 | %FileCheck -check-prefix=CHECK -check-prefix=CHECK-PRIVATE %s --allow-empty |
| 4 | +// RUN: not %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck -F %S/Inputs/frameworks -enable-objc-interop -import-objc-header %t.h %s 2>&1 | %FileCheck -check-prefix=CHECK -check-prefix=CHECK-PRIVATE %s --allow-empty |
5 | 5 |
|
6 | 6 | // RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -enable-objc-interop -emit-pch -F %S/Inputs/frameworks -o %t.pch %t.h
|
7 |
| -// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck -F %S/Inputs/frameworks -enable-objc-interop -import-objc-header %t.pch %s 2>&1 | %FileCheck --allow-empty -check-prefix=CHECK -check-prefix=CHECK-PRIVATE %s |
8 |
| -// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck -F %S/Inputs/frameworks -enable-objc-interop -import-objc-header %t.h -pch-output-dir %t/pch %s 2>&1 | %FileCheck --allow-empty -check-prefix=CHECK -check-prefix=CHECK-PRIVATE %s |
| 7 | +// RUN: not %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck -F %S/Inputs/frameworks -enable-objc-interop -import-objc-header %t.pch %s 2>&1 | %FileCheck --allow-empty -check-prefix=CHECK -check-prefix=CHECK-PRIVATE %s |
| 8 | +// RUN: not %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck -F %S/Inputs/frameworks -enable-objc-interop -import-objc-header %t.h -pch-output-dir %t/pch %s 2>&1 | %FileCheck --allow-empty -check-prefix=CHECK -check-prefix=CHECK-PRIVATE %s |
9 | 9 |
|
10 | 10 | import CategoryOverrides
|
11 | 11 |
|
@@ -54,3 +54,27 @@ func takesABaseClass(_ x: MyBaseClass) {
|
54 | 54 | // CHECK-PRIVATE-NOT: has no member 'derivedMember'
|
55 | 55 | x.derivedMember = Base()
|
56 | 56 | }
|
| 57 | + |
| 58 | +// A category declared in a (private) header can introduce overrides of a |
| 59 | +// property that has mismatched Swift naming conventions. If we see a |
| 60 | +// non-__attribute__((swift_private)) decl, sometimes it comes in too. |
| 61 | + |
| 62 | +extension Refinery { |
| 63 | + public enum RefinedSugar { |
| 64 | + case caster |
| 65 | + case grantulated |
| 66 | + case confectioners |
| 67 | + case cane |
| 68 | + case demerara |
| 69 | + case turbinado |
| 70 | + } |
| 71 | + |
| 72 | + public var sugar: Refinery.RefinedSugar { |
| 73 | + return .caster // RefinedSugar(self.__sugar) |
| 74 | + } |
| 75 | +} |
| 76 | + |
| 77 | +func takesARefinery(_ x: Refinery) { |
| 78 | + // CHECK: cannot assign to property: 'sugar' is a get-only property |
| 79 | + x.sugar = .caster |
| 80 | +} |
0 commit comments