Skip to content

Commit 9f57edf

Browse files
committed
Auto merge of #132262 - matthiaskrgr:rollup-pcphi6l, r=matthiaskrgr
Rollup of 4 pull requests Successful merges: - #131391 (Stabilize `isqrt` feature) - #132248 (rustc_transmute: Directly use types from rustc_abi) - #132252 (compiler: rename LayoutS to LayoutData) - #132253 (Known-bug test for `keyword_idents` lint not propagating to other files) r? `@ghost` `@rustbot` modify labels: rollup
2 parents 32b17d5 + 2ca9b2c commit 9f57edf

File tree

24 files changed

+194
-178
lines changed

24 files changed

+194
-178
lines changed

Diff for: Cargo.lock

+1-1
Original file line numberDiff line numberDiff line change
@@ -4496,14 +4496,14 @@ name = "rustc_transmute"
44964496
version = "0.0.0"
44974497
dependencies = [
44984498
"itertools",
4499+
"rustc_abi",
44994500
"rustc_ast_ir",
45004501
"rustc_data_structures",
45014502
"rustc_hir",
45024503
"rustc_infer",
45034504
"rustc_macros",
45044505
"rustc_middle",
45054506
"rustc_span",
4506-
"rustc_target",
45074507
"tracing",
45084508
]
45094509

Diff for: compiler/rustc_abi/src/layout.rs

+21-21
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use tracing::debug;
77

88
use crate::{
99
Abi, AbiAndPrefAlign, Align, FieldsShape, HasDataLayout, IndexSlice, IndexVec, Integer,
10-
LayoutS, Niche, NonZeroUsize, Primitive, ReprOptions, Scalar, Size, StructKind, TagEncoding,
10+
LayoutData, Niche, NonZeroUsize, Primitive, ReprOptions, Scalar, Size, StructKind, TagEncoding,
1111
Variants, WrappingRange,
1212
};
1313

