]> git.lizzy.rs Git - rust.git/blob - tests/ui/never_type/never-value-fallback-issue-66757.rs
Rollup merge of #106441 - mllken:abstract-socket-noref, r=joshtriplett
[rust.git] / tests / ui / never_type / never-value-fallback-issue-66757.rs
1 // Regression test for #66757
2 //
3 // Test than when you have a `!` value (e.g., the local variable
4 // never) and an uninferred variable (here the argument to `From`) it
5 // doesn't fallback to `()` but rather `!`.
6 //
7 // revisions: nofallback fallback
8 //[fallback] run-pass
9 //[nofallback] check-fail
10
11 #![feature(never_type)]
12
13 #![cfg_attr(fallback, feature(never_type_fallback))]
14
15 struct E;
16
17 impl From<!> for E {
18     fn from(_: !) -> E {
19         E
20     }
21 }
22
23 #[allow(unreachable_code)]
24 #[allow(dead_code)]
25 #[allow(unused_must_use)]
26 fn foo(never: !) {
27     <E as From<!>>::from(never);  // Ok
28     <E as From<_>>::from(never);  //[nofallback]~ ERROR trait bound `E: From<()>` is not satisfied
29 }
30
31 fn main() { }