Rollup merge of #56366 - alexreg:stabilise-self_in_typedefs, r=Centril
Stabilize self_in_typedefs feature [**Tracking Issue**](https://github.com/rust-lang/rust/issues/49303) r? @centril
This commit is contained in:
commit
bf96a7bbed
11 changed files with 25 additions and 82 deletions
|
|
@ -9,12 +9,11 @@
|
|||
// except according to those terms.
|
||||
|
||||
// run-pass
|
||||
#![allow(unions_with_drop_fields)]
|
||||
|
||||
#![feature(self_in_typedefs)]
|
||||
#![feature(untagged_unions)]
|
||||
|
||||
#![allow(dead_code)]
|
||||
#![allow(unions_with_drop_fields)]
|
||||
|
||||
enum A<'a, T: 'a>
|
||||
where
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ error[E0411]: cannot find type `Self` in this scope
|
|||
--> $DIR/E0411.rs:12:6
|
||||
|
|
||||
LL | <Self>::foo; //~ ERROR E0411
|
||||
| ^^^^ `Self` is only available in traits and impls
|
||||
| ^^^^ `Self` is only available in impls, traits, and type definitions
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
|||
|
|
@ -1,18 +0,0 @@
|
|||
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
enum StackList<'a, T: 'a> {
|
||||
Nil,
|
||||
Cons(T, &'a Self)
|
||||
//~^ ERROR cannot find type `Self` in this scope
|
||||
//~| `Self` is only available in traits and impls
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
error[E0411]: cannot find type `Self` in this scope
|
||||
--> $DIR/feature-gate-self_in_typedefs.rs:13:17
|
||||
|
|
||||
LL | Cons(T, &'a Self)
|
||||
| ^^^^ `Self` is only available in traits and impls
|
||||
|
|
||||
= help: add #![feature(self_in_typedefs)] to the crate attributes to enable
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0411`.
|
||||
|
|
@ -12,6 +12,7 @@
|
|||
|
||||
struct Foo<Self>(Self);
|
||||
//~^ ERROR expected identifier, found keyword `Self`
|
||||
//~^^ ERROR E0392
|
||||
|
||||
trait Bar<Self> {}
|
||||
//~^ ERROR expected identifier, found keyword `Self`
|
||||
|
|
|
|||
|
|
@ -5,10 +5,19 @@ LL | struct Foo<Self>(Self);
|
|||
| ^^^^ expected identifier, found keyword
|
||||
|
||||
error: expected identifier, found keyword `Self`
|
||||
--> $DIR/issue-36638.rs:16:11
|
||||
--> $DIR/issue-36638.rs:17:11
|
||||
|
|
||||
LL | trait Bar<Self> {}
|
||||
| ^^^^ expected identifier, found keyword
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
error[E0392]: parameter `Self` is never used
|
||||
--> $DIR/issue-36638.rs:13:12
|
||||
|
|
||||
LL | struct Foo<Self>(Self);
|
||||
| ^^^^ unused type parameter
|
||||
|
|
||||
= help: consider removing `Self` or using a marker such as `std::marker::PhantomData`
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0392`.
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ error[E0411]: cannot find type `Self` in this scope
|
|||
--> $DIR/issue-24968.rs:11:11
|
||||
|
|
||||
LL | fn foo(_: Self) {
|
||||
| ^^^^ `Self` is only available in traits and impls
|
||||
| ^^^^ `Self` is only available in impls, traits, and type definitions
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ error[E0411]: expected trait, found self type `Self`
|
|||
--> $DIR/resolve-self-in-impl-2.rs:14:6
|
||||
|
|
||||
LL | impl Self for S {} //~ ERROR expected trait, found self type `Self`
|
||||
| ^^^^ `Self` is only available in traits and impls
|
||||
| ^^^^ `Self` is only available in impls, traits, and type definitions
|
||||
|
||||
error[E0405]: cannot find trait `N` in `Self`
|
||||
--> $DIR/resolve-self-in-impl-2.rs:15:12
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue