Change:
<!-- [31mICE[0m: Rustc '' 'error: internal compiler error: should be sized but is not?', 'error: internal compiler error: should be sized but is not?' File: --auto-reduced (treereduce-rust): original: Version information ` Command: <!-- Include a backtrace in the code block by setting in your environment. E.g. . --<details<summary<strongProgram output</strong</summary<p</p</details<!-- query stack: [typeck] type-checking [analysis] running analysis passes on this crate --<!-- TRIAGEBOTSTART --<!-- TRIAGEBOTASSIGNSTART --<!-- TRIAGEBOTASSIGNDATASTARTTRIAGEBOTASSIGNDATAEND --<!-- TRIAGEBOTASSIGNEND --<!-- TRIAGEBOTEND --
this seems to bisect to fyi
claim

Discussion:
| ty::Never | ty::Dynamic(_, _, ty::DynStar) | ty::Error(_) => { <del> self.dcx().span_bug(span, format!("`{t:?}` should be sized but is not?")); </del> <ins> let guar = self .dcx() .span_delayed_bug(span, format!("`{t:?}` should be sized but is not?")); return Err(guar); </ins> } }) }

<ins> // Regression test for ICE #124848 // Tests that there is no ICE when a cast // involves a type with error use std::cell::Cell; struct MyType<'a>(Cell<Option<&'unpinned mut MyType<'a>>>, Pin); //~^ ERROR use of undeclared lifetime name `'unpinned` //~| ERROR cannot find type `Pin` in this scope fn main() { let mut unpinned = MyType(Cell::new(None)); //~^ ERROR his struct takes 2 arguments but 1 argument was supplied let bad_addr = &unpinned as *const Cell<Option<&'a mut MyType<'a>>> as usize; //~^ ERROR use of undeclared lifetime name `'a` //~| ERROR use of undeclared lifetime name `'a` //~| ERROR casting `&MyType<'_>` as `*const Cell<Option<&mut MyType<'_>>>` is invalid } </ins>

<ins> error[E0261]: use of undeclared lifetime name `'unpinned` --> $DIR/ice-cast-type-with-error-124848.rs:7:32 | LL | struct MyType<'a>(Cell<Option<&'unpinned mut MyType<'a>>>, Pin); |               -                ^^^^^^^^^ undeclared lifetime |               | |               help: consider introducing lifetime `'unpinned` here: `'unpinned,` error[E0261]: use of undeclared lifetime name `'a` --> $DIR/ice-cast-type-with-error-124848.rs:14:53 | LL | fn main() { |        - help: consider introducing lifetime `'a` here: `<'a>` ... LL |     let bad_addr = &unpinned as *const Cell<Option<&'a mut MyType<'a>>> as usize; |                                                     ^^ undeclared lifetime error[E0261]: use of undeclared lifetime name `'a` --> $DIR/ice-cast-type-with-error-124848.rs:14:67 | LL | fn main() { |        - help: consider introducing lifetime `'a` here: `<'a>` ... LL |     let bad_addr = &unpinned as *const Cell<Option<&'a mut MyType<'a>>> as usize; |                                                                   ^^ undeclared lifetime error[E0412]: cannot find type `Pin` in this scope --> $DIR/ice-cast-type-with-error-124848.rs:7:60 | LL | struct MyType<'a>(Cell<Option<&'unpinned mut MyType<'a>>>, Pin); |                                                            ^^^ not found in this scope | help: consider importing this struct | LL + use std::pin::Pin; | error[E0061]: this struct takes 2 arguments but 1 argument was supplied --> $DIR/ice-cast-type-with-error-124848.rs:12:24 | LL |     let mut unpinned = MyType(Cell::new(None)); |                        ^^^^^^----------------- an argument is missing | note: tuple struct defined here --> $DIR/ice-cast-type-with-error-124848.rs:7:8 | LL | struct MyType<'a>(Cell<Option<&'unpinned mut MyType<'a>>>, Pin); |        ^^^^^^ help: provide the argument | LL |     let mut unpinned = MyType(Cell::new(None), /* value */); |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error[E0606]: casting `&MyType<'_>` as `*const Cell<Option<&mut MyType<'_>>>` is invalid --> $DIR/ice-cast-type-with-error-124848.rs:14:20 | LL |     let bad_addr = &unpinned as *const Cell<Option<&'a mut MyType<'a>>> as usize; |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: aborting due to 6 previous errors Some errors have detailed explanations: E0061, E0261, E0412, E0606. For more information about an error, try `rustc --explain E0061`. </ins>