Tweak spans for E0599

This commit is contained in:
Esteban Küber 2019-03-10 16:20:15 -07:00
parent 0f118f6a6c
commit 1b0ab0b8a9
28 changed files with 72 additions and 133 deletions

View File

@ -69,13 +69,17 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
error: MethodError<'tcx>, error: MethodError<'tcx>,
args: Option<&'gcx [hir::Expr]>, args: Option<&'gcx [hir::Expr]>,
) { ) {
let mut span = span;
// Avoid suggestions when we don't know what's going on. // Avoid suggestions when we don't know what's going on.
if rcvr_ty.references_error() { if rcvr_ty.references_error() {
return; return;
} }
let report_candidates = |err: &mut DiagnosticBuilder<'_>, let report_candidates = |
mut sources: Vec<CandidateSource>| { span: Span,
err: &mut DiagnosticBuilder<'_>,
mut sources: Vec<CandidateSource>,
| {
sources.sort(); sources.sort();
sources.dedup(); sources.dedup();
// Dynamic limit to avoid hiding just one candidate, which is silly. // Dynamic limit to avoid hiding just one candidate, which is silly.
@ -293,9 +297,10 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
err.emit(); err.emit();
return; return;
} else { } else {
span = item_name.span;
let mut err = struct_span_err!( let mut err = struct_span_err!(
tcx.sess, tcx.sess,
item_name.span, span,
E0599, E0599,
"no {} named `{}` found for type `{}` in the current scope", "no {} named `{}` found for type `{}` in the current scope",
item_kind, item_kind,
@ -305,7 +310,7 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
if let Some(suggestion) = suggestion { if let Some(suggestion) = suggestion {
// enum variant // enum variant
err.span_suggestion( err.span_suggestion(
item_name.span, span,
"did you mean", "did you mean",
suggestion.to_string(), suggestion.to_string(),
Applicability::MaybeIncorrect, Applicability::MaybeIncorrect,
@ -434,9 +439,9 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
self.ty_to_string(actual), item_name)); self.ty_to_string(actual), item_name));
} }
report_candidates(&mut err, static_sources); report_candidates(span, &mut err, static_sources);
} else if static_sources.len() > 1 { } else if static_sources.len() > 1 {
report_candidates(&mut err, static_sources); report_candidates(span, &mut err, static_sources);
} }
if !unsatisfied_predicates.is_empty() { if !unsatisfied_predicates.is_empty() {
@ -481,7 +486,7 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
"multiple applicable items in scope"); "multiple applicable items in scope");
err.span_label(span, format!("multiple `{}` found", item_name)); err.span_label(span, format!("multiple `{}` found", item_name));
report_candidates(&mut err, sources); report_candidates(span, &mut err, sources);
err.emit(); err.emit();
} }

View File

@ -2,9 +2,7 @@ error[E0599]: no associated item named `ID` found for type `i32` in the current
--> $DIR/associated-const-no-item.rs:5:23 --> $DIR/associated-const-no-item.rs:5:23
| |
LL | const X: i32 = <i32>::ID; LL | const X: i32 = <i32>::ID;
| -------^^ | ^^ associated item not found in `i32`
| |
| associated item not found in `i32`
| |
= help: items from traits can only be used if the trait is implemented and in scope = help: items from traits can only be used if the trait is implemented and in scope
= note: the following trait defines an item `ID`, perhaps you need to implement it: = note: the following trait defines an item `ID`, perhaps you need to implement it:

View File

@ -5,7 +5,7 @@ LL | enum Color { Rgb(isize, isize, isize), Rgba(isize, isize, isize, isize), }
| ---------- variant `Hsl` not found here | ---------- variant `Hsl` not found here
... ...
LL | Color::Hsl(h, s, l) => { println!("hsl"); } LL | Color::Hsl(h, s, l) => { println!("hsl"); }
| -------^^^--------- variant not found in `Color` | ^^^ variant not found in `Color`
error: aborting due to previous error error: aborting due to previous error

View File

