Auto merge of #32005 - vegai:31686, r=Manishearth

Fix note for type alias in trait position

Fixes #31686
This commit is contained in:
bors 2016-03-02 22:15:51 +00:00
commit 7b0b80ae21
3 changed files with 7 additions and 4 deletions

View File

@ -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(())

View File

@ -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

View File

@ -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() {}