2021-11-04 16:57:40 +00:00
|
|
|
enum Hey<A, B> {
|
|
|
|
A(A),
|
|
|
|
B(B),
|
|
|
|
}
|
|
|
|
|
2022-01-12 04:22:00 +00:00
|
|
|
struct Foo {
|
|
|
|
bar: Option<i32>,
|
|
|
|
}
|
|
|
|
|
2021-11-04 16:57:40 +00:00
|
|
|
fn f() {}
|
|
|
|
|
|
|
|
fn a() -> Option<()> {
|
|
|
|
while false {
|
|
|
|
//~^ ERROR mismatched types
|
|
|
|
f();
|
|
|
|
}
|
|
|
|
//~^ HELP try adding an expression
|
|
|
|
}
|
|
|
|
|
|
|
|
fn b() -> Result<(), ()> {
|
|
|
|
f()
|
|
|
|
//~^ ERROR mismatched types
|
|
|
|
//~| HELP try adding an expression
|
|
|
|
}
|
|
|
|
|
2022-01-19 12:11:48 +00:00
|
|
|
fn c() -> Option<()> {
|
|
|
|
for _ in [1, 2] {
|
|
|
|
//~^ ERROR mismatched types
|
|
|
|
f();
|
|
|
|
}
|
|
|
|
//~^ HELP try adding an expression
|
|
|
|
}
|
|
|
|
|
|
|
|
fn d() -> Option<()> {
|
|
|
|
c()?
|
|
|
|
//~^ ERROR incompatible types
|
|
|
|
//~| HELP try removing this `?`
|
|
|
|
//~| HELP try adding an expression
|
|
|
|
}
|
|
|
|
|
2021-11-04 16:57:40 +00:00
|
|
|
fn main() {
|
|
|
|
let _: Option<()> = while false {};
|
|
|
|
//~^ ERROR mismatched types
|
|
|
|
//~| HELP try wrapping
|
|
|
|
let _: Option<()> = {
|
|
|
|
while false {}
|
|
|
|
//~^ ERROR mismatched types
|
|
|
|
//~| HELP try adding an expression
|
|
|
|
};
|
|
|
|
let _: Result<i32, i32> = 1;
|
|
|
|
//~^ ERROR mismatched types
|
|
|
|
//~| HELP try wrapping
|
|
|
|
let _: Option<i32> = 1;
|
|
|
|
//~^ ERROR mismatched types
|
|
|
|
//~| HELP try wrapping
|
|
|
|
let _: Hey<i32, i32> = 1;
|
|
|
|
//~^ ERROR mismatched types
|
|
|
|
//~| HELP try wrapping
|
|
|
|
let _: Hey<i32, bool> = false;
|
|
|
|
//~^ ERROR mismatched types
|
|
|
|
//~| HELP try wrapping
|
2022-01-12 04:22:00 +00:00
|
|
|
let bar = 1i32;
|
|
|
|
let _ = Foo { bar };
|
|
|
|
//~^ ERROR mismatched types
|
|
|
|
//~| HELP try wrapping
|
2021-11-04 16:57:40 +00:00
|
|
|
}
|
2022-03-27 23:05:14 +00:00
|
|
|
|
|
|
|
enum A {
|
2022-07-31 14:09:39 +00:00
|
|
|
B { b: B },
|
2022-03-27 23:05:14 +00:00
|
|
|
}
|
|
|
|
|
2022-03-27 23:15:26 +00:00
|
|
|
struct A2(B);
|
|
|
|
|
2022-03-27 23:05:14 +00:00
|
|
|
enum B {
|
|
|
|
Fst,
|
|
|
|
Snd,
|
|
|
|
}
|
|
|
|
|
|
|
|
fn foo() {
|
|
|
|
let a: A = B::Fst;
|
|
|
|
//~^ ERROR mismatched types
|
2022-07-31 14:09:39 +00:00
|
|
|
//~| HELP try wrapping
|
2022-03-27 23:15:26 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
fn bar() {
|
|
|
|
let a: A2 = B::Fst;
|
|
|
|
//~^ ERROR mismatched types
|
|
|
|
//~| HELP try wrapping
|
|
|
|
}
|