Kyle Matsuda
d822b97a27
change usages of type_of to bound_type_of
2023-02-16 17:01:52 -07:00
Dylan DPC
9800dbe883
Rollup merge of #107163 - mikebenfield:parameters-pr, r=TaKO8Ki
...
Remove some superfluous type parameters from layout.rs.
Specifically remove V, which can always be VariantIdx, and F, which can always be Layout.
2023-02-15 12:24:54 +05:30
Oli Scherer
936bf29d4c
s/eval_usize/eval_target_usize/ for clarity
2023-02-14 08:51:19 +00:00
lcnr
9e84b00d44
layout: deal with placeholders, ICE on bound types
...
a placeholder type is the same as a param as they
represent "this could be any type". A bound type
represents a type inside of a `for<T>` or `exists<T>`.
When entering a forall or exists `T` should be
instantiated as a existential (inference var) or universal
(placeholder). You should never observe a bound variable
without its binder.
2023-02-13 10:47:12 +01:00
Arpad Borsos
dae00152e7
Sort Generator print-type-sizes
according to their yield points
...
Especially when trying to diagnose runaway future sizes, it might be
more intuitive to sort the variants according to the control flow
(aka their yield points) rather than the size of the variants.
2023-02-05 17:34:33 +01:00
Felix S. Klock II
a37b3061fc
Extend -Z print-type-sizes
to distinguish generator upvars and locals from "normal" ADT fields.
2023-01-31 15:59:29 -05:00
Camille GILLOT
e2387ad484
Remember where a type was kept in MIR.
2023-01-27 18:59:32 +00:00
Camille GILLOT
1974b6b68d
Introduce GeneratorWitnessMIR.
2023-01-27 18:58:44 +00:00
Erik Desjardins
009192b01b
abi: add AddressSpace
field to Primitive::Pointer
...
...and remove it from `PointeeInfo`, which isn't meant for this.
There are still various places (marked with FIXMEs) that assume all pointers
have the same size and alignment. Fixing this requires parsing non-default
address spaces in the data layout string, which will be done in a followup.
2023-01-22 23:41:39 -05:00
Michael Benfield
8df27d07ae
Remove some superfluous type parameters from layout.rs.
...
Specifically remove V, which can always be VariantIdx, and F, which can
always be Layout.
2023-01-21 10:22:31 -08:00
Michael Goulet
b25da9ce6d
layout_of: T: Thin
implies sizeof(&T) == sizeof(usize)
2023-01-04 00:56:05 +00:00
Jeremy Stucki
3dde32ca97
rustc: Remove needless lifetimes
2022-12-20 22:10:40 +01:00
Matthias Krüger
5d24760245
Rollup merge of #105623 - compiler-errors:generator-type-size-fix, r=Nilstrieb
...
Fix `-Z print-type-sizes` for generators with discriminant field ordered first
Fixes #105589
Fixes #105591
2022-12-15 12:46:00 +01:00
Michael Goulet
5f5ae17f4e
Consider discriminant fields that are ordered before variant fields
2022-12-14 17:50:20 +00:00
Michael Goulet
96cb18e864
Combine identical alias arms
2022-12-13 17:48:55 +00:00
Michael Goulet
61adaf8187
Combine projection and opaque into alias
2022-12-13 17:48:55 +00:00
Michael Goulet
7d23e29f9f
Pull out logic into distinct functions
2022-12-08 04:59:10 +00:00
Michael Goulet
57b722688d
Properly print generator interior type sizes
2022-12-07 18:33:26 +00:00
Michael Goulet
b45b9489bb
Compute generator sizes with -Zprint_type_sizes
2022-12-07 03:10:56 +00:00
Oli Scherer
2b8963a94c
Some manual formatting of let..else statements
2022-11-25 08:00:02 +00:00
hkalbasi
390a637e29
move things from rustc_target::abi to rustc_abi
2022-11-24 16:26:13 +03:30
hkalbasi
27fb904d68
move some layout logic to rustc_target::abi::layout
2022-11-24 16:26:12 +03:30
hkalbasi
09a384643e
make rustc_target usable outside of rustc
2022-11-24 16:26:12 +03:30
The 8472
97d8a9bdd3
also sort fields by niche sizes to retain optimizations
2022-11-22 23:12:26 +01:00
The 8472
a3450d060d
group fields based on largest power of two dividing its size
2022-11-22 23:12:26 +01:00
The 8472
9f0cb566ea
optimize field ordering by grouping power-of-two arrays with larger types
2022-11-22 23:12:26 +01:00
Cameron Steffen
cc8dddbac9
Factor out conservative_is_privately_uninhabited
2022-11-20 19:04:11 -06:00
Ralf Jung
c78021709a
add is_sized method on Abi and Layout, and use it
2022-11-13 12:23:53 +01:00
Maybe Waffle
a17ccfa621
Accept TyCtxt
instead of TyCtxtAt
in Ty::is_*
functions
...
Functions in answer:
- `Ty::is_freeze`
- `Ty::is_sized`
- `Ty::is_unpin`
- `Ty::is_copy_modulo_regions`
2022-10-27 15:06:08 +04:00
Oli Scherer
c7b6ebdf7c
It's not about types or consts, but the lack of regions
2022-10-04 14:10:44 +00:00
Cameron Steffen
95b689b1d5
Move utils from rustc_middle to rustc_ty_utils
2022-10-03 09:12:03 -05:00