Skip to content

Commit

Permalink
Add some TAIT-related regression tests
Browse files Browse the repository at this point in the history
  • Loading branch information
JohnTitor committed Jul 29, 2021
1 parent 5fb3394 commit 5b5391e
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 0 deletions.
13 changes: 13 additions & 0 deletions src/test/ui/type-alias-impl-trait/issue-74280.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 14 additions & 0 deletions src/test/ui/type-alias-impl-trait/issue-74280.stderr
Original file line number Diff line number Diff line change
@@ -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 changes: 14 additions & 0 deletions src/test/ui/type-alias-impl-trait/issue-77179.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 12 additions & 0 deletions src/test/ui/type-alias-impl-trait/issue-77179.stderr
Original file line number Diff line number Diff line change
@@ -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`.

0 comments on commit 5b5391e

Please sign in to comment.