diff options
| -rw-r--r-- | src/test/ui/type-alias-impl-trait/issue-74280.rs | 13 | ||||
| -rw-r--r-- | src/test/ui/type-alias-impl-trait/issue-74280.stderr | 14 | ||||
| -rw-r--r-- | src/test/ui/type-alias-impl-trait/issue-77179.rs | 14 | ||||
| -rw-r--r-- | src/test/ui/type-alias-impl-trait/issue-77179.stderr | 12 |
4 files changed, 53 insertions, 0 deletions
diff --git a/src/test/ui/type-alias-impl-trait/issue-74280.rs b/src/test/ui/type-alias-impl-trait/issue-74280.rs new file mode 100644 index 00000000000..d5b90a49b05 --- /dev/null +++ b/src/test/ui/type-alias-impl-trait/issue-74280.rs @@ -0,0 +1,13 @@ +// Regression test for #74280. + +#![feature(type_alias_impl_trait)] + +type Test = impl Copy; + +fn test() -> Test { + let y = || -> Test { () }; + //~^ ERROR: concrete type differs from previous defining opaque type use + 7 +} + +fn main() {} diff --git a/src/test/ui/type-alias-impl-trait/issue-74280.stderr b/src/test/ui/type-alias-impl-trait/issue-74280.stderr new file mode 100644 index 00000000000..79c7df788f4 --- /dev/null +++ b/src/test/ui/type-alias-impl-trait/issue-74280.stderr @@ -0,0 +1,14 @@ +error: concrete type differs from previous defining opaque type use + --> $DIR/issue-74280.rs:8:13 + | +LL | let y = || -> Test { () }; + | ^^^^^^^^^^^^^^^^^ expected `i32`, got `()` + | +note: previous use here + --> $DIR/issue-74280.rs:7:1 + | +LL | fn test() -> Test { + | ^^^^^^^^^^^^^^^^^ + +error: aborting due to previous error + diff --git a/src/test/ui/type-alias-impl-trait/issue-77179.rs b/src/test/ui/type-alias-impl-trait/issue-77179.rs new file mode 100644 index 00000000000..31c45a2093a --- /dev/null +++ b/src/test/ui/type-alias-impl-trait/issue-77179.rs @@ -0,0 +1,14 @@ +// Regression test for #77179. + +#![feature(type_alias_impl_trait)] + +type Pointer<T> = impl std::ops::Deref<Target=T>; + +fn test() -> Pointer<_> { + //~^ ERROR: the type placeholder `_` is not allowed within types + Box::new(1) +} + +fn main() { + test(); +} diff --git a/src/test/ui/type-alias-impl-trait/issue-77179.stderr b/src/test/ui/type-alias-impl-trait/issue-77179.stderr new file mode 100644 index 00000000000..593aeeacb83 --- /dev/null +++ b/src/test/ui/type-alias-impl-trait/issue-77179.stderr @@ -0,0 +1,12 @@ +error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types + --> $DIR/issue-77179.rs:7:22 + | +LL | fn test() -> Pointer<_> { + | --------^- + | | | + | | not allowed in type signatures + | help: replace with the correct return type: `Box<i32>` + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0121`. |
