📄 proto-lossage-1.mm
字号:
/* Test for situations in which protocol conformance information may be lost, leading to superfluous warnings. *//* Author: Ziemowit Laski <zlaski@apple.com>. *//* { dg-do compile } *//* One-line substitute for objc/objc.h */typedef struct objc_object { struct objc_class *class_pointer; } *id;@protocol NSObject- (int)someValue;@end@interface NSObject <NSObject>@end@protocol PlateMethods- (void)someMethod;@end@interface Foo { NSObject <PlateMethods> *plate; id <PlateMethods> plate1; NSObject *plate2;}- (id <PlateMethods>) getPlate;- (id <NSObject>) getPlate1;- (int) getValue;@end@implementation Foo- (id <PlateMethods>) getPlate { return plate; /* { dg-bogus "does not implement" } */}- (id <NSObject>) getPlate1 { return (id <NSObject>)plate1; /* { dg-bogus "does not conform" } */}- (int) getValue { int i = [plate1 someValue]; /* { dg-warning ".\\-someValue. not found in protocol\\(s\\)" } */ int j = [(id <NSObject>)plate1 someValue]; /* { dg-bogus "not found in protocol" } */ int k = [(id)plate1 someValue]; /* { dg-bogus "not found in protocol" } */ return i + j + k;}@end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -