Avoid wrapping fn sig in a fn pointer when we want to just print the sig · rust-lang/rust@1d834c2 (original) (raw)
`@@ -2,18 +2,19 @@
`
2
2
``
3
3
`use rustc_errors::ErrorGuaranteed;
`
4
4
`use rustc_hir as hir;
`
5
``
`-
use rustc_hir::def::Res;
`
``
5
`+
use rustc_hir::def::{Namespace, Res};
`
6
6
`use rustc_hir::def_id::DefId;
`
7
7
`use rustc_hir::intravisit::Visitor;
`
8
8
`use rustc_middle::hir::nested_filter;
`
9
9
`use rustc_middle::traits::ObligationCauseCode;
`
10
10
`use rustc_middle::ty::error::ExpectedFound;
`
11
11
`use rustc_middle::ty::print::RegionHighlightMode;
`
12
``
`-
use rustc_middle::ty::{self, Ty, TyCtxt, TypeVisitable};
`
``
12
`+
use rustc_middle::ty::{self, TyCtxt, TypeVisitable};
`
13
13
`use rustc_span::Span;
`
14
14
`use tracing::debug;
`
15
15
``
16
16
`use crate::error_reporting::infer::nice_region_error::NiceRegionError;
`
``
17
`+
use crate::error_reporting::infer::nice_region_error::placeholder_error::Highlighted;
`
17
18
`use crate::errors::{ConsiderBorrowingParamHelp, RelationshipHelp, TraitImplDiff};
`
18
19
`use crate::infer::{RegionResolutionError, Subtype, ValuePairs};
`
19
20
``
`@@ -81,18 +82,17 @@ impl<'a, 'tcx> NiceRegionError<'a, 'tcx> {
`
81
82
``
82
83
`let expected_highlight = HighlightBuilder::build(expected);
`
83
84
`let tcx = self.cx.tcx;
`
84
``
`-
let expected = self
`
85
``
`-
.cx
`
86
``
`-
.extract_inference_diagnostics_data(
`
87
``
`-
Ty::new_fn_ptr(tcx, expected).into(),
`
88
``
`-
expected_highlight,
`
89
``
`-
)
`
90
``
`-
.name;
`
``
85
`+
let expected = Highlighted {
`
``
86
`+
highlight: expected_highlight,
`
``
87
`+
ns: Namespace::TypeNS,
`
``
88
`+
tcx,
`
``
89
`+
value: expected,
`
``
90
`+
}
`
``
91
`+
.to_string();
`
91
92
`let found_highlight = HighlightBuilder::build(found);
`
92
``
`-
let found = self
`
93
``
`-
.cx
`
94
``
`-
.extract_inference_diagnostics_data(Ty::new_fn_ptr(tcx, found).into(), found_highlight)
`
95
``
`-
.name;
`
``
93
`+
let found =
`
``
94
`+
Highlighted { highlight: found_highlight, ns: Namespace::TypeNS, tcx, value: found }
`
``
95
`+
.to_string();
`
96
96
``
97
97
`// Get the span of all the used type parameters in the method.
`
98
98
`let assoc_item = self.tcx().associated_item(trait_item_def_id);
`