mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Obj-C subscripts don’t work on class objects, but you can declare class methods with the appropriate names. We don’t want to half-support this. Emit an error if you try to write “@objc class subscript” and test that we don’t import the methods as subscripts.
70 lines
2.4 KiB
Objective-C
70 lines
2.4 KiB
Objective-C
@import ObjectiveC;
|
|
@import Foundation;
|
|
|
|
@interface KeySubscript1 : NSObject
|
|
- (id)objectForKeyedSubscript:(NSString *)subscript;
|
|
- (void)setObject:(id)object forKeyedSubscript:(NSString *)key;
|
|
@end
|
|
|
|
@interface KeySubscript2 : NSObject
|
|
- (nullable id)objectForKeyedSubscript:(nonnull NSString *)subscript;
|
|
- (void)setObject:(nullable id)object forKeyedSubscript:(nonnull NSString *)key;
|
|
@end
|
|
|
|
@interface KeySubscript3 : NSObject
|
|
- (nullable NSString *)objectForKeyedSubscript:(nonnull NSString *)subscript;
|
|
- (void)setObject:(nullable NSString *)object forKeyedSubscript:(nonnull NSString *)key;
|
|
@end
|
|
|
|
@interface KeySubscript4 : NSObject
|
|
- (nullable NSString *)objectForKeyedSubscript:(nonnull NSArray *)subscript;
|
|
- (void)setObject:(nullable NSString *)object forKeyedSubscript:(nonnull NSArray *)key;
|
|
@end
|
|
|
|
@protocol KeySubscriptProto1
|
|
- (nullable NSString *)objectForKeyedSubscript:(nonnull NSString *)subscript;
|
|
@end
|
|
|
|
@protocol KeySubscriptProto2
|
|
- (NSString *)objectForKeyedSubscript:(NSString *)subscript;
|
|
- (void)setObject:(NSString *)object forKeyedSubscript:(NSString *)key;
|
|
@end
|
|
|
|
|
|
// rdar://problem/36033356 failed specifically when the base class was never
|
|
// subscripted, so please don't mention this class in the .swift file.
|
|
@interface KeySubscriptBase
|
|
- (id)objectForKeyedSubscript:(NSString *)subscript;
|
|
- (void)setObject:(id)object forKeyedSubscript:(NSString *)key;
|
|
@end
|
|
|
|
@interface KeySubscriptOverrideGetter : KeySubscriptBase
|
|
- (id)objectForKeyedSubscript:(NSString *)subscript;
|
|
@end
|
|
|
|
@interface KeySubscriptOverrideSetter : KeySubscriptBase
|
|
- (void)setObject:(id)object forKeyedSubscript:(NSString *)key;
|
|
@end
|
|
|
|
// rdar://problem/36033356 failed specifically when the base class was never
|
|
// subscripted, so please don't mention this class in the .swift file.
|
|
@interface KeySubscriptReversedBase
|
|
- (void)setObject:(id)object forKeyedSubscript:(NSString *)key;
|
|
- (id)objectForKeyedSubscript:(NSString *)subscript;
|
|
@end
|
|
|
|
@interface KeySubscriptReversedOverrideGetter : KeySubscriptReversedBase
|
|
- (id)objectForKeyedSubscript:(NSString *)subscript;
|
|
@end
|
|
|
|
@interface KeySubscriptReversedOverrideSetter : KeySubscriptReversedBase
|
|
- (void)setObject:(id)object forKeyedSubscript:(NSString *)key;
|
|
@end
|
|
|
|
@interface NoClassSubscript : NSObject
|
|
+ (id)objectAtIndexedSubscript:(int)i;
|
|
+ (void)setObject:(id)obj atIndexedSubscript:(int)i;
|
|
+ (id)objectForKeyedSubscript:(NSString *)subscript;
|
|
+ (void)setObject:(id)object forKeyedSubscript:(NSString *)key;
|
|
@end
|