From dedf2eda8f6d062da91c80a8980b3b794f5c876e Mon Sep 17 00:00:00 2001 From: Eduard-Mihai Burtescu Date: Sun, 16 Jun 2019 17:23:41 +0300 Subject: rustc_typeck: correctly compute `Substs` for `Res::SelfCtor`. --- src/test/run-pass/issues/issue-57924.rs | 9 --------- src/test/ui/issues/issue-57924.rs | 10 ++++++++++ src/test/ui/issues/issue-57924.stderr | 9 +++++++++ src/test/ui/issues/issue-61882-2.rs | 11 +++++++++++ src/test/ui/issues/issue-61882-2.stderr | 15 +++++++++++++++ src/test/ui/issues/issue-61882.rs | 9 +++++++++ src/test/ui/issues/issue-61882.stderr | 21 +++++++++++++++++++++ 7 files changed, 75 insertions(+), 9 deletions(-) delete mode 100644 src/test/run-pass/issues/issue-57924.rs create mode 100644 src/test/ui/issues/issue-57924.rs create mode 100644 src/test/ui/issues/issue-57924.stderr create mode 100644 src/test/ui/issues/issue-61882-2.rs create mode 100644 src/test/ui/issues/issue-61882-2.stderr create mode 100644 src/test/ui/issues/issue-61882.rs create mode 100644 src/test/ui/issues/issue-61882.stderr (limited to 'src/test') diff --git a/src/test/run-pass/issues/issue-57924.rs b/src/test/run-pass/issues/issue-57924.rs deleted file mode 100644 index 232596334b0..00000000000 --- a/src/test/run-pass/issues/issue-57924.rs +++ /dev/null @@ -1,9 +0,0 @@ -pub struct Gcm(E); - -impl Gcm { - pub fn crash(e: E) -> Self { - Self::(e) - } -} - -fn main() {} diff --git a/src/test/ui/issues/issue-57924.rs b/src/test/ui/issues/issue-57924.rs new file mode 100644 index 00000000000..dc2942225e3 --- /dev/null +++ b/src/test/ui/issues/issue-57924.rs @@ -0,0 +1,10 @@ +pub struct Gcm(E); + +impl Gcm { + pub fn crash(e: E) -> Self { + Self::(e) + //~^ ERROR type arguments are not allowed for this type + } +} + +fn main() {} diff --git a/src/test/ui/issues/issue-57924.stderr b/src/test/ui/issues/issue-57924.stderr new file mode 100644 index 00000000000..2f184b1aae1 --- /dev/null +++ b/src/test/ui/issues/issue-57924.stderr @@ -0,0 +1,9 @@ +error[E0109]: type arguments are not allowed for this type + --> $DIR/issue-57924.rs:5:16 + | +LL | Self::(e) + | ^ type argument not allowed + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0109`. diff --git a/src/test/ui/issues/issue-61882-2.rs b/src/test/ui/issues/issue-61882-2.rs new file mode 100644 index 00000000000..1209b54bc41 --- /dev/null +++ b/src/test/ui/issues/issue-61882-2.rs @@ -0,0 +1,11 @@ +struct A(T); + +impl A<&'static u8> { + fn f() { + let x = 0; + Self(&x); + //~^ ERROR `x` does not live long enough + } +} + +fn main() {} diff --git a/src/test/ui/issues/issue-61882-2.stderr b/src/test/ui/issues/issue-61882-2.stderr new file mode 100644 index 00000000000..03a65540ced --- /dev/null +++ b/src/test/ui/issues/issue-61882-2.stderr @@ -0,0 +1,15 @@ +error[E0597]: `x` does not live long enough + --> $DIR/issue-61882-2.rs:6:14 + | +LL | Self(&x); + | ^^ + | | + | borrowed value does not live long enough + | requires that `x` is borrowed for `'static` +LL | +LL | } + | - `x` dropped here while still borrowed + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0597`. diff --git a/src/test/ui/issues/issue-61882.rs b/src/test/ui/issues/issue-61882.rs new file mode 100644 index 00000000000..013398b4598 --- /dev/null +++ b/src/test/ui/issues/issue-61882.rs @@ -0,0 +1,9 @@ +struct A(T); + +impl A { + const B: A = Self(0); + //~^ ERROR mismatched types + //~| ERROR mismatched types +} + +fn main() {} diff --git a/src/test/ui/issues/issue-61882.stderr b/src/test/ui/issues/issue-61882.stderr new file mode 100644 index 00000000000..a14e1a4dd4d --- /dev/null +++ b/src/test/ui/issues/issue-61882.stderr @@ -0,0 +1,21 @@ +error[E0308]: mismatched types + --> $DIR/issue-61882.rs:4:27 + | +LL | const B: A = Self(0); + | ^ expected bool, found integer + | + = note: expected type `bool` + found type `{integer}` + +error[E0308]: mismatched types + --> $DIR/issue-61882.rs:4:22 + | +LL | const B: A = Self(0); + | ^^^^^^^ expected u8, found bool + | + = note: expected type `A` + found type `A` + +error: aborting due to 2 previous errors + +For more information about this error, try `rustc --explain E0308`. -- cgit 1.4.1-3-g733a5