Skip to content

Commit 6b679d2

Browse files
committed
fix: yet another call expr issue, this fixes #146261
1 parent 22462af commit 6b679d2

File tree

5 files changed

+77
-48
lines changed

5 files changed

+77
-48
lines changed

compiler/rustc_hir_typeck/src/method/suggest.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1632,7 +1632,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
16321632
(
16331633
Some((hir::def::CtorKind::Fn, def_id)),
16341634
hir::ExprKind::Call(rcvr, args),
1635-
) => {
1635+
) if rcvr.hir_id == path_expr.hir_id => {
16361636
let fn_sig = self.tcx.fn_sig(def_id).instantiate_identity();
16371637
let inputs = fn_sig.inputs().skip_binder();
16381638
// FIXME: reuse the logic for "change args" suggestion to account for types

tests/ui/suggestions/incorrect-variant-in-arg.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ fn foo(_: Enum) {}
1414
fn main() {
1515
foo(Enum::Unit);
1616
foo(Enum::Tuple);
17-
foo(Enum::Struct); // Suggestion was malformed
17+
foo(Enum::Struct); // Suggestion was malformed
1818
foo(Enum::Unit());
1919
foo(Enum::Tuple());
2020
foo(Enum::Struct());
@@ -33,25 +33,25 @@ fn main() {
3333
foo(Enum::Unit { x: 0, y: 0 });
3434
foo(Enum::Tuple { x: 0, y: 0 });
3535
foo(Enum::Struct { x: 0, y: 0 });
36-
foo(Enum::unit); // Suggestion was malformed
37-
foo(Enum::tuple); // Suggestion could be enhanced
38-
foo(Enum::r#struct); // Suggestion was malformed
36+
foo(Enum::unit); // Suggestion was malformed
37+
foo(Enum::tuple); // Suggestion is enhanced
38+
foo(Enum::r#struct); // Suggestion was malformed
3939
foo(Enum::unit());
4040
foo(Enum::tuple());
4141
foo(Enum::r#struct());
42-
foo(Enum::unit {}); // Suggestion could be enhanced
43-
foo(Enum::tuple {}); // Suggestion could be enhanced
44-
foo(Enum::r#struct {}); // Suggestion could be enhanced
42+
foo(Enum::unit {}); // Suggestion could be enhanced
43+
foo(Enum::tuple {}); // Suggestion could be enhanced
44+
foo(Enum::r#struct {}); // Suggestion could be enhanced
4545
foo(Enum::unit(0));
4646
foo(Enum::tuple(0));
4747
foo(Enum::r#struct(0));
48-
foo(Enum::unit { x: 0 }); // Suggestion could be enhanced
49-
foo(Enum::tuple { x: 0 }); // Suggestion could be enhanced
48+
foo(Enum::unit { x: 0 }); // Suggestion could be enhanced
49+
foo(Enum::tuple { x: 0 }); // Suggestion could be enhanced
5050
foo(Enum::r#struct { x: 0 });
5151
foo(Enum::unit(0, 0));
5252
foo(Enum::tuple(0, 0));
5353
foo(Enum::r#struct(0, 0));
54-
foo(Enum::unit { x: 0, y: 0 }); // Suggestion could be enhanced
55-
foo(Enum::tuple { x: 0, y: 0 }); // Suggestion could be enhanced
56-
foo(Enum::r#struct { x: 0, y: 0 }); // Suggestion could be enhanced
54+
foo(Enum::unit { x: 0, y: 0 }); // Suggestion could be enhanced
55+
foo(Enum::tuple { x: 0, y: 0 }); // Suggestion could be enhanced
56+
foo(Enum::r#struct { x: 0, y: 0 }); // Suggestion could be enhanced
5757
}

0 commit comments

Comments
 (0)