| //@ compile-flags: -Znext-solver | |
| //@ check-pass | |
| // Regression test for github.com/rust-lang/trait-system-refactor-initiative#280 | |
| // We force unresolved float infer vars to fallback to `f32` if there're stalled `f32: From<?float>` | |
| // obligations. | |
| // Previously the recursion limit is 3 which is not enough, causing some bevy crates to fail. | |
| trait Trait {} | |
| impl<T: Into<f32>> Trait for T {} | |
| struct W<T>(T); | |
| impl<T: Trait> Trait for W<T> {} | |
| fn impls_trait<T: Trait>(_: T) {} | |
| fn main() { | |
| impls_trait(W(1.0)) | |
| //~^ WARN: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied [float_literal_f32_fallback] | |
| //~| WARN: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! | |
| } |