Skip to content

Commit 738b91e

Browse files
Update lib.rs
Update lib.rs Update lib.rs Update E0438.rs Update E0437.rs Update E0435.rs
1 parent 99867ee commit 738b91e

File tree

4 files changed

+15
-6
lines changed

4 files changed

+15
-6
lines changed

src/librustc_resolve/lib.rs

+12-6
Original file line numberDiff line numberDiff line change
@@ -251,20 +251,24 @@ fn resolve_struct_error<'b, 'a: 'b, 'c>(resolver: &'b Resolver<'a>,
251251
err
252252
}
253253
ResolutionError::TypeNotMemberOfTrait(type_, trait_) => {
254-
struct_span_err!(resolver.session,
254+
let mut err = struct_span_err!(resolver.session,
255255
span,
256256
E0437,
257257
"type `{}` is not a member of trait `{}`",
258258
type_,
259-
trait_)
259+
trait_);
260+
err.span_label(span, &format!("not a member of trait `Foo`"));
261+
err
260262
}
261263
ResolutionError::ConstNotMemberOfTrait(const_, trait_) => {
262-
struct_span_err!(resolver.session,
264+
let mut err = struct_span_err!(resolver.session,
263265
span,
264266
E0438,
265267
"const `{}` is not a member of trait `{}`",
266268
const_,
267-
trait_)
269+
trait_);
270+
err.span_label(span, &format!("not a member of trait `Foo`"));
271+
err
268272
}
269273
ResolutionError::VariableNotBoundInPattern(variable_name, from, to) => {
270274
struct_span_err!(resolver.session,
@@ -438,10 +442,12 @@ fn resolve_struct_error<'b, 'a: 'b, 'c>(resolver: &'b Resolver<'a>,
438442
closure form instead")
439443
}
440444
ResolutionError::AttemptToUseNonConstantValueInConstant => {
441-
struct_span_err!(resolver.session,
445+
let mut err = struct_span_err!(resolver.session,
442446
span,
443447
E0435,
444-
"attempt to use a non-constant value in a constant")
448+
"attempt to use a non-constant value in a constant");
449+
err.span_label(span, &format!("non-constant used with constant"));
450+
err
445451
}
446452
ResolutionError::BindingShadowsSomethingUnacceptable(what_binding, name, binding) => {
447453
let shadows_what = PathResolution::new(binding.def().unwrap()).kind_name();

src/test/compile-fail/E0435.rs

+1
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@
1111
fn main () {
1212
let foo = 42u32;
1313
const FOO : u32 = foo; //~ ERROR E0435
14+
//~| NOTE non-constant used with constant
1415
}

src/test/compile-fail/E0437.rs

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ trait Foo {}
1212

1313
impl Foo for i32 {
1414
type Bar = bool; //~ ERROR E0437
15+
//~| NOTE not a member of trait `Foo`
1516
}
1617

1718
fn main () {

src/test/compile-fail/E0438.rs

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ trait Foo {}
1414

1515
impl Foo for i32 {
1616
const BAR: bool = true; //~ ERROR E0438
17+
//~| NOTE not a member of trait `Foo`
1718
}
1819

1920
fn main () {

0 commit comments

Comments
 (0)