diff options
Diffstat (limited to 'test/FixIt')
-rw-r--r-- | test/FixIt/Inputs/nullability-objc.h | 48 | ||||
-rw-r--r-- | test/FixIt/nullability.mm | 2 |
2 files changed, 50 insertions, 0 deletions
diff --git a/test/FixIt/Inputs/nullability-objc.h b/test/FixIt/Inputs/nullability-objc.h new file mode 100644 index 0000000000..e3e6baafd6 --- /dev/null +++ b/test/FixIt/Inputs/nullability-objc.h @@ -0,0 +1,48 @@ +@class Item; +@class Container<ObjectType>; +@protocol Protocol; + +// rdar://problem/34260995 +// The first pointer in the file is handled in a different way so need +// a separate test for this case even if the parameter type is the same as in +// objcIdParameterWithProtocol. +void objcIdParameterWithProtocolFirstInFile(id<Protocol> i); // expected-warning {{pointer is missing a nullability type specifier}} +// expected-note@-1 {{insert '_Nullable'}} +// expected-note@-2 {{insert '_Nonnull'}} +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-3]]:57-[[@LINE-3]]:57}:" _Nullable" +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-4]]:57-[[@LINE-4]]:57}:" _Nonnull" + +int * _Nonnull forceNullabilityWarningsObjC(void); + +void objcClassParameter(Item *i); // expected-warning {{pointer is missing a nullability type specifier}} +// expected-note@-1 {{insert '_Nullable'}} +// expected-note@-2 {{insert '_Nonnull'}} +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-3]]:31-[[@LINE-3]]:31}:" _Nullable " +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-4]]:31-[[@LINE-4]]:31}:" _Nonnull " + +void objcClassParameterWithProtocol(Item<Protocol> *i); // expected-warning {{pointer is missing a nullability type specifier}} +// expected-note@-1 {{insert '_Nullable'}} +// expected-note@-2 {{insert '_Nonnull'}} +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-3]]:53-[[@LINE-3]]:53}:" _Nullable " +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-4]]:53-[[@LINE-4]]:53}:" _Nonnull " + +// rdar://problem/34260995 +void objcIdParameterWithProtocol(id<Protocol> i); // expected-warning {{pointer is missing a nullability type specifier}} +// expected-note@-1 {{insert '_Nullable'}} +// expected-note@-2 {{insert '_Nonnull'}} +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-3]]:46-[[@LINE-3]]:46}:" _Nullable" +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-4]]:46-[[@LINE-4]]:46}:" _Nonnull" + +// Class parameters don't have nullability type specifier. +void objcParameterizedClassParameter(Container<Item *> *c); // expected-warning {{pointer is missing a nullability type specifier}} +// expected-note@-1 {{insert '_Nullable'}} +// expected-note@-2 {{insert '_Nonnull'}} +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-3]]:57-[[@LINE-3]]:57}:" _Nullable " +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-4]]:57-[[@LINE-4]]:57}:" _Nonnull " + +// Class parameters don't have nullability type specifier. +void objcParameterizedClassParameterWithProtocol(Container<id<Protocol>> *c); // expected-warning {{pointer is missing a nullability type specifier}} +// expected-note@-1 {{insert '_Nullable'}} +// expected-note@-2 {{insert '_Nonnull'}} +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-3]]:75-[[@LINE-3]]:75}:" _Nullable " +// CHECK: fix-it:"{{.*}}nullability-objc.h":{[[@LINE-4]]:75-[[@LINE-4]]:75}:" _Nonnull " diff --git a/test/FixIt/nullability.mm b/test/FixIt/nullability.mm index 815c844192..a91ccc0f5f 100644 --- a/test/FixIt/nullability.mm +++ b/test/FixIt/nullability.mm @@ -2,8 +2,10 @@ // RUN: not %clang_cc1 -fdiagnostics-parseable-fixits -fblocks -std=gnu++11 -I %S/Inputs %s >%t.txt 2>&1 // RUN: FileCheck %s < %t.txt // RUN: FileCheck %S/Inputs/nullability.h < %t.txt +// RUN: FileCheck %S/Inputs/nullability-objc.h < %t.txt #include "nullability.h" +#include "nullability-objc.h" #pragma clang assume_nonnull begin |