Explain why "loading" constness from extern crates does not necessarily load anything
This commit is contained in:
parent
d9cca74ffc
commit
e2bbf0647a
@ -1360,11 +1360,15 @@ impl<'a, 'tcx> CrateMetadata {
|
||||
}
|
||||
}
|
||||
|
||||
// This replicates some of the logic of the crate-local `is_const_fn_raw` query, because we
|
||||
// don't serialize constness for tuple variant and tuple struct constructors.
|
||||
fn is_const_fn_raw(&self, id: DefIndex) -> bool {
|
||||
let constness = match self.kind(id) {
|
||||
EntryKind::Method(data) => data.decode(self).fn_data.constness,
|
||||
EntryKind::Fn(data) => data.decode(self).constness,
|
||||
// Some intrinsics can be const fn
|
||||
// Some intrinsics can be const fn. While we could recompute this (at least until we
|
||||
// stop having hardcoded whitelists and move to stability attributes), it seems cleaner
|
||||
// to treat all const fns equally.
|
||||
EntryKind::ForeignFn(data) => data.decode(self).constness,
|
||||
EntryKind::Variant(..) | EntryKind::Struct(..) => hir::Constness::Const,
|
||||
_ => hir::Constness::NotConst,
|
||||
|
Loading…
x
Reference in New Issue
Block a user