llvm-project/clang/test/SemaObjC/attr-swift_private.m
Saleem Abdulrasool 58cdbf518b Sema: add support for __attribute__((__swift_private__))
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
2020-09-25 22:33:53 +00:00

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}}