blob: 34d8c73229636b42256b82ce07900f9b4beeeb2f [file]
//@ 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!
}