diff options
| author | The rustc-josh-sync Cronjob Bot <github-actions@github.com> | 2025-07-28 06:31:02 +0000 |
|---|---|---|
| committer | The rustc-josh-sync Cronjob Bot <github-actions@github.com> | 2025-07-28 06:31:02 +0000 |
| commit | f06945f047cb7bc233324ec6bd87481948a17b7b (patch) | |
| tree | b2bd88168ad92eb439e19304404059e581c05824 /src/tools/rust-analyzer | |
| parent | d344aa849006a9a36928b4bb5f36fea7b6b5476a (diff) | |
| parent | 733dab558992d902d6d17576de1da768094e2cf3 (diff) | |
| download | rust-f06945f047cb7bc233324ec6bd87481948a17b7b.tar.gz rust-f06945f047cb7bc233324ec6bd87481948a17b7b.zip | |
Merge ref '733dab558992' from rust-lang/rust
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: 733dab558992d902d6d17576de1da768094e2cf3 Filtered ref: 8f0faf94fb41d4e2a85ef2d23e5495f6bea1f31d This merge was created using https://github.com/rust-lang/josh-sync.
Diffstat (limited to 'src/tools/rust-analyzer')
| -rw-r--r-- | src/tools/rust-analyzer/crates/hir-ty/src/layout/adt.rs | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/src/tools/rust-analyzer/crates/hir-ty/src/layout/adt.rs b/src/tools/rust-analyzer/crates/hir-ty/src/layout/adt.rs index 236f316366d..372a9dfc43d 100644 --- a/src/tools/rust-analyzer/crates/hir-ty/src/layout/adt.rs +++ b/src/tools/rust-analyzer/crates/hir-ty/src/layout/adt.rs @@ -3,9 +3,9 @@ use std::{cmp, ops::Bound}; use hir_def::{ - AdtId, VariantId, layout::{Integer, ReprOptions, TargetDataLayout}, signatures::{StructFlags, VariantFields}, + AdtId, VariantId, }; use intern::sym; use rustc_index::IndexVec; @@ -13,9 +13,9 @@ use smallvec::SmallVec; use triomphe::Arc; use crate::{ - Substitution, TraitEnvironment, db::HirDatabase, - layout::{Layout, LayoutError, field_ty}, + layout::{field_ty, Layout, LayoutError}, + Substitution, TraitEnvironment, }; use super::LayoutCx; @@ -85,16 +85,6 @@ pub fn layout_of_adt_query( let d = db.const_eval_discriminant(e.enum_variants(db).variants[id.0].0).ok()?; Some((id, d)) }), - // FIXME: The current code for niche-filling relies on variant indices - // instead of actual discriminants, so enums with - // explicit discriminants (RFC #2363) would misbehave and we should disable - // niche optimization for them. - // The code that do it in rustc: - // repr.inhibit_enum_layout_opt() || def - // .variants() - // .iter_enumerated() - // .any(|(i, v)| v.discr != ty::VariantDiscr::Relative(i.as_u32())) - repr.inhibit_enum_layout_opt(), !matches!(def, AdtId::EnumId(..)) && variants .iter() |
