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);

`