1// RUN: %check_clang_tidy %s google-objc-global-variable-declaration %t
2
3@class NSString;
4
5static NSString* const myConstString = @"hello";
6// CHECK-MESSAGES: :[[@LINE-1]]:24: warning: const global variable 'myConstString' must have a name which starts with an appropriate prefix [google-objc-global-variable-declaration]
7// CHECK-FIXES: static NSString* const kMyConstString = @"hello";
8
9extern NSString* const GlobalConstant = @"hey";
10// CHECK-MESSAGES: :[[@LINE-1]]:24: warning: const global variable 'GlobalConstant' must have a name which starts with an appropriate prefix [google-objc-global-variable-declaration]
11
12static NSString* MyString = @"hi";
13// CHECK-MESSAGES: :[[@LINE-1]]:18: warning: non-const global variable 'MyString' must have a name which starts with 'g[A-Z]' [google-objc-global-variable-declaration]
14// CHECK-FIXES: static NSString* gMyString = @"hi";
15
16NSString* globalString = @"test";
17// CHECK-MESSAGES: :[[@LINE-1]]:11: warning: non-const global variable 'globalString' must have a name which starts with 'g[A-Z]' [google-objc-global-variable-declaration]
18// CHECK-FIXES: NSString* gGlobalString = @"test";
19
20static NSString* a = @"too simple";
21// CHECK-MESSAGES: :[[@LINE-1]]:18: warning: non-const global variable 'a' must have a name which starts with 'g[A-Z]' [google-objc-global-variable-declaration]
22// CHECK-FIXES: static NSString* a = @"too simple";
23
24static NSString* noDef;
25// CHECK-MESSAGES: :[[@LINE-1]]:18: warning: non-const global variable 'noDef' must have a name which starts with 'g[A-Z]' [google-objc-global-variable-declaration]
26// CHECK-FIXES: static NSString* gNoDef;
27
28static NSString* const _notAlpha = @"NotBeginWithAlpha";
29// CHECK-MESSAGES: :[[@LINE-1]]:24: warning: const global variable '_notAlpha' must have a name which starts with an appropriate prefix [google-objc-global-variable-declaration]
30// CHECK-FIXES: static NSString* const _notAlpha = @"NotBeginWithAlpha";
31
32static NSString* const notCap = @"NotBeginWithCap";
33// CHECK-MESSAGES: :[[@LINE-1]]:24: warning: const global variable 'notCap' must have a name which starts with an appropriate prefix [google-objc-global-variable-declaration]
34// CHECK-FIXES: static NSString* const kNotCap = @"NotBeginWithCap";
35
36static NSString* const k_Alpha = @"SecondNotAlpha";
37// CHECK-MESSAGES: :[[@LINE-1]]:24: warning: const global variable 'k_Alpha' must have a name which starts with an appropriate prefix [google-objc-global-variable-declaration]
38// CHECK-FIXES: static NSString* const k_Alpha = @"SecondNotAlpha";
39
40static NSString* const SecondNotCap = @"SecondNotCapOrNumber";
41// CHECK-MESSAGES: :[[@LINE-1]]:24: warning: const global variable 'SecondNotCap' must have a name which starts with an appropriate prefix [google-objc-global-variable-declaration]
42// CHECK-FIXES: static NSString* const kSecondNotCap = @"SecondNotCapOrNumber";
43
44extern NSString* Y2Bad;
45// CHECK-MESSAGES: :[[@LINE-1]]:18: warning: non-const global variable 'Y2Bad' must have a name which starts with 'g[A-Z]' [google-objc-global-variable-declaration]
46// CHECK-FIXES: extern NSString* gY2Bad;
47
48static NSString* const kGood = @"hello";
49static NSString* const XYGood = @"hello";
50static NSString* const X1Good = @"hello";
51static NSString* gMyIntGood = 0;
52
53extern NSString* const GTLServiceErrorDomain;
54
55enum GTLServiceError {
56  GTLServiceErrorQueryResultMissing = -3000,
57  GTLServiceErrorWaitTimedOut       = -3001,
58};
59
60@implementation Foo
61- (void)f {
62  int x = 0;
63  static int bar;
64  static const int baz = 42;
65}
66@end
67