diff options
| author | Bryanskiy <ivakin.kir@gmail.com> | 2024-06-10 21:21:46 +0300 |
|---|---|---|
| committer | Bryanskiy <ivakin.kir@gmail.com> | 2024-06-10 21:27:25 +0300 |
| commit | 6f78e6265a6b43ea53abf048efa688fa0cdb33d9 (patch) | |
| tree | d1cc0f1301365e147670e4d8a63ff4b52703911c /compiler/rustc_ast_lowering/src | |
| parent | 06194cadcd0948a7100b46737f61e82b8c00d632 (diff) | |
| download | rust-6f78e6265a6b43ea53abf048efa688fa0cdb33d9.tar.gz rust-6f78e6265a6b43ea53abf048efa688fa0cdb33d9.zip | |
Delegation: fix ICE on recursive delegation
Diffstat (limited to 'compiler/rustc_ast_lowering/src')
| -rw-r--r-- | compiler/rustc_ast_lowering/src/delegation.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/rustc_ast_lowering/src/delegation.rs b/compiler/rustc_ast_lowering/src/delegation.rs index 27f8a6eae02..d9dd0b3bca5 100644 --- a/compiler/rustc_ast_lowering/src/delegation.rs +++ b/compiler/rustc_ast_lowering/src/delegation.rs @@ -67,7 +67,9 @@ impl<'hir> LoweringContext<'_, 'hir> { return false; }; if let Some(local_sig_id) = sig_id.as_local() { - self.resolver.delegation_fn_sigs[&local_sig_id].has_self + // The value may be missing due to recursive delegation. + // Error will be emmited later during HIR ty lowering. + self.resolver.delegation_fn_sigs.get(&local_sig_id).map_or(false, |sig| sig.has_self) } else { match self.tcx.def_kind(sig_id) { DefKind::Fn => false, |
