mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-13 12:36:47 +00:00
don't unnecessarily walk more in visitor and add more tests
This commit is contained in:
parent
e305b0730f
commit
3fe2478ecf
@ -55,9 +55,9 @@ impl<'tcx> Visitor<'tcx> for ReturnVisitor {
|
||||
fn visit_expr(&mut self, ex: &'tcx hir::Expr<'tcx>) {
|
||||
if let hir::ExprKind::Ret(_) | hir::ExprKind::Match(.., hir::MatchSource::TryDesugar) = ex.kind {
|
||||
self.found_return = true;
|
||||
} else {
|
||||
hir_visit::walk_expr(self, ex);
|
||||
}
|
||||
|
||||
hir_visit::walk_expr(self, ex);
|
||||
}
|
||||
}
|
||||
|
||||
@ -122,7 +122,7 @@ fn get_parent_call_exprs<'tcx>(
|
||||
let mut depth = 1;
|
||||
while let Some(parent) = get_parent_expr(cx, expr)
|
||||
&& let hir::ExprKind::Call(recv, _) = parent.kind
|
||||
&& let hir::ExprKind::Call(..) = recv.kind
|
||||
&& expr.span == recv.span
|
||||
{
|
||||
expr = parent;
|
||||
depth += 1;
|
||||
|
@ -78,4 +78,11 @@ fn issue9956() {
|
||||
|| || || 42
|
||||
}
|
||||
let _ = x()()()();
|
||||
|
||||
fn bar() -> fn(i32, i32) {
|
||||
foo
|
||||
}
|
||||
fn foo(_: i32, _: i32) {}
|
||||
bar()(42, 5);
|
||||
foo(42, 5);
|
||||
}
|
||||
|
@ -78,4 +78,11 @@ fn issue9956() {
|
||||
|| || || 42
|
||||
}
|
||||
let _ = x()()()();
|
||||
|
||||
fn bar() -> fn(i32, i32) {
|
||||
foo
|
||||
}
|
||||
fn foo(_: i32, _: i32) {}
|
||||
bar()((|| || 42)()(), 5);
|
||||
foo((|| || 42)()(), 5);
|
||||
}
|
||||
|
@ -110,5 +110,17 @@ error: try not to call a closure in the expression where it is declared
|
||||
LL | let a = (|| echo!((|| 123)))()();
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: try doing something like: `123`
|
||||
|
||||
error: aborting due to 12 previous errors
|
||||
error: try not to call a closure in the expression where it is declared
|
||||
--> $DIR/redundant_closure_call_fixable.rs:86:11
|
||||
|
|
||||
LL | bar()((|| || 42)()(), 5);
|
||||
| ^^^^^^^^^^^^^^ help: try doing something like: `42`
|
||||
|
||||
error: try not to call a closure in the expression where it is declared
|
||||
--> $DIR/redundant_closure_call_fixable.rs:87:9
|
||||
|
|
||||
LL | foo((|| || 42)()(), 5);
|
||||
| ^^^^^^^^^^^^^^ help: try doing something like: `42`
|
||||
|
||||
error: aborting due to 14 previous errors
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user