1 #![feature(dotdoteq_in_patterns, inclusive_range_syntax)]
3 #![allow(dead_code, no_effect, unnecessary_operation)]
4 #![allow(let_and_return)]
5 #![allow(needless_return)]
6 #![allow(unused_variables)]
7 #![allow(cyclomatic_complexity)]
8 #![allow(blacklisted_name)]
9 #![allow(collapsible_if)]
10 #![allow(zero_divided_by_zero, eq_op)]
11 #![allow(path_statements)]
14 fn foo() -> bool { unimplemented!() }
26 #[warn(if_same_then_else)]
27 #[warn(match_same_arms)]
28 fn if_same_then_else() -> Result
<&'
static str, ()> {
80 let mut a
= 42 + [23].len() as i32;
89 let mut a
= 42 + [23].len() as i32;
98 let _
= match Abc
::A
{
117 let foo
: &Option
<_
> = &Some
::<u8>(42);
127 let foo
: &Option
<_
> = &Some
::<u8>(42);
144 while foo() { break; }
155 while foo() { break; }
180 if let Some(a
) = Some(42) {}
183 if let Some(a
) = Some(42) {}
187 if let (1, .., 3) = (1, 2, 3) {}
190 if let (1, .., 3) = (1, 2, 3) {}
194 if let (1, .., 3) = (1, 2, 3) {}
197 if let (.., 3) = (1, 2, 3) {}
201 if let (1, .., 3) = (1, 2, 3) {}
204 if let (.., 4) = (1, 2, 3) {}
208 if let (1, .., 3) = (1, 2, 3) {}
211 if let (.., 1, 3) = (1, 2, 3) {}
215 if let Some(42) = None {}
218 if let Option
::Some(42) = None {}
222 if let Some(42) = None
::<u8> {}
225 if let Some(42) = None {}
229 if let Some(42) = None
::<u8> {}
232 if let Some(42) = None
::<u32> {}
236 if let Some(a
) = Some(42) {}
239 if let Some(a
) = Some(43) {}
248 let _
= match Some(42) {
253 let _
= match Some(42) {
258 let _
= match Some(42) {
260 Some(a
) => 24, // bindings are different
264 let _
= match Some(42) {
265 Some(a
) if a
> 0 => 24,
266 Some(a
) => 24, // one arm has a guard
270 match (Some(42), Some(42)) {
271 (Some(a
), None
) => bar(a
),
272 (None
, Some(a
)) => bar(a
),
276 match (Some(42), Some(42)) {
277 (Some(a
), ..) => bar(a
),
278 (.., Some(a
)) => bar(a
),
320 let _
= match Some(()) {
325 match (Some(42), Some("")) {
326 (Some(a
), None
) => bar(a
),
327 (None
, Some(a
)) => bar(a
), // bindings have different types
340 return Ok(&foo
[0..]);
344 return Ok(&foo
[0..]);
348 return Ok(&foo
[0..]);
352 #[warn(ifs_same_cond)]
353 #[allow(if_same_then_else)] // all empty blocks
378 if cfg
!(feature
= "feature1-659") {
380 } else if cfg
!(feature
= "feature2-659") {
387 if v
.pop() == None
{ // ok, functions
389 else if v
.pop() == None
{
392 if v
.len() == 42 { // ok, functions
394 else if v
.len() == 42 {