diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2022-04-25 22:08:45 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2022-05-02 01:56:50 +0300 |
| commit | 5b5964f569ca07ba54710cb440aacaa1cf1e5c1a (patch) | |
| tree | 2bfa7457d9fde6a513c41e9e7a7d10282e92bf39 /compiler/rustc_middle/src/hir/map | |
| parent | a933de83989471ac444a13d62996d30621542654 (diff) | |
| download | rust-5b5964f569ca07ba54710cb440aacaa1cf1e5c1a.tar.gz rust-5b5964f569ca07ba54710cb440aacaa1cf1e5c1a.zip | |
rustc: Panic by default in `DefIdTree::parent`
Only crate root def-ids don't have a parent, and in majority of cases the argument of `DefIdTree::parent` cannot be a crate root. So we now panic by default in `parent` and introduce a new non-panicing function `opt_parent` for cases where the argument can be a crate root. Same applies to `local_parent`/`opt_local_parent`.
Diffstat (limited to 'compiler/rustc_middle/src/hir/map')
| -rw-r--r-- | compiler/rustc_middle/src/hir/map/mod.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/rustc_middle/src/hir/map/mod.rs b/compiler/rustc_middle/src/hir/map/mod.rs index e0ed4022839..85e53559c29 100644 --- a/compiler/rustc_middle/src/hir/map/mod.rs +++ b/compiler/rustc_middle/src/hir/map/mod.rs @@ -546,7 +546,7 @@ impl<'hir> Map<'hir> { let def_kind = self.tcx.def_kind(def_id); match def_kind { DefKind::Trait | DefKind::TraitAlias => def_id, - DefKind::TyParam | DefKind::ConstParam => self.tcx.local_parent(def_id).unwrap(), + DefKind::TyParam | DefKind::ConstParam => self.tcx.local_parent(def_id), _ => bug!("ty_param_owner: {:?} is a {:?} not a type parameter", def_id, def_kind), } } |
