Auto merge of #32005 - vegai:31686, r=Manishearth
Fix note for type alias in trait position Fixes #31686
This commit is contained in:
commit
7b0b80ae21
@ -1988,9 +1988,12 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
|
||||
path_depth)));
|
||||
|
||||
// If it's a typedef, give a note
|
||||
if let Def::TyAlias(..) = path_res.base_def {
|
||||
err.span_note(trait_path.span,
|
||||
if let Def::TyAlias(did) = path_res.base_def {
|
||||
err.fileline_note(trait_path.span,
|
||||
"`type` aliases cannot be used for traits");
|
||||
if let Some(sp) = self.ast_map.span_if_local(did) {
|
||||
err.span_note(sp, "type defined here");
|
||||
}
|
||||
}
|
||||
err.emit();
|
||||
Err(())
|
||||
|
@ -11,7 +11,7 @@
|
||||
// aux-build:issue_3907.rs
|
||||
extern crate issue_3907;
|
||||
|
||||
type Foo = issue_3907::Foo;
|
||||
type Foo = issue_3907::Foo; //~ NOTE: type defined here
|
||||
|
||||
struct S {
|
||||
name: isize
|
||||
|
@ -9,7 +9,7 @@
|
||||
// except according to those terms.
|
||||
|
||||
trait I {}
|
||||
type K = I;
|
||||
type K = I; //~ NOTE: type defined here
|
||||
impl K for isize {} //~ ERROR: `K` is not a trait
|
||||
//~^ NOTE: `type` aliases cannot be used for traits
|
||||
fn main() {}
|
||||
|
Loading…
x
Reference in New Issue
Block a user