Files
swift-mirror/test/ClangImporter/Inputs/custom-modules/CInsideObjC.h
Jordan Rose 85019e8d3d [ClangImporter] Structs lexically in an ObjC class are still top-level. (#10874)
Not every declaration that's syntactically in an Objective-C container
is a member of that container. Double-check the decl context before
adding it.

This is technically a breaking change in non-asserts builds, because
the struct really could be found via member lookup. But that should
be considered a bug, and I /suspect/ no one is relying on it.

rdar://problem/32451417
2017-07-11 08:25:19 -07:00

36 lines
574 B
Objective-C

@interface Base
@end
struct AlreadyDeclaredStruct {
int value;
};
#if defined(CLASS)
@interface Wrapper : Base
#elif defined(CATEGORY)
@interface Wrapper : Base
@end
@interface Wrapper (Category)
#elif defined(PROTOCOL)
@protocol Wrapper
#else
# error "Must pick a variant"
#endif
extern void nestedFunc(void);
@property struct ForwardDeclaredStruct forward;
@property struct AlreadyDeclaredStruct backward;
struct NestedDeclaredStruct {
int value;
};
typedef int NestedTypedef;
extern const int nestedGlobal;
@end
struct ForwardDeclaredStruct {
int value;
};