Skip to content

Commit 1eef17e

Browse files
committed
Fix crash for CrateItem::kind() with constructors
Change how we classify item kind for DefKind::Ctor
1 parent 36bb79f commit 1eef17e

File tree

1 file changed

+8
-5
lines changed
  • compiler/rustc_smir/src/rustc_smir

1 file changed

+8
-5
lines changed

compiler/rustc_smir/src/rustc_smir/mod.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
//!
88
//! For now, we are developing everything inside `rustc`, thus, we keep this module private.
99
10-
use rustc_hir::def::DefKind;
10+
use rustc_hir::def::{CtorKind, DefKind};
1111
use rustc_middle::mir;
1212
use rustc_middle::mir::interpret::AllocId;
1313
use rustc_middle::ty::{self, Instance, Ty, TyCtxt};
@@ -85,14 +85,17 @@ pub(crate) fn new_item_kind(kind: DefKind) -> ItemKind {
8585
| DefKind::Field
8686
| DefKind::LifetimeParam
8787
| DefKind::Impl { .. }
88-
| DefKind::Ctor(_, _)
8988
| DefKind::GlobalAsm => {
9089
unreachable!("Not a valid item kind: {kind:?}");
9190
}
92-
DefKind::Closure | DefKind::AssocFn | DefKind::Fn => ItemKind::Fn,
93-
DefKind::Const | DefKind::InlineConst | DefKind::AssocConst | DefKind::AnonConst => {
94-
ItemKind::Const
91+
DefKind::Ctor(_, CtorKind::Fn) | DefKind::Closure | DefKind::AssocFn | DefKind::Fn => {
92+
ItemKind::Fn
9593
}
94+
DefKind::Ctor(_, CtorKind::Const)
95+
| DefKind::Const
96+
| DefKind::InlineConst
97+
| DefKind::AssocConst
98+
| DefKind::AnonConst => ItemKind::Const,
9699
DefKind::Static(_) => ItemKind::Static,
97100
}
98101
}

0 commit comments

Comments
 (0)