mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-16 08:53:35 +00:00
Add some TAIT-related regression tests
This commit is contained in:
parent
5fb3394cbd
commit
5b5391e283
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 New Issue
Block a user