Skip to content

Commit 45c3b4c

Browse files
authored
Rollup merge of rust-lang#35526 - munyari:e0033, r=jonathandturner
Update E0033 to the new error format Part of rust-lang#35233 Addresses rust-lang#35498 "r? @jonathandturner
2 parents 9f87b1f + 80beeb3 commit 45c3b4c

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

src/librustc_typeck/check/_match.rs

+5-3
Original file line numberDiff line numberDiff line change
@@ -347,9 +347,11 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
347347
if let ty::TyTrait(..) = mt.ty.sty {
348348
// This is "x = SomeTrait" being reduced from
349349
// "let &x = &SomeTrait" or "let box x = Box<SomeTrait>", an error.
350-
span_err!(self.tcx.sess, span, E0033,
351-
"type `{}` cannot be dereferenced",
352-
self.ty_to_string(expected));
350+
let type_str = self.ty_to_string(expected);
351+
struct_span_err!(self.tcx.sess, span, E0033,
352+
"type `{}` cannot be dereferenced", type_str)
353+
.span_label(span, &format!("type `{}` cannot be dereferenced", type_str))
354+
.emit();
353355
return false
354356
}
355357
}

src/test/compile-fail/E0033.rs

+6-1
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,10 @@ trait SomeTrait {
1515
fn main() {
1616
let trait_obj: &SomeTrait = SomeTrait; //~ ERROR E0425
1717
//~^ ERROR E0038
18-
let &invalid = trait_obj; //~ ERROR E0033
18+
//~| method `foo` has no receiver
19+
//~| NOTE the trait `SomeTrait` cannot be made into an object
20+
21+
let &invalid = trait_obj;
22+
//~^ ERROR E0033
23+
//~| NOTE type `&SomeTrait` cannot be dereferenced
1924
}

0 commit comments

Comments
 (0)