-#![feature(plugin)]
-#![plugin(clippy)]
-
-#![warn(block_in_if_condition_expr)]
-#![warn(block_in_if_condition_stmt)]
-#![allow(unused, let_and_return)]
-#![warn(nonminimal_bool)]
-
+#![warn(clippy::block_in_if_condition_expr)]
+#![warn(clippy::block_in_if_condition_stmt)]
+#![allow(unused, clippy::let_and_return)]
+#![warn(clippy::nonminimal_bool)]
macro_rules! blocky {
- () => {{true}}
+ () => {{
+ true
+ }};
}
macro_rules! blocky_too {
() => {{
let r = true;
r
- }}
+ }};
}
fn macro_if() {
- if blocky!() {
- }
+ if blocky!() {}
- if blocky_too!() {
- }
+ if blocky_too!() {}
}
fn condition_has_block() -> i32 {
}
}
-fn predicate<F: FnOnce(T) -> bool, T>(pfn: F, val:T) -> bool {
+fn predicate<F: FnOnce(T) -> bool, T>(pfn: F, val: T) -> bool {
pfn(val)
}
fn pred_test() {
let v = 3;
let sky = "blue";
- // this is a sneaky case, where the block isn't directly in the condition, but is actually
- // inside a closure that the condition is using. same principle applies. add some extra
- // expressions to make sure linter isn't confused by them.
- if v == 3 && sky == "blue" && predicate(|x| { let target = 3; x == target }, v) {
- }
-
- if predicate(|x| { let target = 3; x == target }, v) {
- }
+ // This is a sneaky case, where the block isn't directly in the condition,
+ // but is actually nside a closure that the condition is using.
+ // The same principle applies -- add some extra expressions to make sure
+ // linter isn't confused by them.
+ if v == 3
+ && sky == "blue"
+ && predicate(
+ |x| {
+ let target = 3;
+ x == target
+ },
+ v,
+ )
+ {}
+
+ if predicate(
+ |x| {
+ let target = 3;
+ x == target
+ },
+ v,
+ ) {}
}
fn condition_is_normal() -> i32 {
}
fn closure_without_block() {
- if predicate(|x| x == 3, 6) {
-
- }
+ if predicate(|x| x == 3, 6) {}
}
fn condition_is_unsafe_block() {
}
}
-fn main() {
+fn main() {}
+
+fn macro_in_closure() {
+ let option = Some(true);
+
+ if option.unwrap_or_else(|| unimplemented!()) {
+ unimplemented!()
+ }
+}
+
+fn block_in_assert() {
+ let opt = Some(42);
+ assert!(opt
+ .as_ref()
+ .and_then(|val| {
+ let mut v = val * 2;
+ v -= 1;
+ Some(v * 3)
+ })
+ .is_some());
}