Ralf Jung
7cdeff266c
a bit of meta-related cleanup on Projectable
2023-08-30 13:46:55 +02:00
Ralf Jung
a09df43d9f
move marking-locals-live out of push_stack_frame, so it happens with argument passing
...
this entirely avoids even creating unsized locals in Immediate::Uninitialized state
2023-08-30 13:46:54 +02:00
Ralf Jung
bdd5855b8e
interpret: fix projecting into an unsized field of a local
...
new invariant: Place::Local never refers to something unsized
2023-08-30 13:43:34 +02:00
Ralf Jung
b2ebf1c23f
const_eval and codegen: audit uses of is_zst
2023-08-29 09:03:46 +02:00
Deadbeef
e6b423aebb
Remove constness from ParamEnv
2023-07-27 15:50:42 +00:00
Ralf Jung
da3f0d0eb7
make MPlaceTy non-Copy
2023-07-25 22:35:07 +02:00
Ralf Jung
77ff1b83cd
interpret: make read functions generic over operand type
2023-07-25 22:33:59 +02:00
Ralf Jung
00fb45dccd
interpret: make write functions generic over the place type
2023-07-25 22:33:58 +02:00
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
Ralf Jung
a593de4fab
interpret: support projecting into Place::Local without force_allocation
2023-07-24 15:35:47 +02:00
Ralf Jung
41a73d8251
clarify MIR uninit vs LLVM undef/poison
2023-07-20 18:43:54 +02:00
Mahdi Dibaiee
e55583c4b8
refactor(rustc_middle): Substs -> GenericArg
2023-07-14 13:27:35 +01:00
Ralf Jung
dd453a6a99
miri: protect Move() function arguments during the call
2023-07-11 21:59:01 +02:00
Oli Scherer
09b89efa70
Remove a function argument that is always passed with the same value.
2023-07-05 15:54:43 +00:00
Oli Scherer
4dcf988360
Specialize try_destructure_mir_constant for its sole user
2023-07-05 15:54:43 +00:00
Tomasz Miąsko
67f455afe1
Suppress "erroneous constant used" for constants tainted by errors
...
When constant evaluation fails because its MIR is tainted by errors,
suppress note indicating that erroneous constant was used, since those
errors have to be fixed regardless of the constant being used or not.
2023-05-15 00:00:00 +00:00
Ralf Jung
25e9b79060
interpret: fail more gracefully on uninit unsized locals
2023-04-28 14:42:03 +02:00
Oli Scherer
b5d96d5ec5
Move a const-prop-lint specific hack from mir interpret to const-prop-lint and make it fallible
2023-04-04 10:39:26 +00:00
Ralf Jung
b2f58146b9
basic dyn* support for Miri
2023-02-20 15:08:05 +01: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
Ralf Jung
e1926b2110
interpret: move discriminant reading and writing to separate file
2023-02-06 17:10:26 +01: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
bors
56ee85274e
Auto merge of #106090 - WaffleLapkin:dereffffffffff, r=Nilstrieb
...
Remove some `ref` patterns from the compiler
Previous PR: https://github.com/rust-lang/rust/pull/105368
r? `@Nilstrieb`
2023-01-20 04:52:28 +00:00
Maybe Waffle
6a28fb42a8
Remove double spaces after dots in comments
2023-01-17 08:09:33 +00:00
Maybe Waffle
8d3c90ae13
Review suggestions
2023-01-17 07:48:20 +00:00
Maybe Waffle
98f30e833a
Undo questionable changes
2023-01-17 07:48:19 +00:00
Maybe Waffle
3dca58e249
rustc_const_eval: remove ref patterns (+some pattern matching imps)
2023-01-17 07:48:19 +00:00
Matthias Krüger
548d49c789
Rollup merge of #105847 - compiler-errors:issue-104396, r=oli-obk
...
Ensure param-env is const before calling `eval_to_valtree`
Other queries call `ParamEnv::with_const` *inside* of the query itself (e.g. `const_eval_global_id_for_typeck`), so this could alternatively be moved into the provider of `eval_to_valtree` instead. I don't have a particularly strong opinion, though *theoretically* caching is better if we make the query keys more constrained.
I'm not exactly sure how this is an effect of the `-Zmir-opt-level=3` flag. Maybe something about the inliner causes us to inline an unevaluated const into a body where it can be evaluated, but where it has not yet been normalized.
This seems likely, since we're inlining `from_fn_1::<{ N / 2 }, _>` in `from_fn_2`, which means that we will need to evaluate that constant during the const prop pass after inlining.
Fixes #104396
2022-12-22 19:36:13 +01:00
Yuki Okushi
4f29ca386f
Rollup merge of #105602 - RalfJung:read-convenience, r=oli-obk
...
interpret: add read_machine_[ui]size convenience methods
We have `read_pointer`, so it felt inconsistent to not also have these.
r? ```@oli-obk```
2022-12-22 08:32:10 +09:00
Matthias Krüger
0aa4cde747
avoid .into() conversion to identical types
2022-12-18 16:20:32 +01:00
Michael Goulet
c1181e1224
Ensure param-env is const before calling eval_to_valtree
2022-12-17 22:33:06 +00:00
Ralf Jung
158894464c
interpret: add read_machine_[ui]size convenience methods
2022-12-12 11:10:19 +01:00
Boxy
430f7d16e6
add FIXME's
2022-11-25 09:28:44 +00:00
kadmin
f9750c1554
Add empty ConstKind::Abstract
...
Initial pass at expr/abstract const/s
Address comments
Switch to using a list instead of &[ty::Const], rm `AbstractConst`
Remove try_unify_abstract_consts
Update comments
Add edits
Recurse more
More edits
Prevent equating associated consts
Move failing test to ui
Changes this test from incremental to ui, and mark it as failing and a known bug.
Does not cause the compiler to ICE, so should be ok.
2022-11-25 09:28:43 +00:00
Ralf Jung
09a887cebf
review feedback
2022-11-18 14:24:48 +01:00
Ralf Jung
4101889786
interpret: use Either over Result when it is not representing an error condition
2022-11-18 10:18:32 +01:00
Ralf Jung
1115ec601a
cleanup and dedupe CTFE and Miri error reporting
2022-11-16 10:13:29 +01:00
Matthias Krüger
5763fa74f0
Rollup merge of #104349 - rustaceanclub:master, r=oli-obk
...
fix some typos in comments
2022-11-14 19:26:18 +01:00
Ralf Jung
c78021709a
add is_sized method on Abi and Layout, and use it
2022-11-13 12:23:53 +01:00
cui fliter
442f848d74
fix some typos in comments
...
Signed-off-by: cui fliter <imcusg@gmail.com >
2022-11-13 15:26:17 +08:00
yukang
7df9d818ab
deprecate DelaySpanBugEmitted and use ErrorGuaranteed directly
2022-11-02 23:15:49 +08:00
Michael Goulet
6e6fe30d0f
Comment why normalization is needed for debug assertions
2022-10-23 17:23:35 +00:00
Nilstrieb
7bfef19844
Use tidy-alphabetical in the compiler
2022-10-12 17:49:10 +05:30
Pietro Albini
3975d55d98
remove cfg(bootstrap)
2022-09-26 10:14:45 +02:00
lcnr
526856768d
ctfe, const_to_op only for mir constants
2022-09-19 16:17:33 +02:00
b-naber
6af8fb7936
address review again
2022-09-14 17:30:25 +02:00
b-naber
29c0364c37
rebase
2022-09-13 17:48:05 +02:00
b-naber
a7735cd329
fixes/working version
2022-09-13 17:41:02 +02:00
b-naber
a4bbb8db5c
use ty::Unevaluated<'tcx, ()> in type system
2022-09-13 17:40:59 +02:00
lcnr
e6660326a3
bound variables during ctfe are a bug
2022-09-08 11:41:00 +02:00