File tree 4 files changed +19
-0
lines changed
4 files changed +19
-0
lines changed Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ Classes:
18
18
MethodKind: Instance
19
19
SwiftName: 'matching(identifier:)'
20
20
- Name: XCTestCase
21
+ SwiftObjCMembers: true
21
22
Methods:
22
23
- Selector: 'waitForExpectationsWithTimeout:handler:'
23
24
MethodKind: Instance
Original file line number Diff line number Diff line change @@ -6722,6 +6722,14 @@ void ClangImporter::Implementation::importAttributes(
6722
6722
return ;
6723
6723
}
6724
6724
6725
+ // Map Clang's swift_objc_members attribute to @objcMembers.
6726
+ if (ID->hasAttr <clang::SwiftObjCMembersAttr>()) {
6727
+ if (!MappedDecl->getAttrs ().hasAttribute <ObjCMembersAttr>()) {
6728
+ auto attr = new (C) ObjCMembersAttr (/* implicit=*/ true );
6729
+ MappedDecl->getAttrs ().add (attr);
6730
+ }
6731
+ }
6732
+
6725
6733
// Infer @objcMembers on XCTestCase.
6726
6734
if (ID->getName () == " XCTestCase" ) {
6727
6735
if (!MappedDecl->getAttrs ().hasAttribute <ObjCMembersAttr>()) {
Original file line number Diff line number Diff line change 1
1
Name: APINotesFrameworkTest
2
2
Classes:
3
+ - Name: A
4
+ SwiftObjCMembers: true
3
5
- Name: TestProperties
4
6
Properties:
5
7
- Name: accessorsOnly
Original file line number Diff line number Diff line change 2
2
import APINotesTest
3
3
import APINotesFrameworkTest
4
4
5
+ extension A {
6
+ func implicitlyObjC( ) { }
7
+ }
8
+
9
+ func testSelectors( a: AnyObject ) {
10
+ a. implicitlyObjC ? ( ) // okay: would complain without SwiftObjCMembers
11
+ }
12
+
5
13
func testSwiftName( ) {
6
14
moveTo ( x: 0 , y: 0 , z: 0 )
7
15
moveTo ( 0 , 0 , 0 ) // expected-error{{missing argument labels 'x:y:z:' in call}}
You can’t perform that action at this time.
0 commit comments