
This attribute allows declarations to be restricted to the framework
itself, enabling Swift to remove the declarations when importing
libraries. This is useful in the case that the functions can be
implemented in a more natural way for Swift.
This is based on the work of the original changes in
8afaf3aad2
Differential Revision: https://reviews.llvm.org/D87720
Reviewed By: Aaron Ballman
30 lines
708 B
Objective-C
30 lines
708 B
Objective-C
// RUN: %clang_cc1 -verify -fsyntax-only -fobjc-arc %s
|
|
|
|
__attribute__((__swift_private__))
|
|
@protocol P
|
|
@end
|
|
|
|
__attribute__((__swift_private__))
|
|
@interface I
|
|
@end
|
|
|
|
@interface J
|
|
@property id property __attribute__((__swift_private__));
|
|
- (void)instanceMethod __attribute__((__swift_private__));
|
|
+ (void)classMethod __attribute__((__swift_private__));
|
|
@end
|
|
|
|
void f(void) __attribute__((__swift_private__));
|
|
|
|
struct __attribute__((__swift_private__)) S {};
|
|
|
|
enum __attribute__((__swift_private__)) E {
|
|
one,
|
|
two,
|
|
};
|
|
|
|
typedef struct { } T __attribute__((__swift_private__));
|
|
|
|
void g(void) __attribute__((__swift_private__("private")));
|
|
// expected-error@-1 {{'__swift_private__' attribute takes no arguments}}
|