lcnr
9cba14b95b
use TypingEnv
when no infcx
is available
...
the behavior of the type system not only depends on the current
assumptions, but also the currentnphase of the compiler. This is
mostly necessary as we need to decide whether and how to reveal
opaque types. We track this via the `TypingMode`.
2024-11-18 10:38:56 +01:00
Ralf Jung
8849ac6042
tcx.is_const_fn doesn't work the way it is described, remove it
...
Then we can rename the _raw functions to drop their suffix, and instead
explicitly use is_stable_const_fn for the few cases where that is really what
you want.
2024-10-25 20:52:39 +02:00
Michael Goulet
e83e4e8112
Get rid of const eval_* and try_eval_* helpers
2024-10-19 18:07:35 +00:00
Michael Goulet
c682aa162b
Reformat using the new identifier sorting from rustfmt
2024-09-22 19:11:29 -04:00
Nicholas Nethercote
51e1c3958d
Add a useful comment about PromoteTemps
.
...
This was non-obvious to me.
2024-09-10 08:54:45 +10:00
Nicholas Nethercote
8235af07d2
Improve comment formatting.
...
By reflowing comment lines that are too long, and a few that are very
short. Plus some other very minor formatting tweaks.
2024-09-10 08:42:30 +10:00
Nicholas Nethercote
6af470e360
Reduce visibilities, and add warn(unreachable_pub)
.
...
Lots of unnecessary `pub`s in this crate. Most are downgraded to
`pub(super)`, though some don't need any visibility.
2024-09-09 08:48:09 +10:00
Matthias Krüger
4ed0f0d384
Rollup merge of #129926 - nnethercote:mv-SanityCheck-and-MirPass, r=cjgillot
...
Move `SanityCheck` and `MirPass`
They are currently in `rustc_middle`. This PR moves them to `rustc_mir_transform`, which makes more sense.
r? ``@cjgillot``
2024-09-03 19:13:27 +02:00
Nicholas Nethercote
2aae619edb
Move MirPass
to rustc_mir_transform
.
...
Because that's now the only crate that uses it.
Moving stuff out of `rustc_middle` is always welcome.
I chose to use `impl crate::MirPass`/`impl crate::MirLint` (with
explicit `crate::`) everywhere because that's the only mention of
`MirPass`/`MirLint` used in all of these files. (Prior to this change,
`MirPass` was mostly imported via `use rustc_middle::mir::*` items.)
2024-09-03 16:03:46 +10:00
Alexander Cyon
00de006f22
chore: Fix typos in 'compiler' (batch 2)
2024-09-02 07:50:22 +02:00
Nicholas Nethercote
ed5161c5ac
Remove #[macro_use] extern crate tracing
from rustc_mir_transform
.
2024-08-30 10:01:34 +10:00
Ralf Jung
35709be02d
rename AddressOf -> RawBorrow inside the compiler
2024-08-18 19:46:53 +02:00
Michael Goulet
c361c924a0
Use assert_matches around the compiler
2024-08-11 12:25:39 -04:00
Ralf Jung
6d312d7bd1
MIR required_consts, mentioned_items: ensure we do not forget to fill these lists
2024-08-01 15:49:25 +02:00
Nicholas Nethercote
84ac80f192
Reformat use
declarations.
...
The previous commit updated `rustfmt.toml` appropriately. This commit is
the outcome of running `x fmt --all` with the new formatting options.
2024-07-29 08:26:52 +10:00
hattizai
ada9fda7c3
chore: remove duplicate words
2024-07-02 11:25:31 +08:00
bors
5ced3dad57
Auto merge of #125853 - tesuji:promote-fail-fast, r=cjgillot
...
promote_consts: some clean-up after experimenting
This is some clean-up after experimenting in #125916 ,
Prefer to review commit-by-commit.
2024-06-21 16:00:14 +00:00
Lzu Tao
62a287528a
Reuse allocation for Vec<Candidate>
2024-06-21 13:51:33 +00:00
Lzu Tao
c03659443a
promote_consts: eargerly return when there are no candidates
...
There is no need to do it when mustn't.
2024-06-16 09:39:42 +00:00
Lzu Tao
28708912fb
prefer tracing::instrument over debug strings
2024-06-16 09:39:42 +00:00
Ralf Jung
ed1618dedc
MIR visitor: constant -> const_operand
2024-06-13 15:37:13 +02:00
Ralf Jung
3c57ea0df7
ScalarInt: size mismatches are a bug, do not delay the panic
2024-06-10 13:43:16 +02:00
Scott McMurray
459ce3f6bb
Add an intrinsic for ptr::metadata
2024-05-28 09:28:51 -07:00
Jubilee Young
87048a46fc
compiler: unnest rustc_const_eval::check_consts
2024-05-24 09:56:56 -07:00
Scott McMurray
95c0e5c6a8
Remove Rvalue::CheckedBinaryOp
2024-05-17 20:33:02 -07:00
Nicholas Nethercote
d49d4ae192
Remove extern crate rustc_middle
from rustc_mir_transform
.
2024-05-13 08:20:18 +10:00
Ralf Jung
173d1bd36b
properly fill a promoted's required_consts
...
then we can also make all_required_consts_are_checked a constant instead of a function
2024-04-23 23:02:54 +02:00
Ralf Jung
b2b617a88e
compute required_consts before promotion, and add promoteds that may fail
2024-04-23 22:52:43 +02:00
Ralf Jung
7183fa09bb
promotion: do not promote const-fn calls in const when that may fail without the entire const failing
2024-04-23 22:52:43 +02:00
Nadrieril
50531806ee
Add a non-shallow fake borrow
2024-04-20 16:01:35 +02:00
Ralf Jung
42220f0930
ScalarInt: add methods to assert being a (u)int of given size
2024-04-19 13:51:52 +02:00
joboet
989660c3e6
rename expose_addr
to expose_provenance
2024-04-03 16:00:38 +02:00
Scott McMurray
3da115a93b
Add+Use mir::BinOp::Cmp
2024-03-23 23:23:41 -07:00
Ralf Jung
6177530420
refactor check_{lang,library}_ub: use a single intrinsic, put policy into library
2024-03-23 18:45:05 +01:00
Michael Goulet
ff0c31e6b9
Programmatically convert some of the pat ctors
2024-03-22 11:13:29 -04:00
Michael Goulet
f0f224a37f
Ty::new_ref and Ty::new_ptr stop using TypeAndMut
2024-03-22 11:13:27 -04:00
Ben Kimock
5a93a59fd5
Distinguish between library and lang UB in assert_unsafe_precondition
2024-03-08 18:53:58 -05:00
Ralf Jung
f32095cd8d
promotion: don't promote int::MIN / -1
2024-02-24 12:17:37 +01:00
Ben Kimock
8836ac5758
Add a new debug_assertions instrinsic (compiler)
...
And in clippy
2024-02-08 11:49:08 -05:00
Martin Nordholts
16ba56c242
compiler: Lower fn call arg spans down to MIR
...
To enable improved accuracy of diagnostics in upcoming commits.
2024-01-15 19:07:11 +01:00
Camille GILLOT
5d6463c26c
Make match exhaustive.
2024-01-08 22:42:07 +00:00
Camille GILLOT
cae0dc2833
Simplify code flow.
2024-01-08 22:42:07 +00:00
Camille GILLOT
8356802862
Move promote_consts back to rustc_mir_transform.
2024-01-08 22:42:07 +00:00