diff options
Diffstat (limited to 'test/SemaObjCXX/typo-correction.mm')
-rw-r--r-- | test/SemaObjCXX/typo-correction.mm | 53 |
1 files changed, 52 insertions, 1 deletions
diff --git a/test/SemaObjCXX/typo-correction.mm b/test/SemaObjCXX/typo-correction.mm index 5e33bfb8cbf0..3f8a082a84a2 100644 --- a/test/SemaObjCXX/typo-correction.mm +++ b/test/SemaObjCXX/typo-correction.mm @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 %s -verify -fsyntax-only +// RUN: %clang_cc1 %s -verify -fsyntax-only -Wno-objc-root-class class ClassA {}; @@ -36,3 +36,54 @@ void invalidNameInIvarAndPropertyBase() { float a = ((InvalidNameInIvarAndPropertyBase*)node)->_a; // expected-error {{use of undeclared identifier 'node'}} float b = ((InvalidNameInIvarAndPropertyBase*)node)._b; // expected-error {{use of undeclared identifier 'node'}} } + +// rdar://problem/33102722 +// Typo correction for a property when it has as correction candidates +// synthesized ivar and a class name, both at the same edit distance. +@class TypoCandidate; + +@interface PropertyType : NSObject +@property int x; +@end + +@interface InterfaceC : NSObject +@property(assign) PropertyType *typoCandidate; // expected-note {{'_typoCandidate' declared here}} +@end + +@implementation InterfaceC +-(void)method { + typoCandidate.x = 0; // expected-error {{use of undeclared identifier 'typoCandidate'; did you mean '_typoCandidate'?}} +} +@end + +// rdar://35172419 +// The scope of 'do-while' ends before typo-correction takes place. + +struct Mat2 { int rows; }; + +@implementation ImplNoInt // expected-warning {{cannot find interface declaration for 'ImplNoInt'}} + +- (void)typoCorrentInDoWhile { + Mat2 tlMat1; // expected-note {{'tlMat1' declared here}} + // Create many scopes to exhaust the cache. + do { + for (int index = 0; index < 2; index++) { + if (true) { + for (int specialTileType = 1; specialTileType < 5; specialTileType++) { + for (int i = 0; i < 10; i++) { + for (double scale = 0.95; scale <= 1.055; scale += 0.05) { + for (int j = 0; j < 10; j++) { + if (1 > 0.9) { + for (int sptile = 1; sptile < 5; sptile++) { + } + } + } + } + } + } + } + } + } while (tlMat.rows); // expected-error {{use of undeclared identifier 'tlMat'; did you mean 'tlMat1'}} +} + +@end |