Rollup merge of #71952 - JohnTitor:add-tests, r=Dylan-DPC
Add some regression tests Closes #29988 Closes #34979 Pick up two snippets that have been fixed from #67945 (shouldn't be closed yet!)
This commit is contained in:
commit
480f718158
7 changed files with 107 additions and 0 deletions
25
src/test/codegen/ffi-out-of-bounds-loads.rs
Normal file
25
src/test/codegen/ffi-out-of-bounds-loads.rs
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
// Regression test for #29988
|
||||
|
||||
// compile-flags: -C no-prepopulate-passes
|
||||
// only-x86_64
|
||||
// ignore-windows
|
||||
|
||||
#[repr(C)]
|
||||
struct S {
|
||||
f1: i32,
|
||||
f2: i32,
|
||||
f3: i32,
|
||||
}
|
||||
|
||||
extern {
|
||||
fn foo(s: S);
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let s = S { f1: 1, f2: 2, f3: 3 };
|
||||
unsafe {
|
||||
// CHECK: load { i64, i32 }, { i64, i32 }* {{.*}}, align 4
|
||||
// CHECK: call void @foo({ i64, i32 } {{.*}})
|
||||
foo(s);
|
||||
}
|
||||
}
|
||||
8
src/test/ui/enum/issue-67945-1.rs
Normal file
8
src/test/ui/enum/issue-67945-1.rs
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
enum Bug<S> {
|
||||
Var = {
|
||||
let x: S = 0; //~ ERROR: mismatched types
|
||||
0
|
||||
},
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
17
src/test/ui/enum/issue-67945-1.stderr
Normal file
17
src/test/ui/enum/issue-67945-1.stderr
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-67945-1.rs:3:20
|
||||
|
|
||||
LL | enum Bug<S> {
|
||||
| - this type parameter
|
||||
LL | Var = {
|
||||
LL | let x: S = 0;
|
||||
| - ^ expected type parameter `S`, found integer
|
||||
| |
|
||||
| expected due to this
|
||||
|
|
||||
= note: expected type parameter `S`
|
||||
found type `{integer}`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0308`.
|
||||
9
src/test/ui/enum/issue-67945-2.rs
Normal file
9
src/test/ui/enum/issue-67945-2.rs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
#![feature(type_ascription)]
|
||||
|
||||
enum Bug<S> {
|
||||
Var = 0: S,
|
||||
//~^ ERROR: mismatched types
|
||||
//~| ERROR: mismatched types
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
25
src/test/ui/enum/issue-67945-2.stderr
Normal file
25
src/test/ui/enum/issue-67945-2.stderr
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-67945-2.rs:4:11
|
||||
|
|
||||
LL | enum Bug<S> {
|
||||
| - this type parameter
|
||||
LL | Var = 0: S,
|
||||
| ^ expected type parameter `S`, found integer
|
||||
|
|
||||
= note: expected type parameter `S`
|
||||
found type `{integer}`
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-67945-2.rs:4:11
|
||||
|
|
||||
LL | enum Bug<S> {
|
||||
| - this type parameter
|
||||
LL | Var = 0: S,
|
||||
| ^^^^ expected `isize`, found type parameter `S`
|
||||
|
|
||||
= note: expected type `isize`
|
||||
found type parameter `S`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0308`.
|
||||
9
src/test/ui/lifetimes/issue-34979.rs
Normal file
9
src/test/ui/lifetimes/issue-34979.rs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
trait Foo {}
|
||||
impl<'a, T> Foo for &'a T {}
|
||||
|
||||
struct Ctx<'a>(&'a ())
|
||||
where
|
||||
&'a (): Foo, //~ ERROR: type annotations needed
|
||||
&'static (): Foo;
|
||||
|
||||
fn main() {}
|
||||
14
src/test/ui/lifetimes/issue-34979.stderr
Normal file
14
src/test/ui/lifetimes/issue-34979.stderr
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
error[E0283]: type annotations needed
|
||||
--> $DIR/issue-34979.rs:6:13
|
||||
|
|
||||
LL | trait Foo {}
|
||||
| --------- required by this bound in `Foo`
|
||||
...
|
||||
LL | &'a (): Foo,
|
||||
| ^^^ cannot infer type for reference `&'a ()`
|
||||
|
|
||||
= note: cannot satisfy `&'a (): Foo`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0283`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue