Lines Matching +full:- +full:y
1 // RUN: %check_clang_tidy %s llvm-prefer-isa-or-dyn-cast-in-conditionals %t
4 struct Y;
8 X *cast(Y*);
9 bool baz(Y*);
12 template <class X, class Y>
13 bool isa(Y *);
14 template <class X, class Y>
15 X *cast(Y *);
16 template <class X, class Y>
17 X *dyn_cast(Y *);
18 template <class X, class Y>
19 X *dyn_cast_or_null(Y *);
21 bool foo(Y *y, Z *z) { in foo() argument
22 if (auto x = cast<X>(y)) in foo()
24 …// CHECK-MESSAGES: :[[@LINE-2]]:16: warning: cast<> in conditional will assert rather than return … in foo()
25 // CHECK-FIXES: if (auto x = dyn_cast<X>(y)) in foo()
27 while (auto x = cast<X>(y)) in foo()
29 // CHECK-MESSAGES: :[[@LINE-2]]:19: warning: cast<> in conditional in foo()
30 // CHECK-FIXES: while (auto x = dyn_cast<X>(y)) in foo()
32 if (cast<X>(y)) in foo()
34 // CHECK-MESSAGES: :[[@LINE-2]]:7: warning: cast<> in conditional in foo()
35 // CHECK-FIXES: if (isa<X>(y)) in foo()
37 while (cast<X>(y)) in foo()
39 // CHECK-MESSAGES: :[[@LINE-2]]:10: warning: cast<> in conditional in foo()
40 // CHECK-FIXES: while (isa<X>(y)) in foo()
44 } while (cast<X>(y)); in foo()
45 // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: cast<> in conditional in foo()
46 // CHECK-FIXES: while (isa<X>(y)); in foo()
48 if (dyn_cast<X>(y)) in foo()
50 …// CHECK-MESSAGES: :[[@LINE-2]]:7: warning: return value from dyn_cast<> not used [llvm-prefer-isa… in foo()
51 // CHECK-FIXES: if (isa<X>(y)) in foo()
53 while (dyn_cast<X>(y)) in foo()
55 // CHECK-MESSAGES: :[[@LINE-2]]:10: warning: return value from dyn_cast<> not used in foo()
56 // CHECK-FIXES: while (isa<X>(y)) in foo()
60 } while (dyn_cast<X>(y)); in foo()
61 // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: return value from dyn_cast<> not used in foo()
62 // CHECK-FIXES: while (isa<X>(y)); in foo()
64 if (y && isa<X>(y)) in foo()
66 …-MESSAGES: :[[@LINE-2]]:7: warning: isa_and_nonnull<> is preferred over an explicit test for null … in foo()
67 // CHECK-FIXES: if (isa_and_nonnull<X>(y)) in foo()
69 if (z->bar() && isa<Y>(z->bar())) in foo()
71 // CHECK-MESSAGES: :[[@LINE-2]]:7: warning: isa_and_nonnull<> is preferred in foo()
72 // CHECK-FIXES: if (isa_and_nonnull<Y>(z->bar())) in foo()
74 if (z->bar() && cast<Y>(z->bar())) in foo()
76 // CHECK-MESSAGES: :[[@LINE-2]]:7: warning: isa_and_nonnull<> is preferred in foo()
77 // CHECK-FIXES: if (isa_and_nonnull<Y>(z->bar())) in foo()
79 if (z->bar() && dyn_cast<Y>(z->bar())) in foo()
81 // CHECK-MESSAGES: :[[@LINE-2]]:7: warning: isa_and_nonnull<> is preferred in foo()
82 // CHECK-FIXES: if (isa_and_nonnull<Y>(z->bar())) in foo()
84 if (z->bar() && dyn_cast_or_null<Y>(z->bar())) in foo()
86 // CHECK-MESSAGES: :[[@LINE-2]]:7: warning: isa_and_nonnull<> is preferred in foo()
87 // CHECK-FIXES: if (isa_and_nonnull<Y>(z->bar())) in foo()
89 bool b = z->bar() && cast<Y>(z->bar()); in foo()
90 // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: isa_and_nonnull<> is preferred in foo()
91 // CHECK-FIXES: bool b = isa_and_nonnull<Y>(z->bar()); in foo()
94 if (auto x = cast<Z>(y)->foo()) in foo()
96 if (auto x = z->cast(y)) in foo()
98 while (auto x = cast<Z>(y)->foo()) in foo()
100 if (cast<Z>(y)->foo()) in foo()
102 if (z->cast(y)) in foo()
104 while (cast<Z>(y)->foo()) in foo()
106 if (y && cast<X>(z->bar())) in foo()
108 if (z && cast<Z>(y)->foo()) in foo()
110 bool b2 = y && cast<X>(z); in foo()
111 if(z->cast(y)) in foo()
113 if (z->baz(cast<Y>(z))) in foo()
117 #define AUTO_VAR_CAST(X, Y, Z) auto X = cast<Y>(Z) in foo() argument
122 if (auto x = CAST(X, y)) in foo()
126 if (z->bar() && ISA(Y, z->bar())) in foo()
128 if (ISA_OR_NULL(Y, z->bar())) in foo()