1 | // RUN: %check_clang_tidy %s readability-static-accessed-through-instance %t -- -config="{CheckOptions: {readability-static-accessed-through-instance.NameSpecifierNestingThreshold: 4}}" -- |
2 | |
3 | // Nested specifiers |
4 | namespace M { |
5 | namespace N { |
6 | struct V { |
7 | static int v; |
8 | struct T { |
9 | static int t; |
10 | struct U { |
11 | static int u; |
12 | }; |
13 | }; |
14 | }; |
15 | } |
16 | } |
17 | |
18 | void f(M::N::V::T::U u) { |
19 | M::N::V v; |
20 | v.v = 12; |
21 | // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: static member |
22 | // CHECK-FIXES: {{^}} M::N::V::v = 12;{{$}} |
23 | |
24 | M::N::V::T w; |
25 | w.t = 12; |
26 | // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: static member |
27 | // CHECK-FIXES: {{^}} M::N::V::T::t = 12;{{$}} |
28 | |
29 | // u.u is not changed, because the nesting level is over 4 |
30 | u.u = 12; |
31 | // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: static member |
32 | // CHECK-FIXES: {{^}} u.u = 12;{{$}} |
33 | } |
34 | |