Skip to content

Commit ce2021f

Browse files
authored
Merge pull request #2519 from rust-lang/rustc-pull
Rustc pull update
2 parents 84010e2 + c7334d5 commit ce2021f

File tree

1 file changed

+3
-13
lines changed
  • crates/hir-ty/src/layout

1 file changed

+3
-13
lines changed

crates/hir-ty/src/layout/adt.rs

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,19 @@
33
use std::{cmp, ops::Bound};
44

55
use hir_def::{
6-
AdtId, VariantId,
76
layout::{Integer, ReprOptions, TargetDataLayout},
87
signatures::{StructFlags, VariantFields},
8+
AdtId, VariantId,
99
};
1010
use intern::sym;
1111
use rustc_index::IndexVec;
1212
use smallvec::SmallVec;
1313
use triomphe::Arc;
1414

1515
use crate::{
16-
Substitution, TraitEnvironment,
1716
db::HirDatabase,
18-
layout::{Layout, LayoutError, field_ty},
17+
layout::{field_ty, Layout, LayoutError},
18+
Substitution, TraitEnvironment,
1919
};
2020

2121
use super::LayoutCx;
@@ -85,16 +85,6 @@ pub fn layout_of_adt_query(
8585
let d = db.const_eval_discriminant(e.enum_variants(db).variants[id.0].0).ok()?;
8686
Some((id, d))
8787
}),
88-
// FIXME: The current code for niche-filling relies on variant indices
89-
// instead of actual discriminants, so enums with
90-
// explicit discriminants (RFC #2363) would misbehave and we should disable
91-
// niche optimization for them.
92-
// The code that do it in rustc:
93-
// repr.inhibit_enum_layout_opt() || def
94-
// .variants()
95-
// .iter_enumerated()
96-
// .any(|(i, v)| v.discr != ty::VariantDiscr::Relative(i.as_u32()))
97-
repr.inhibit_enum_layout_opt(),
9888
!matches!(def, AdtId::EnumId(..))
9989
&& variants
10090
.iter()

0 commit comments

Comments
 (0)