Rollup merge of #87606 - JohnTitor:tait-tests, r=oli-obk
Add some TAIT-related regression tests Closes #74280, closes #77179. r? ``@oli-obk``
This commit is contained in:
commit
2bdc54fb45
4 changed files with 53 additions and 0 deletions
13
src/test/ui/type-alias-impl-trait/issue-74280.rs
Normal file
13
src/test/ui/type-alias-impl-trait/issue-74280.rs
Normal file
|
@ -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() {}
|
14
src/test/ui/type-alias-impl-trait/issue-74280.stderr
Normal file
14
src/test/ui/type-alias-impl-trait/issue-74280.stderr
Normal file
|
@ -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
|
||||||
|
|
14
src/test/ui/type-alias-impl-trait/issue-77179.rs
Normal file
14
src/test/ui/type-alias-impl-trait/issue-77179.rs
Normal file
|
@ -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();
|
||||||
|
}
|
12
src/test/ui/type-alias-impl-trait/issue-77179.stderr
Normal file
12
src/test/ui/type-alias-impl-trait/issue-77179.stderr
Normal file
|
@ -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`.
|
Loading…
Reference in a new issue