Open
Description
pub fn main() {
let mut x;
x = Box::new(x);
}
Triggers the not implemented: overflowed on pending obligations
ICE in the new solver fulfillment context. We probably should actually just turn that into a hard error.
thread 'rustc' panicked at 'not implemented: overflowed on pending obligations: [Obligation(predicate=Binder(CoercePredicate { a: _#1t, b: _#5t }, []), cause=ObligationCause { span: <source>:3:18: 3:19 (#0), body_id: DefId(0:3 ~ example[4e51]::main), code: ExprAssignable }, param_env=ParamEnv { caller_bounds: [], reveal: UserFacing, constness: NotConst }, depth=0), Obligation(predicate=Binder(SubtypePredicate { a_is_expected: false, a: _#5t, b: _#6t }, []), cause=ObligationCause { span: <source>:3:9: 3:20 (#0), body_id: DefId(0:3 ~ example[4e51]::main), code: ExprAssignable }, param_env=ParamEnv { caller_bounds: [], reveal: UserFacing, constness: NotConst }, depth=0)]', compiler/rustc_trait_selection/src/solve/fulfill.rs:59:17
We also probably should investigate why this coerce predicate really is looping forever -- it's not clear why it shouldn't just turn into ambig.