Ralf Jung
a2bcafa500
interpret: refactor projection code to work on a common trait, and use that for visitors
2023-07-25 14:30:58 +02:00
Mahdi Dibaiee
e55583c4b8
refactor(rustc_middle): Substs -> GenericArg
2023-07-14 13:27:35 +01:00
Nilstrieb
70b6a74c3c
Add enum for can_access_statics
boolean
...
`/*can_access_statics:*/ false` is one of the ways to do this, but not
the one I like.
2023-06-24 20:40:40 +00:00
Ralf Jung
25e9b79060
interpret: fail more gracefully on uninit unsized locals
2023-04-28 14:42:03 +02:00
Scott McMurray
4abb455529
Update ty::VariantDef
to use IndexVec<FieldIdx, FieldDef>
...
And while doing the updates for that, also uses `FieldIdx` in `ProjectionKind::Field` and `TypeckResults::field_indices`.
There's more places that could use it (like `rustc_const_eval` and `LayoutS`), but I tried to keep this PR from exploding to *even more* places.
Part 2/? of https://github.com/rust-lang/compiler-team/issues/606
2023-03-30 09:23:40 -07:00
Scott McMurray
0439d13176
Refactor: VariantIdx::from_u32(0)
-> FIRST_VARIANT
...
Since structs are always `VariantIdx(0)`, there's a bunch of files where the only reason they had `VariantIdx` or `vec::Idx` imported at all was to get the first variant.
So this uses a constant for that, and adds some doc-comments to `VariantIdx` while I'm there, since it doesn't have any today.
2023-03-25 18:58:25 -07:00
Oli Scherer
38b7cdf393
Use target instead of machine for mir interpreter integer handling.
...
The naming of `machine` only makes sense from a mir interpreter internals perspective, but outside users talk about the `target` platform
2023-02-15 08:56:18 +00:00
Nicholas Nethercote
7a72560154
Reduce direct mk_ty
usage.
...
We use more specific `mk_*` functions in most places, might as well use
them as much as possible.
2023-02-13 09:32:48 +11:00
Camille GILLOT
1974b6b68d
Introduce GeneratorWitnessMIR.
2023-01-27 18:58:44 +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
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
f632dbe46f
The <*const T>::guaranteed_*
methods now return an option for the unknown case
2022-09-09 15:16:04 +00:00
Oli Scherer
1fc9ef1edd
tracing::instrument cleanup
2022-09-01 14:54:27 +00:00
Ralf Jung
30fa931f92
make read_immediate error immediately on uninit, so ImmTy can carry initialized Scalar
2022-08-26 13:20:57 -04:00
Ralf Jung
c4cb043f06
interpret/visitor: support visiting with a PlaceTy
2022-07-15 11:54:20 -04:00
Ralf Jung
4e7aaf1f44
tweak names and output and bless
2022-07-09 07:43:56 -04:00
Ralf Jung
ac265cdc19
review feedback
2022-07-09 07:27:29 -04:00
Ralf Jung
a422b42159
don't allow ZST in ScalarInt
...
There are several indications that we should not ZST as a ScalarInt:
- We had two ways to have ZST valtrees, either an empty `Branch` or a `Leaf` with a ZST in it.
`ValTree::zst()` used the former, but the latter could possibly arise as well.
- Likewise, the interpreter had `Immediate::Uninit` and `Immediate::Scalar(Scalar::ZST)`.
- LLVM codegen already had to special-case ZST ScalarInt.
So instead add new ZST variants to those types that did not have other variants
which could be used for this purpose.
2022-07-09 07:27:29 -04:00
Ralf Jung
f60ec83779
interpret: add From<&MplaceTy> for PlaceTy
2022-06-29 17:13:13 -04:00
b-naber
8093db6e2b
correctly create Scalar for meta info
2022-06-14 16:11:36 +02:00
b-naber
dbef6e4507
address review
2022-06-14 16:08:18 +02:00
b-naber
705d818bd5
implement valtrees as the type-system representation for constant values
2022-06-14 16:07:11 +02:00
b-naber
96b36d6eb2
use GlobalId in eval_to_valtree query and introduce query for valtree_to_const_val
2022-05-16 15:58:15 +02:00
klensy
7f318256c9
fix clippy expect_fun_call
2022-05-12 19:26:52 +03:00
b-naber
ef5f07256c
combine all unsized types and add another recursive call to process nested unsized types correctly
2022-04-27 16:58:16 +02:00
b-naber
bfefb4d74c
account for custom DSTs in valtree -> constvalue conversion
2022-04-26 18:40:15 +02:00
b-naber
f7eae4e580
include valtree creation and valtree -> constvalue conversion in debug assertions check
2022-04-24 10:59:21 +02:00
b-naber
bc698c73e9
deduplicate a lot of code
2022-04-21 23:11:06 +02:00
b-naber
1157dc7167
implement valtree -> constvalue conversion
2022-04-21 15:53:26 +02:00