@@ -26,7 +26,7 @@ fn absent<'a, FieldIdx, VariantIdx, F>(fields: &IndexSlice<FieldIdx, F>) -> bool
2626
where
2727
FieldIdx: Idx,
2828
VariantIdx: Idx,
29-
F: Deref<Target = &'a LayoutS<FieldIdx, VariantIdx>> + fmt::Debug,
29+
F: Deref<Target = &'a LayoutData<FieldIdx, VariantIdx>> + fmt::Debug,
3030
{
3131
let uninhabited = fields.iter().any(|f| f.abi.is_uninhabited());
3232
// We cannot ignore alignment; that might lead us to entirely discard a variant and
@@ -89,7 +89,7 @@ impl<F> LayoutCalculatorError<F> {
8989
}
9090

9191
type LayoutCalculatorResult<FieldIdx, VariantIdx, F> =
92-
Result<LayoutS<FieldIdx, VariantIdx>, LayoutCalculatorError<F>>;
92+
Result<LayoutData<FieldIdx, VariantIdx>, LayoutCalculatorError<F>>;
9393

9494
#[derive(Clone, Copy, Debug)]
9595
pub struct LayoutCalculator<Cx> {
@@ -105,7 +105,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
105105
&self,
106106
a: Scalar,
107107
b: Scalar,
108-
) -> LayoutS<FieldIdx, VariantIdx> {
108+
) -> LayoutData<FieldIdx, VariantIdx> {
109109
let dl = self.cx.data_layout();
110110
let b_align = b.align(dl);
111111
let align = a.align(dl).max(b_align).max(dl.aggregate_align);
@@ -119,7 +119,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
119119
.chain(Niche::from_scalar(dl, Size::ZERO, a))
120120
.max_by_key(|niche| niche.available(dl));
121121

122-
LayoutS {
122+
LayoutData {
123123
variants: Variants::Single { index: VariantIdx::new(0) },
124124
fields: FieldsShape::Arbitrary {
125125
offsets: [Size::ZERO, b_offset].into(),
@@ -138,7 +138,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
138138
'a,
139139
FieldIdx: Idx,
140140
VariantIdx: Idx,
141-
F: Deref<Target = &'a LayoutS<FieldIdx, VariantIdx>> + fmt::Debug + Copy,
141+
F: Deref<Target = &'a LayoutData<FieldIdx, VariantIdx>> + fmt::Debug + Copy,
142142
>(
143143
&self,
144144
fields: &IndexSlice<FieldIdx, F>,
@@ -211,9 +211,9 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
211211

212212
pub fn layout_of_never_type<FieldIdx: Idx, VariantIdx: Idx>(
213213
&self,
214-
) -> LayoutS<FieldIdx, VariantIdx> {
214+
) -> LayoutData<FieldIdx, VariantIdx> {
215215
let dl = self.cx.data_layout();
216-
LayoutS {
216+
LayoutData {
217217
variants: Variants::Single { index: VariantIdx::new(0) },
218218
fields: FieldsShape::Primitive,
219219
abi: Abi::Uninhabited,
@@ -229,7 +229,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
229229
'a,
230230
FieldIdx: Idx,
231231
VariantIdx: Idx,
232-
F: Deref<Target = &'a LayoutS<FieldIdx, VariantIdx>> + fmt::Debug + Copy,
232+
F: Deref<Target = &'a LayoutData<FieldIdx, VariantIdx>> + fmt::Debug + Copy,
233233
>(
234234
&self,
235235
repr: &ReprOptions,
@@ -292,7 +292,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
292292
'a,
293293
FieldIdx: Idx,
294294
VariantIdx: Idx,
295-
F: Deref<Target = &'a LayoutS<FieldIdx, VariantIdx>> + fmt::Debug + Copy,
295+
F: Deref<Target = &'a LayoutData<FieldIdx, VariantIdx>> + fmt::Debug + Copy,
296296
>(
297297
&self,
298298
repr: &ReprOptions,
@@ -384,7 +384,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
384384
return Err(LayoutCalculatorError::EmptyUnion);
385385
};
386386

387-
Ok(LayoutS {
387+
Ok(LayoutData {
388388
variants: Variants::Single { index: only_variant_idx },
389389
fields: FieldsShape::Union(union_field_count),
390390
abi,
@@ -401,7 +401,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
401401
'a,
402402
FieldIdx: Idx,
403403
VariantIdx: Idx,
404-
F: Deref<Target = &'a LayoutS<FieldIdx, VariantIdx>> + fmt::Debug + Copy,
404+
F: Deref<Target = &'a LayoutData<FieldIdx, VariantIdx>> + fmt::Debug + Copy,
405405
>(
406406
&self,
407407
repr: &ReprOptions,
@@ -501,7 +501,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
501501
'a,
502502
FieldIdx: Idx,
503503
VariantIdx: Idx,
504-
F: Deref<Target = &'a LayoutS<FieldIdx, VariantIdx>> + fmt::Debug + Copy,
504+
F: Deref<Target = &'a LayoutData<FieldIdx, VariantIdx>> + fmt::Debug + Copy,
505505
>(
506506
&self,
507507
repr: &ReprOptions,
@@ -516,8 +516,8 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
516516
// overall LayoutS. Store the overall LayoutS
517517
// and the variant LayoutSs here until then.
518518
struct TmpLayout<FieldIdx: Idx, VariantIdx: Idx> {
519-
layout: LayoutS<FieldIdx, VariantIdx>,
520-
variants: IndexVec<VariantIdx, LayoutS<FieldIdx, VariantIdx>>,
519+
layout: LayoutData<FieldIdx, VariantIdx>,
520+
variants: IndexVec<VariantIdx, LayoutData<FieldIdx, VariantIdx>>,
521521
}
522522

523523
let dl = self.cx.data_layout();
@@ -649,7 +649,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
649649
Abi::Aggregate { sized: true }
650650
};
651651

652-
let layout = LayoutS {
652+
let layout = LayoutData {
653653
variants: Variants::Multiple {
654654
tag: niche_scalar,
655655
tag_encoding: TagEncoding::Niche {
@@ -958,7 +958,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
958958

959959
let largest_niche = Niche::from_scalar(dl, Size::ZERO, tag);
960960

961-
let tagged_layout = LayoutS {
961+
let tagged_layout = LayoutData {
962962
variants: Variants::Multiple {
963963
tag,
964964
tag_encoding: TagEncoding::Direct,
@@ -1013,7 +1013,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
10131013
'a,
10141014
FieldIdx: Idx,
10151015
VariantIdx: Idx,
1016-
F: Deref<Target = &'a LayoutS<FieldIdx, VariantIdx>> + fmt::Debug + Copy,
1016+
F: Deref<Target = &'a LayoutData<FieldIdx, VariantIdx>> + fmt::Debug + Copy,
10171017
>(
10181018
&self,
10191019
fields: &IndexSlice<FieldIdx, F>,
@@ -1341,7 +1341,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
13411341
unadjusted_abi_align
13421342
};
13431343

1344-
Ok(LayoutS {
1344+
Ok(LayoutData {
13451345
variants: Variants::Single { index: VariantIdx::new(0) },
13461346
fields: FieldsShape::Arbitrary { offsets, memory_index },
13471347
abi,
@@ -1357,10 +1357,10 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
13571357
'a,
13581358
FieldIdx: Idx,
13591359
VariantIdx: Idx,
1360-
F: Deref<Target = &'a LayoutS<FieldIdx, VariantIdx>> + fmt::Debug,
1360+
F: Deref<Target = &'a LayoutData<FieldIdx, VariantIdx>> + fmt::Debug,
13611361
>(
13621362
&self,
1363-
layout: &LayoutS<FieldIdx, VariantIdx>,
1363+
layout: &LayoutData<FieldIdx, VariantIdx>,
13641364
fields: &IndexSlice<FieldIdx, F>,
13651365
) -> String {
13661366
let dl = self.cx.data_layout();

Diff for: compiler/rustc_abi/src/layout/ty.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ rustc_index::newtype_index! {
5858
}
5959
#[derive(Copy, Clone, PartialEq, Eq, Hash, HashStable_Generic)]
6060
#[rustc_pass_by_value]
61-
pub struct Layout<'a>(pub Interned<'a, LayoutS<FieldIdx, VariantIdx>>);
61+
pub struct Layout<'a>(pub Interned<'a, LayoutData<FieldIdx, VariantIdx>>);
6262

6363
impl<'a> fmt::Debug for Layout<'a> {
6464
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
@@ -68,8 +68,8 @@ impl<'a> fmt::Debug for Layout<'a> {
6868
}
6969

7070
impl<'a> Deref for Layout<'a> {
71-
type Target = &'a LayoutS<FieldIdx, VariantIdx>;
72-
fn deref(&self) -> &&'a LayoutS<FieldIdx, VariantIdx> {
71+
type Target = &'a LayoutData<FieldIdx, VariantIdx>;
72+
fn deref(&self) -> &&'a LayoutData<FieldIdx, VariantIdx> {
7373
&self.0.0
7474
}
7575
}
@@ -142,8 +142,8 @@ impl<'a, Ty: fmt::Display> fmt::Debug for TyAndLayout<'a, Ty> {
142142
}
143143

144144
impl<'a, Ty> Deref for TyAndLayout<'a, Ty> {
145-
type Target = &'a LayoutS<FieldIdx, VariantIdx>;
146-
fn deref(&self) -> &&'a LayoutS<FieldIdx, VariantIdx> {
145+
type Target = &'a LayoutData<FieldIdx, VariantIdx>;
146+
fn deref(&self) -> &&'a LayoutData<FieldIdx, VariantIdx> {
147147
&self.layout.0.0
148148
}
149149
}

Diff for: compiler/rustc_abi/src/lib.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -1485,7 +1485,7 @@ pub enum Variants<FieldIdx: Idx, VariantIdx: Idx> {
14851485
tag: Scalar,
14861486
tag_encoding: TagEncoding<VariantIdx>,
14871487
tag_field: usize,
1488-
variants: IndexVec<VariantIdx, LayoutS<FieldIdx, VariantIdx>>,
1488+
variants: IndexVec<VariantIdx, LayoutData<FieldIdx, VariantIdx>>,
14891489
},
14901490
}
14911491

@@ -1603,7 +1603,7 @@ impl Niche {
16031603
// NOTE: This struct is generic over the FieldIdx and VariantIdx for rust-analyzer usage.
16041604
#[derive(PartialEq, Eq, Hash, Clone)]
16051605
#[cfg_attr(feature = "nightly", derive(HashStable_Generic))]
1606-
pub struct LayoutS<FieldIdx: Idx, VariantIdx: Idx> {
1606+
pub struct LayoutData<FieldIdx: Idx, VariantIdx: Idx> {
16071607
/// Says where the fields are located within the layout.
16081608
pub fields: FieldsShape<FieldIdx>,
16091609

@@ -1643,7 +1643,7 @@ pub struct LayoutS<FieldIdx: Idx, VariantIdx: Idx> {
16431643
pub unadjusted_abi_align: Align,
16441644
}
16451645

1646-
impl<FieldIdx: Idx, VariantIdx: Idx> LayoutS<FieldIdx, VariantIdx> {
1646+
impl<FieldIdx: Idx, VariantIdx: Idx> LayoutData<FieldIdx, VariantIdx> {
16471647
/// Returns `true` if this is an aggregate type (including a ScalarPair!)
16481648
pub fn is_aggregate(&self) -> bool {
16491649
match self.abi {
@@ -1656,7 +1656,7 @@ impl<FieldIdx: Idx, VariantIdx: Idx> LayoutS<FieldIdx, VariantIdx> {
16561656
let largest_niche = Niche::from_scalar(cx, Size::ZERO, scalar);
16571657
let size = scalar.size(cx);
16581658
let align = scalar.align(cx);
1659-
LayoutS {
1659+
LayoutData {
16601660
variants: Variants::Single { index: VariantIdx::new(0) },
16611661
fields: FieldsShape::Primitive,
16621662
abi: Abi::Scalar(scalar),
@@ -1669,7 +1669,7 @@ impl<FieldIdx: Idx, VariantIdx: Idx> LayoutS<FieldIdx, VariantIdx> {
16691669
}
16701670
}
16711671

1672-
impl<FieldIdx: Idx, VariantIdx: Idx> fmt::Debug for LayoutS<FieldIdx, VariantIdx>
1672+
impl<FieldIdx: Idx, VariantIdx: Idx> fmt::Debug for LayoutData<FieldIdx, VariantIdx>
16731673
where
16741674
FieldsShape<FieldIdx>: fmt::Debug,
16751675
Variants<FieldIdx, VariantIdx>: fmt::Debug,
@@ -1678,7 +1678,7 @@ where
16781678
// This is how `Layout` used to print before it become
16791679
// `Interned<LayoutS>`. We print it like this to avoid having to update
16801680
// expected output in a lot of tests.
1681-
let LayoutS {
1681+
let LayoutData {
16821682
size,
16831683
align,
16841684
abi,
@@ -1723,7 +1723,7 @@ pub struct PointeeInfo {
17231723
pub safe: Option<PointerKind>,
17241724
}
17251725

1726-
impl<FieldIdx: Idx, VariantIdx: Idx> LayoutS<FieldIdx, VariantIdx> {
1726+
impl<FieldIdx: Idx, VariantIdx: Idx> LayoutData<FieldIdx, VariantIdx> {
17271727
/// Returns `true` if the layout corresponds to an unsized type.
17281728
#[inline]
17291729
pub fn is_unsized(&self) -> bool {

Diff for: compiler/rustc_codegen_cranelift/src/abi/comments.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ pub(super) fn add_local_place_comments<'tcx>(
7979
return;
8080
}
8181
let TyAndLayout { ty, layout } = place.layout();
82-
let rustc_target::abi::LayoutS { size, align, .. } = layout.0.0;
82+
let rustc_abi::LayoutData { size, align, .. } = layout.0.0;
8383

8484
let (kind, extra) = place.debug_comment();
8585

Diff for: compiler/rustc_middle/src/arena.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
macro_rules! arena_types {
99
($macro:path) => (
1010
$macro!([
11-
[] layout: rustc_target::abi::LayoutS<rustc_target::abi::FieldIdx, rustc_target::abi::VariantIdx>,
11+
[] layout: rustc_abi::LayoutData<rustc_abi::FieldIdx, rustc_abi::VariantIdx>,
1212
[] fn_abi: rustc_target::abi::call::FnAbi<'tcx, rustc_middle::ty::Ty<'tcx>>,
1313
// AdtDef are interned and compared by address
1414
[decode] adt_def: rustc_middle::ty::AdtDefData,

Diff for: compiler/rustc_middle/src/ty/context.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use std::marker::PhantomData;
1212
use std::ops::{Bound, Deref};
1313
use std::{fmt, iter, mem};
1414

15-
use rustc_abi::{FieldIdx, Layout, LayoutS, TargetDataLayout, VariantIdx};
15+
use rustc_abi::{FieldIdx, Layout, LayoutData, TargetDataLayout, VariantIdx};
1616
use rustc_ast::{self as ast, attr};
1717
use rustc_data_structures::defer;
1818
use rustc_data_structures::fingerprint::Fingerprint;
@@ -766,7 +766,7 @@ pub struct CtxtInterners<'tcx> {
766766
pat: InternedSet<'tcx, PatternKind<'tcx>>,
767767
const_allocation: InternedSet<'tcx, Allocation>,
768768
bound_variable_kinds: InternedSet<'tcx, List<ty::BoundVariableKind>>,
769-
layout: InternedSet<'tcx, LayoutS<FieldIdx, VariantIdx>>,
769+
layout: InternedSet<'tcx, LayoutData<FieldIdx, VariantIdx>>,
770770
adt_def: InternedSet<'tcx, AdtDefData>,
771771
external_constraints: InternedSet<'tcx, ExternalConstraintsData<TyCtxt<'tcx>>>,
772772
predefined_opaques_in_body: InternedSet<'tcx, PredefinedOpaquesData<TyCtxt<'tcx>>>,
@@ -2469,7 +2469,7 @@ direct_interners! {
24692469
region: pub(crate) intern_region(RegionKind<'tcx>): Region -> Region<'tcx>,
24702470
pat: pub mk_pat(PatternKind<'tcx>): Pattern -> Pattern<'tcx>,
24712471
const_allocation: pub mk_const_alloc(Allocation): ConstAllocation -> ConstAllocation<'tcx>,
2472-
layout: pub mk_layout(LayoutS<FieldIdx, VariantIdx>): Layout -> Layout<'tcx>,
2472+
layout: pub mk_layout(LayoutData<FieldIdx, VariantIdx>): Layout -> Layout<'tcx>,
24732473
adt_def: pub mk_adt_def_from_data(AdtDefData): AdtDef -> AdtDef<'tcx>,
24742474
external_constraints: pub mk_external_constraints(ExternalConstraintsData<TyCtxt<'tcx>>):
24752475
ExternalConstraints -> ExternalConstraints<'tcx>,

Diff for: compiler/rustc_middle/src/ty/layout.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use std::{cmp, fmt};
44

55
use rustc_abi::Primitive::{self, Float, Int, Pointer};
66
use rustc_abi::{
7-
Abi, AddressSpace, Align, FieldsShape, HasDataLayout, Integer, LayoutCalculator, LayoutS,
7+
Abi, AddressSpace, Align, FieldsShape, HasDataLayout, Integer, LayoutCalculator, LayoutData,
88
PointeeInfo, PointerKind, ReprOptions, Scalar, Size, TagEncoding, TargetDataLayout, Variants,
99
};
1010
use rustc_error_messages::DiagMessage;
@@ -751,7 +751,7 @@ where
751751
ty::Adt(def, _) => def.variant(variant_index).fields.len(),
752752
_ => bug!("`ty_and_layout_for_variant` on unexpected type {}", this.ty),
753753
};
754-
tcx.mk_layout(LayoutS {
754+
tcx.mk_layout(LayoutData {
755755
variants: Variants::Single { index: variant_index },
756756
fields: match NonZero::new(fields) {
757757
Some(fields) => FieldsShape::Union(fields),
@@ -788,7 +788,7 @@ where
788788
let tcx = cx.tcx();
789789
let tag_layout = |tag: Scalar| -> TyAndLayout<'tcx> {
790790
TyAndLayout {
791-
layout: tcx.mk_layout(LayoutS::scalar(cx, tag)),
791+
layout: tcx.mk_layout(LayoutData::scalar(cx, tag)),
792792
ty: tag.primitive().to_ty(tcx),
793793
}
794794
};

Diff for: compiler/rustc_smir/src/rustc_smir/convert/abi.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ impl<'tcx> Stable<'tcx> for rustc_target::abi::Layout<'tcx> {
5050
}
5151

5252
impl<'tcx> Stable<'tcx>
53-
for rustc_abi::LayoutS<rustc_target::abi::FieldIdx, rustc_target::abi::VariantIdx>
53+
for rustc_abi::LayoutData<rustc_target::abi::FieldIdx, rustc_target::abi::VariantIdx>
5454
{
5555
type T = LayoutShape;
5656

Diff for: compiler/rustc_transmute/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,26 @@ edition = "2021"
55

66
[dependencies]
77
# tidy-alphabetical-start
8+
rustc_abi = { path = "../rustc_abi", optional = true }
89
rustc_ast_ir = { path = "../rustc_ast_ir", optional = true }
910
rustc_data_structures = { path = "../rustc_data_structures" }
1011
rustc_hir = { path = "../rustc_hir", optional = true }
1112
rustc_infer = { path = "../rustc_infer", optional = true }
1213
rustc_macros = { path = "../rustc_macros", optional = true }
1314
rustc_middle = { path = "../rustc_middle", optional = true }
1415
rustc_span = { path = "../rustc_span", optional = true }
15-
rustc_target = { path = "../rustc_target", optional = true }
1616
tracing = "0.1"
1717
# tidy-alphabetical-end
1818

1919
[features]
2020
rustc = [
21+
"dep:rustc_abi",
22+
"dep:rustc_ast_ir",
2123
"dep:rustc_hir",
2224
"dep:rustc_infer",
2325
"dep:rustc_macros",
2426
"dep:rustc_middle",
2527
"dep:rustc_span",
26-
"dep:rustc_target",
27-
"dep:rustc_ast_ir",
2828
]
2929

3030
[dev-dependencies]

0 commit comments

Comments
 (0)