15 lines
395 B
Rust
15 lines
395 B
Rust
// run-pass
|
|
|
|
#![allow(warnings)]
|
|
|
|
// Here the type of `c` is `Option<?T>`, where `?T` is unconstrained.
|
|
// Because there is data-flow from the `{ return; }` block, which
|
|
// diverges and hence has type `!`, into `c`, we will default `?T` to
|
|
// `!`, and hence this code compiles rather than failing and requiring
|
|
// a type annotation.
|
|
|
|
fn main() {
|
|
let c = Some({ return; });
|
|
c.unwrap();
|
|
}
|