// A regression test for #111729 checking that we correctly // track recursion depth for obligations returned by confirmation. use std::panic::RefUnwindSafe; trait Database { type Storage; } trait Query { type Data; } struct ParseQuery; struct RootDatabase { _runtime: Runtime, } impl Database for T { //~^ ERROR overflow type Storage = SalsaStorage; } impl Database for RootDatabase { type Storage = SalsaStorage; } struct Runtime { _storage: Box, } struct SalsaStorage { _parse: >::Data, } impl Query for ParseQuery { type Data = RootDatabase; } fn main() {}