diff options
| author | F001 <changchun.fan@qq.com> | 2018-08-28 12:51:43 +0800 |
|---|---|---|
| committer | F001 <changchun.fan@qq.com> | 2018-09-13 10:57:28 +0800 |
| commit | a4891699125fa12d46217890e4eb68b35e9ff6d5 (patch) | |
| tree | be5ca3676bccdcaeeb465f862d0e0195bb3f0c11 /src/test/ui | |
| parent | f2302daef3608c09e2b50193a64611b18ced86f3 (diff) | |
| download | rust-a4891699125fa12d46217890e4eb68b35e9ff6d5.tar.gz rust-a4891699125fa12d46217890e4eb68b35e9ff6d5.zip | |
implement feature tuple_struct_self_ctor
Diffstat (limited to 'src/test/ui')
4 files changed, 42 insertions, 28 deletions
diff --git a/src/test/ui/feature-gates/feature-gate-tuple-struct-self-ctor.rs b/src/test/ui/feature-gates/feature-gate-tuple-struct-self-ctor.rs new file mode 100644 index 00000000000..aa907e813ed --- /dev/null +++ b/src/test/ui/feature-gates/feature-gate-tuple-struct-self-ctor.rs @@ -0,0 +1,19 @@ +// 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. + +struct ST(i32, i32); + +impl ST { + fn ctor() -> Self { + Self(1,2) + //~^ ERROR: expected function, found self type `Self` [E0423] + //~^^ ERROR: tuple struct Self constructors are unstable (see issue #51994) [E0658] + } +} diff --git a/src/test/ui/feature-gates/feature-gate-tuple-struct-self-ctor.stderr b/src/test/ui/feature-gates/feature-gate-tuple-struct-self-ctor.stderr new file mode 100644 index 00000000000..e92924e9602 --- /dev/null +++ b/src/test/ui/feature-gates/feature-gate-tuple-struct-self-ctor.stderr @@ -0,0 +1,20 @@ +error[E0423]: expected function, found self type `Self` + --> $DIR/feature-gate-tuple-struct-self-ctor.rs:15:9 + | +LL | Self(1,2) + | ^^^^ not a function + | + = note: can't use `Self` as a constructor, you must use the implemented struct + +error[E0658]: tuple struct Self constructors are unstable (see issue #51994) + --> $DIR/feature-gate-tuple-struct-self-ctor.rs:15:9 + | +LL | Self(1,2) + | ^^^^^^^^^ + | + = help: add #![feature(tuple_struct_self_ctor)] to the crate attributes to enable + +error: aborting due to 2 previous errors + +Some errors occurred: E0423, E0658. +For more information about an error, try `rustc --explain E0423`. diff --git a/src/test/ui/resolve/tuple-struct-alias.rs b/src/test/ui/resolve/tuple-struct-alias.rs index 0dbca07b771..1f3588dd3ca 100644 --- a/src/test/ui/resolve/tuple-struct-alias.rs +++ b/src/test/ui/resolve/tuple-struct-alias.rs @@ -11,15 +11,6 @@ struct S(u8, u16); type A = S; -impl S { - fn f() { - let s = Self(0, 1); //~ ERROR expected function - match s { - Self(..) => {} //~ ERROR expected tuple struct/variant - } - } -} - fn main() { let s = A(0, 1); //~ ERROR expected function match s { diff --git a/src/test/ui/resolve/tuple-struct-alias.stderr b/src/test/ui/resolve/tuple-struct-alias.stderr index cdac6277bcf..ad2ae4acb8b 100644 --- a/src/test/ui/resolve/tuple-struct-alias.stderr +++ b/src/test/ui/resolve/tuple-struct-alias.stderr @@ -1,21 +1,5 @@ -error[E0423]: expected function, found self type `Self` - --> $DIR/tuple-struct-alias.rs:16:17 - | -LL | let s = Self(0, 1); //~ ERROR expected function - | ^^^^ not a function - | - = note: can't use `Self` as a constructor, you must use the implemented struct - -error[E0532]: expected tuple struct/variant, found self type `Self` - --> $DIR/tuple-struct-alias.rs:18:13 - | -LL | Self(..) => {} //~ ERROR expected tuple struct/variant - | ^^^^ not a tuple struct/variant - | - = note: can't use `Self` as a constructor, you must use the implemented struct - error[E0423]: expected function, found type alias `A` - --> $DIR/tuple-struct-alias.rs:24:13 + --> $DIR/tuple-struct-alias.rs:15:13 | LL | let s = A(0, 1); //~ ERROR expected function | ^ did you mean `S`? @@ -23,14 +7,14 @@ LL | let s = A(0, 1); //~ ERROR expected function = note: can't use a type alias as a constructor error[E0532]: expected tuple struct/variant, found type alias `A` - --> $DIR/tuple-struct-alias.rs:26:9 + --> $DIR/tuple-struct-alias.rs:17:9 | LL | A(..) => {} //~ ERROR expected tuple struct/variant | ^ did you mean `S`? | = note: can't use a type alias as a constructor -error: aborting due to 4 previous errors +error: aborting due to 2 previous errors Some errors occurred: E0423, E0532. For more information about an error, try `rustc --explain E0423`. |
