| //! Regression test for <https://github.com/rust-lang/rust/issues/133272>, where a `ref Self` ctor |
| //! makes it possible to hit a `delayed_bug` that was converted into a `span_bug` in |
| //! <https://github.com/rust-lang/rust/pull/121208>, and hitting this reveals that we did not have |
| //! test coverage for this specific code pattern (heh) previously. |
| //! |
| //! # References |
| //! |
| //! - ICE bug report: <https://github.com/rust-lang/rust/issues/133272>. |
| //! - Previous PR to change `delayed_bug` -> `span_bug`: |
| //! <https://github.com/rust-lang/rust/pull/121208> |
| #![crate_type = "lib"] |
| |
| struct Foo; |
| |
| impl Foo { |
| fn fun() { |
| let S { ref Self } = todo!(); |
| //~^ ERROR expected identifier, found keyword `Self` |
| //~| ERROR cannot find struct, variant or union type `S` in this scope |
| } |
| } |