@ -41,33 +41,25 @@ error[E0599]: no associated item named `AssocItem` found for type `[u8]` in the
--> $DIR/bad-assoc-pat.rs:3:15 --> $DIR/bad-assoc-pat.rs:3:15
| |
LL | [u8]::AssocItem => {} LL | [u8]::AssocItem => {}
| ------^^^^^^^^^ | ^^^^^^^^^ associated item not found in `[u8]`
| |
| associated item not found in `[u8]`
error[E0599]: no associated item named `AssocItem` found for type `(u8, u8)` in the current scope error[E0599]: no associated item named `AssocItem` found for type `(u8, u8)` in the current scope
--> $DIR/bad-assoc-pat.rs:6:19 --> $DIR/bad-assoc-pat.rs:6:19
| |
LL | (u8, u8)::AssocItem => {} LL | (u8, u8)::AssocItem => {}
| ----------^^^^^^^^^ | ^^^^^^^^^ associated item not found in `(u8, u8)`
| |
| associated item not found in `(u8, u8)`
error[E0599]: no associated item named `AssocItem` found for type `_` in the current scope error[E0599]: no associated item named `AssocItem` found for type `_` in the current scope
--> $DIR/bad-assoc-pat.rs:9:12 --> $DIR/bad-assoc-pat.rs:9:12
| |
LL | _::AssocItem => {} LL | _::AssocItem => {}
| ---^^^^^^^^^ | ^^^^^^^^^ associated item not found in `_`
| |
| associated item not found in `_`
error[E0599]: no associated item named `AssocItem` found for type `(u8,)` in the current scope error[E0599]: no associated item named `AssocItem` found for type `(u8,)` in the current scope
--> $DIR/bad-assoc-pat.rs:14:17 --> $DIR/bad-assoc-pat.rs:14:17
| |
LL | &(u8,)::AssocItem => {} LL | &(u8,)::AssocItem => {}
| -------^^^^^^^^^ | ^^^^^^^^^ associated item not found in `(u8,)`
| |
| associated item not found in `(u8,)`
error[E0599]: no associated item named `AssocItem` found for type `u8` in the current scope error[E0599]: no associated item named `AssocItem` found for type `u8` in the current scope
--> $DIR/bad-assoc-pat.rs:21:24 --> $DIR/bad-assoc-pat.rs:21:24

View File

@ -5,9 +5,7 @@ LL | struct T;
| --------- function or associated item `new` not found for this | --------- function or associated item `new` not found for this
... ...
LL | T::new(); LL | T::new();
| ---^^^ | ^^^ function or associated item not found in `T`
| |
| function or associated item not found in `T`
error: aborting due to previous error error: aborting due to previous error

View File

@ -50,19 +50,19 @@ error[E0599]: no variant named `Empty3` found for type `empty_struct::XE` in the
--> $DIR/empty-struct-braces-expr.rs:22:19 --> $DIR/empty-struct-braces-expr.rs:22:19
| |
LL | let xe3 = XE::Empty3; LL | let xe3 = XE::Empty3;
| ----^^^^^^ | ^^^^^^
| | | | |
| | help: did you mean: `XEmpty3` | variant not found in `empty_struct::XE`
| variant not found in `empty_struct::XE` | help: did you mean: `XEmpty3`
error[E0599]: no variant named `Empty3` found for type `empty_struct::XE` in the current scope error[E0599]: no variant named `Empty3` found for type `empty_struct::XE` in the current scope
--> $DIR/empty-struct-braces-expr.rs:23:19 --> $DIR/empty-struct-braces-expr.rs:23:19
| |
LL | let xe3 = XE::Empty3(); LL | let xe3 = XE::Empty3();
| ----^^^^^^ | ^^^^^^
| | | | |
| | help: did you mean: `XEmpty3` | variant not found in `empty_struct::XE`
| variant not found in `empty_struct::XE` | help: did you mean: `XEmpty3`
error: aborting due to 8 previous errors error: aborting due to 8 previous errors

View File

@ -5,7 +5,7 @@ LL | struct Foo;
| ----------- associated item `NotEvenReal` not found for this | ----------- associated item `NotEvenReal` not found for this
... ...
LL | || if let Foo::NotEvenReal() = Foo {}; LL | || if let Foo::NotEvenReal() = Foo {};
| -----^^^^^^^^^^^-- associated item not found in `Foo` | ^^^^^^^^^^^ associated item not found in `Foo`
error: aborting due to previous error error: aborting due to previous error

View File

@ -2,9 +2,7 @@ error[E0599]: no associated item named `DOESNOTEXIST` found for type `u32` in th
--> $DIR/invalid-path-in-const.rs:2:23 --> $DIR/invalid-path-in-const.rs:2:23
| |
LL | fn f(a: [u8; u32::DOESNOTEXIST]) {} LL | fn f(a: [u8; u32::DOESNOTEXIST]) {}
| -----^^^^^^^^^^^^ | ^^^^^^^^^^^^ associated item not found in `u32`
| |
| associated item not found in `u32`
error: aborting due to previous error error: aborting due to previous error

