Delay a bug when we see SelfCtor in ref pattern

This commit is contained in:
Michael Goulet 2022-04-10 20:55:10 -07:00
parent 18f32b73bd
commit 285b9d1cd4
3 changed files with 29 additions and 0 deletions

View file

@ -1870,6 +1870,15 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
// These entities are explicitly allowed to be shadowed by fresh bindings.
None
}
Res::SelfCtor(_) => {
// We resolve `Self` in pattern position as an ident sometimes during recovery,
// so delay a bug instead of ICEing.
self.r.session.delay_span_bug(
ident.span,
"unexpected `SelfCtor` in pattern, expected identifier"
);
None
}
_ => span_bug!(
ident.span,
"unexpected resolution for an identifier in pattern: {:?}",