diff options
| author | Michael Goulet <michael@errs.io> | 2022-12-18 21:41:08 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2022-12-18 21:41:29 +0000 |
| commit | dd8897eb635abc1bb9e64876eae54e449df951ba (patch) | |
| tree | 4bff89394ddd5003d6aba94b7390b9d043edc440 /compiler | |
| parent | 65c53c3bb6190319e210c94164b05a17997073f2 (diff) | |
| download | rust-dd8897eb635abc1bb9e64876eae54e449df951ba.tar.gz rust-dd8897eb635abc1bb9e64876eae54e449df951ba.zip | |
Don't ICE in closure arg borrow suggestion
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs b/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs index d47a5ea3e37..6cab2db3e80 100644 --- a/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs +++ b/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs @@ -1789,7 +1789,7 @@ impl<'tcx> TypeErrCtxtExt<'tcx> for TypeErrCtxt<'_, 'tcx> { self.note_conflicting_closure_bounds(cause, &mut err); if let Some(found_node) = found_node { - hint_missing_borrow(span, found_span, found, expected, found_node, &mut err); + hint_missing_borrow(span, found, expected, found_node, &mut err); } err @@ -3455,7 +3455,6 @@ impl<'tcx> TypeErrCtxtExt<'tcx> for TypeErrCtxt<'_, 'tcx> { /// Add a hint to add a missing borrow or remove an unnecessary one. fn hint_missing_borrow<'tcx>( span: Span, - found_span: Span, found: Ty<'tcx>, expected: Ty<'tcx>, found_node: Node<'_>, @@ -3474,9 +3473,8 @@ fn hint_missing_borrow<'tcx>( } }; - let fn_decl = found_node - .fn_decl() - .unwrap_or_else(|| span_bug!(found_span, "found node must be a function")); + // This could be a variant constructor, for example. + let Some(fn_decl) = found_node.fn_decl() else { return; }; let arg_spans = fn_decl.inputs.iter().map(|ty| ty.span); |