View File

@ -5,9 +5,7 @@ LL | enum Delicious {
| -------------- variant `PIE` not found here | -------------- variant `PIE` not found here
... ...
LL | ApplePie = Delicious::Apple as isize | Delicious::PIE as isize, LL | ApplePie = Delicious::Apple as isize | Delicious::PIE as isize,
| -----------^^^ | ^^^ variant not found in `Delicious`
| |
| variant not found in `Delicious`
error: aborting due to previous error error: aborting due to previous error

View File

@ -2,9 +2,7 @@ error[E0599]: no associated item named `MIN` found for type `u8` in the current
--> $DIR/issue-22933-3.rs:1:22 --> $DIR/issue-22933-3.rs:1:22
| |
LL | const FOO: [u32; u8::MIN as usize] = []; LL | const FOO: [u32; u8::MIN as usize] = [];
| ----^^^ | ^^^ associated item not found in `u8`
| |
| associated item not found in `u8`
error: aborting due to previous error error: aborting due to previous error

View File

@ -5,9 +5,7 @@ LL | enum Token { LeftParen, RightParen, Plus, Minus, /* etc */ }
| ---------- variant `Homura` not found here | ---------- variant `Homura` not found here
... ...
LL | use_token(&Token::Homura); LL | use_token(&Token::Homura);
| -------^^^^^^ | ^^^^^^ variant not found in `Token`
| |
| variant not found in `Token`
error[E0599]: no function or associated item named `method` found for type `Struct` in the current scope error[E0599]: no function or associated item named `method` found for type `Struct` in the current scope
--> $DIR/issue-23173.rs:11:13 --> $DIR/issue-23173.rs:11:13
@ -16,9 +14,7 @@ LL | struct Struct {
| ------------- function or associated item `method` not found for this | ------------- function or associated item `method` not found for this
... ...
LL | Struct::method(); LL | Struct::method();
| --------^^^^^^ | ^^^^^^ function or associated item not found in `Struct`
| |
| function or associated item not found in `Struct`
error[E0599]: no function or associated item named `method` found for type `Struct` in the current scope error[E0599]: no function or associated item named `method` found for type `Struct` in the current scope
--> $DIR/issue-23173.rs:13:13 --> $DIR/issue-23173.rs:13:13
@ -27,9 +23,7 @@ LL | struct Struct {
| ------------- function or associated item `method` not found for this | ------------- function or associated item `method` not found for this
... ...
LL | Struct::method; LL | Struct::method;
| --------^^^^^^ | ^^^^^^ function or associated item not found in `Struct`
| |
| function or associated item not found in `Struct`
error[E0599]: no associated item named `Assoc` found for type `Struct` in the current scope error[E0599]: no associated item named `Assoc` found for type `Struct` in the current scope
--> $DIR/issue-23173.rs:15:13 --> $DIR/issue-23173.rs:15:13
@ -38,9 +32,7 @@ LL | struct Struct {
| ------------- associated item `Assoc` not found for this | ------------- associated item `Assoc` not found for this
... ...
LL | Struct::Assoc; LL | Struct::Assoc;
| --------^^^^^ | ^^^^^ associated item not found in `Struct`
| |
| associated item not found in `Struct`
error: aborting due to 4 previous errors error: aborting due to 4 previous errors

View File

@ -4,10 +4,10 @@ error[E0599]: no variant named `A` found for type `SomeEnum` in the current scop
LL | pub enum SomeEnum { LL | pub enum SomeEnum {
| ----------------- variant `A` not found here | ----------------- variant `A` not found here
LL | B = SomeEnum::A, LL | B = SomeEnum::A,
| ----------^ | ^
| | | | |
| | help: did you mean: `B` | variant not found in `SomeEnum`
| variant not found in `SomeEnum` | help: did you mean: `B`
error: aborting due to previous error error: aborting due to previous error

View File

@ -8,10 +8,10 @@ error[E0599]: no function or associated item named `bitor` found for type `dyn s
--> $DIR/issue-28344.rs:4:25 --> $DIR/issue-28344.rs:4:25
| |
LL | let x: u8 = BitXor::bitor(0 as u8, 0 as u8); LL | let x: u8 = BitXor::bitor(0 as u8, 0 as u8);
| --------^^^^^ | ^^^^^
| | | |
| function or associated item not found in `dyn std::ops::BitXor<_>` | function or associated item not found in `dyn std::ops::BitXor<_>`
| help: did you mean: `bitxor` | help: did you mean: `bitxor`
error[E0191]: the value of the associated type `Output` (from the trait `std::ops::BitXor`) must be specified error[E0191]: the value of the associated type `Output` (from the trait `std::ops::BitXor`) must be specified
--> $DIR/issue-28344.rs:8:13 --> $DIR/issue-28344.rs:8:13
@ -23,10 +23,10 @@ error[E0599]: no function or associated item named `bitor` found for type `dyn s
--> $DIR/issue-28344.rs:8:21 --> $DIR/issue-28344.rs:8:21
| |
LL | let g = BitXor::bitor; LL | let g = BitXor::bitor;
| --------^^^^^ | ^^^^^
| | | |
| function or associated item not found in `dyn std::ops::BitXor<_>` | function or associated item not found in `dyn std::ops::BitXor<_>`
| help: did you mean: `bitxor` | help: did you mean: `bitxor`
error: aborting due to 4 previous errors error: aborting due to 4 previous errors

View File

@ -2,9 +2,7 @@ error[E0599]: no associated item named `BYTES` found for type `usize` in the cur
--> $DIR/issue-28586.rs:4:26 --> $DIR/issue-28586.rs:4:26
| |
LL | impl Foo for [u8; usize::BYTES] {} LL | impl Foo for [u8; usize::BYTES] {}
| -------^^^^^ | ^^^^^ associated item not found in `usize`
| |
| associated item not found in `usize`
error: aborting due to previous error error: aborting due to previous error

View File

@ -5,10 +5,10 @@ LL | enum Foo {
| -------- variant `Baz` not found here | -------- variant `Baz` not found here
... ...
LL | Foo::Baz(..) => (), LL | Foo::Baz(..) => (),
| -----^^^---- | ^^^
| | | | |
| | help: did you mean: `Bar` | variant not found in `Foo`
| variant not found in `Foo` | help: did you mean: `Bar`
error: aborting due to previous error error: aborting due to previous error

View File

@ -2,9 +2,7 @@ error[E0599]: no function or associated item named `new_undirected` found for ty
--> $DIR/issue-30123.rs:7:33 --> $DIR/issue-30123.rs:7:33
| |
LL | let ug = Graph::<i32, i32>::new_undirected(); LL | let ug = Graph::<i32, i32>::new_undirected();
| -------------------^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^ function or associated item not found in `issue_30123_aux::Graph<i32, i32>`
| |
| function or associated item not found in `issue_30123_aux::Graph<i32, i32>`
error: aborting due to previous error error: aborting due to previous error

View File

@ -2,9 +2,7 @@ error[E0599]: no associated item named `Item` found for type `T` in the current
--> $DIR/issue-38919.rs:2:8 --> $DIR/issue-38919.rs:2:8
| |
LL | T::Item; LL | T::Item;
| ---^^^^ | ^^^^ associated item not found in `T`
| |
| associated item not found in `T`
error: aborting due to previous error error: aborting due to previous error

View File

@ -2,9 +2,7 @@ error[E0599]: no function or associated item named `dim` found for type `D` in t
--> $DIR/issue-39559.rs:14:21 --> $DIR/issue-39559.rs:14:21
| |
LL | entries: [T; D::dim()], LL | entries: [T; D::dim()],
| ---^^^ | ^^^ function or associated item not found in `D`
| |
| function or associated item not found in `D`
| |
= help: items from traits can only be used if the trait is implemented and in scope = help: items from traits can only be used if the trait is implemented and in scope
= note: the following trait defines an item `dim`, perhaps you need to implement it: = note: the following trait defines an item `dim`, perhaps you need to implement it:

View File

@ -14,9 +14,7 @@ LL | struct Point {
| ------------ function or associated item `new` not found for this | ------------ function or associated item `new` not found for this
... ...
LL | let p = Point::new(0.0, 0.0); LL | let p = Point::new(0.0, 0.0);
| -------^^^ | ^^^ function or associated item not found in `Point`
| |
| function or associated item not found in `Point`
error: aborting due to 2 previous errors error: aborting due to 2 previous errors

View File

@ -2,7 +2,7 @@ error[E0599]: no associated item named `String` found for type `std::string::Str
--> $DIR/issue-42880.rs:4:22 --> $DIR/issue-42880.rs:4:22
| |
LL | let f = |&Value::String(_)| (); LL | let f = |&Value::String(_)| ();
| -------^^^^^^--- associated item not found in `std::string::String` | ^^^^^^ associated item not found in `std::string::String`
error: aborting due to previous error error: aborting due to previous error

View File

@ -2,9 +2,7 @@ error[E0599]: no function or associated item named `make_g` found for type `for<
--> $DIR/issue-57362-2.rs:22:25 --> $DIR/issue-57362-2.rs:22:25
| |
LL | let x = <fn (&())>::make_g(); LL | let x = <fn (&())>::make_g();
| ------------^^^^^^ | ^^^^^^ function or associated item not found in `for<'r> fn(&'r ())`
| |
| function or associated item not found in `for<'r> fn(&'r ())`
| |
= help: items from traits can only be used if the trait is implemented and in scope = help: items from traits can only be used if the trait is implemented and in scope
= note: the following trait defines an item `make_g`, perhaps you need to implement it: = note: the following trait defines an item `make_g`, perhaps you need to implement it:

View File

@ -5,9 +5,7 @@ LL | struct Foo;
| ----------- function or associated item `bar` not found for this | ----------- function or associated item `bar` not found for this
... ...
LL | Foo::bar(); LL | Foo::bar();
| -----^^^ | ^^^ function or associated item not found in `Foo`
| |
| function or associated item not found in `Foo`
error: aborting due to previous error error: aborting due to previous error

View File

@ -12,9 +12,7 @@ error[E0599]: no function or associated item named `f` found for type `Foo` in t
--> $DIR/lexical-scopes.rs:10:10 --> $DIR/lexical-scopes.rs:10:10
| |
LL | Foo::f(); LL | Foo::f();
| -----^ | ^ function or associated item not found in `Foo`
| |
| function or associated item not found in `Foo`
error: aborting due to 2 previous errors error: aborting due to 2 previous errors

View File

@ -2,9 +2,7 @@ error[E0599]: no associated item named `XXX` found for type `u32` in the current
--> $DIR/no-double-error.rs:8:14 --> $DIR/no-double-error.rs:8:14
| |
LL | u32::XXX => { } LL | u32::XXX => { }
| -----^^^ | ^^^ associated item not found in `u32`
| |
| associated item not found in `u32`
error: aborting due to previous error error: aborting due to previous error

View File

@ -30,9 +30,7 @@ error[E0599]: no function or associated item named `from_str` found for type `u3
--> $DIR/trait-import-suggestions.rs:30:18 --> $DIR/trait-import-suggestions.rs:30:18
| |
LL | let y = u32::from_str("33"); LL | let y = u32::from_str("33");
| -----^^^^^^^^ | ^^^^^^^^ function or associated item not found in `u32`
| |
| function or associated item not found in `u32`
| |
= help: items from traits can only be used if the trait is in scope = help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope, perhaps add a `use` for it: help: the following trait is implemented but not in scope, perhaps add a `use` for it:

View File

@ -39,9 +39,7 @@ LL | struct S;
| --------- function or associated item `a` not found for this | --------- function or associated item `a` not found for this
... ...
LL | S::a(&S); LL | S::a(&S);
| ---^ | ^ function or associated item not found in `S`
| |
| function or associated item not found in `S`
| |
= help: items from traits can only be used if the trait is implemented and in scope = help: items from traits can only be used if the trait is implemented and in scope
= note: the following trait defines an item `a`, perhaps you need to implement it: = note: the following trait defines an item `a`, perhaps you need to implement it:
@ -54,9 +52,7 @@ LL | struct S;
| --------- function or associated item `b` not found for this | --------- function or associated item `b` not found for this
... ...
LL | S::b(&S); LL | S::b(&S);
| ---^ | ^ function or associated item not found in `S`
| |
| function or associated item not found in `S`
| |
= help: items from traits can only be used if the trait is in scope = help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope, perhaps add a `use` for it: help: the following trait is implemented but not in scope, perhaps add a `use` for it:
@ -77,9 +73,7 @@ LL | struct S;
| --------- associated item `A` not found for this | --------- associated item `A` not found for this
... ...
LL | S::A; LL | S::A;
| ---^ | ^ associated item not found in `S`
| |
| associated item not found in `S`
| |
= help: items from traits can only be used if the trait is implemented and in scope = help: items from traits can only be used if the trait is implemented and in scope
= note: the following trait defines an item `A`, perhaps you need to implement it: = note: the following trait defines an item `A`, perhaps you need to implement it:
@ -92,9 +86,7 @@ LL | struct S;
| --------- associated item `B` not found for this | --------- associated item `B` not found for this
... ...
LL | S::B; LL | S::B;
| ---^ | ^ associated item not found in `S`
| |
| associated item not found in `S`
| |
= help: items from traits can only be used if the trait is in scope = help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope, perhaps add a `use` for it: help: the following trait is implemented but not in scope, perhaps add a `use` for it:

View File

@ -190,17 +190,13 @@ error[E0599]: no associated item named `NN` found for type `<u8 as Tr>::Y` in th
--> $DIR/ufcs-partially-resolved.rs:38:20 --> $DIR/ufcs-partially-resolved.rs:38:20
| |
LL | <u8 as Tr>::Y::NN; LL | <u8 as Tr>::Y::NN;
| ---------------^^ | ^^ associated item not found in `<u8 as Tr>::Y`
| |
| associated item not found in `<u8 as Tr>::Y`
error[E0599]: no associated item named `N` found for type `<u8 as Dr>::X` in the current scope error[E0599]: no associated item named `N` found for type `<u8 as Dr>::X` in the current scope
--> $DIR/ufcs-partially-resolved.rs:55:20 --> $DIR/ufcs-partially-resolved.rs:55:20
| |
LL | <u8 as Dr>::X::N; LL | <u8 as Dr>::X::N;
| ---------------^ | ^ associated item not found in `<u8 as Dr>::X`
| |
| associated item not found in `<u8 as Dr>::X`
error: aborting due to 32 previous errors error: aborting due to 32 previous errors

View File

@ -2,33 +2,25 @@ error[E0599]: no function or associated item named `lol` found for type `dyn Foo
--> $DIR/unspecified-self-in-trait-ref.rs:10:18 --> $DIR/unspecified-self-in-trait-ref.rs:10:18
| |
LL | let a = Foo::lol(); LL | let a = Foo::lol();
| -----^^^ | ^^^ function or associated item not found in `dyn Foo<_>`
| |
| function or associated item not found in `dyn Foo<_>`
error[E0599]: no function or associated item named `lol` found for type `dyn Foo<_>` in the current scope error[E0599]: no function or associated item named `lol` found for type `dyn Foo<_>` in the current scope
--> $DIR/unspecified-self-in-trait-ref.rs:12:23 --> $DIR/unspecified-self-in-trait-ref.rs:12:23
| |
LL | let b = Foo::<_>::lol(); LL | let b = Foo::<_>::lol();
| ----------^^^ | ^^^ function or associated item not found in `dyn Foo<_>`
| |
| function or associated item not found in `dyn Foo<_>`
error[E0599]: no function or associated item named `lol` found for type `dyn Bar<_, _>` in the current scope error[E0599]: no function or associated item named `lol` found for type `dyn Bar<_, _>` in the current scope
--> $DIR/unspecified-self-in-trait-ref.rs:14:18 --> $DIR/unspecified-self-in-trait-ref.rs:14:18
| |
LL | let c = Bar::lol(); LL | let c = Bar::lol();
| -----^^^ | ^^^ function or associated item not found in `dyn Bar<_, _>`
| |
| function or associated item not found in `dyn Bar<_, _>`
error[E0599]: no function or associated item named `lol` found for type `dyn Bar<usize, _>` in the current scope error[E0599]: no function or associated item named `lol` found for type `dyn Bar<usize, _>` in the current scope
--> $DIR/unspecified-self-in-trait-ref.rs:16:30 --> $DIR/unspecified-self-in-trait-ref.rs:16:30
| |
LL | let d = Bar::<usize, _>::lol(); LL | let d = Bar::<usize, _>::lol();
| -----------------^^^ | ^^^ function or associated item not found in `dyn Bar<usize, _>`
| |
| function or associated item not found in `dyn Bar<usize, _>`
error[E0393]: the type parameter `A` must be explicitly specified error[E0393]: the type parameter `A` must be explicitly specified
--> $DIR/unspecified-self-in-trait-ref.rs:18:13 --> $DIR/unspecified-self-in-trait-ref.rs:18:13