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
beeb2b13cc
miri/diagnostics: don't forget to print_backtrace when ICEing on unexpected errors
...
then also use the new helper in a few other places
2023-08-27 15:42:25 +02:00
Ralf Jung
4c53783f3c
when terminating during unwinding, show the reason why
2023-08-24 13:28:26 +02:00
Ralf Jung
818ec8e23a
give some unwind-related terminators a more clear name
2023-08-20 15:52:38 +02:00
Ralf Jung
77ff1b83cd
interpret: make read functions generic over operand type
2023-07-25 22:33:59 +02:00
Mahdi Dibaiee
e55583c4b8
refactor(rustc_middle): Substs -> GenericArg
2023-07-14 13:27:35 +01:00
Deadbeef
f6c2bc5c24
fix diagnostic message
2023-06-01 14:45:19 +00:00
Deadbeef
f964b46451
improve debug message by eagerly translating
2023-06-01 14:45:19 +00:00
Deadbeef
4f83717cf7
Use translatable diagnostics in rustc_const_eval
2023-06-01 14:45:18 +00:00
Maybe Waffle
fb0f74a8c9
Use Option::is_some_and
and Result::is_ok_and
in the compiler
2023-05-24 14:20:41 +00:00
clubby789
d5bc581f5d
Migrate mir_transform
to translatable diagnostics
2023-05-02 16:24:18 +01:00
Boxy
842419712a
rename needs_subst
to has_param
2023-04-27 08:35:19 +01:00
Matthias Krüger
543f8bc38c
fix clippy::toplevel_ref_arg and ::manual_map
2023-04-16 13:28:13 +02:00
bors
f8ed97ecc1
Auto merge of #110031 - compiler-errors:generic-elaboration, r=b-naber
...
Make elaboration generic over input
Combines all the `elaborate_*` family of functions into just one, which is an iterator over the same type that you pass in (e.g. elaborating `Predicate` gives `Predicate`s, elaborating `Obligation`s gives `Obligation`s, etc.)
2023-04-09 00:18:10 +00:00
Michael Goulet
758bedc104
Make elaborator generic
2023-04-06 23:30:22 +00:00
Gary Guo
e3f2edc75b
Rename Abort
terminator to Terminate
...
Unify terminology used in unwind action and terminator, and reflect
the fact that a nounwind panic is triggered instead of an immediate
abort is triggered for this terminator.
2023-04-06 09:34:16 +01:00
Camille GILLOT
98255cc242
Comment logic around worklist.
2023-04-05 19:34:38 +00:00
Camille GILLOT
7d47a910eb
Only visit reachable blocks in ConstProp lint.
2023-04-05 19:34:38 +00:00
Camille GILLOT
f8cfafcceb
Extract check_assertion.
2023-04-05 19:34:38 +00:00
Camille GILLOT
b833fcae90
Manipulate Location instead of SourceInfo.
2023-04-05 19:34:36 +00:00
Camille GILLOT
35e622d218
Do not keep extra references to scopes and decls.
2023-04-05 19:30:44 +00: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
Scott McMurray
a2ee7592d6
Use &IndexSlice
instead of &IndexVec
where possible
...
All the same reasons as for `[T]`: more general, less pointer chasing, and `&mut IndexSlice` emphasizes that it doesn't change *length*.
2023-04-02 17:35:37 -07:00
Michael Goulet
1ce4b37900
Don't elaborate non-obligations into obligations
2023-03-26 20:33:54 +00:00
Camille GILLOT
e5a55dc2c5
Prefer if cfg!.
2023-03-19 08:59:11 +00:00
Camille GILLOT
0e866af1f7
Only clear locals that are known to be written to.
2023-03-19 08:58:01 +00:00
bors
b05bb29008
Auto merge of #108872 - cjgillot:simp-const-prop, r=oli-obk
...
Strengthen state tracking in const-prop
Some/many of the changes are replicated between both the const-prop lint and the const-prop optimization.
Behaviour changes:
- const-prop opt does not give a span to propagated values. This was useless as that span's primary purpose is to diagnose evaluation failure in codegen.
- we remove the `OnlyPropagateInto` mode. It was only used for function arguments, which are better modeled by a write before entry.
- the tracking of assignments and discriminants make clearer that we do nothing in `NoPropagation` mode or on indirect places.
2023-03-12 23:27:52 +00:00
Camille GILLOT
0d56034a25
Make comment more explicit.
2023-03-08 14:40:38 +00:00
Camille GILLOT
b55c4f8312
Separate checking rvalue from evaluation.
2023-03-08 14:40:38 +00:00
Camille GILLOT
f00be8b77b
Recurse into statement before applying its effect.
2023-03-08 14:40:38 +00:00
Camille GILLOT
d97a7ce69b
Refactor tracking of writes.
2023-03-08 14:40:38 +00:00
Camille GILLOT
9928d0e566
Remove OnlyPropagateInto.
2023-03-08 14:40:37 +00:00
Camille GILLOT
24dbf9c112
Only assign value in remove_const.
2023-03-08 14:40:37 +00:00
Camille GILLOT
2247cd6643
Simplify visit_statement.
2023-03-08 14:40:37 +00:00
Camille GILLOT
9a56933e8c
Create visit_block_data for const-prop-lint.
2023-03-08 14:40:37 +00:00
Giacomo Pasini
c5d4e4d907
Remove DropAndReplace terminator
...
PR 107844 made DropAndReplace unused, let's remove it completely
from the codebase.
2023-03-07 14:25:22 +01:00
Alan Egerton
695072daa6
Remove type-traversal trait aliases
2023-02-22 17:04:58 +00:00
Kyle Matsuda
c183110cc2
remove bound_type_of query; make type_of return EarlyBinder; change type_of in metadata
2023-02-16 17:05:56 -07:00
Kyle Matsuda
d822b97a27
change usages of type_of to bound_type_of
2023-02-16 17:01:52 -07:00
Maybe Waffle
f1d273cbfb
Replace some _ == _ || _ == _
s with matches!(_, _ | _)
s
2023-01-30 12:26:26 +00: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
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
Ralf Jung
fd59d44f58
make const_err a hard error
2022-10-07 18:08:49 +02:00
Maybe Waffle
a8f7e244b7
Refactor rustc lint API
2022-10-01 10:03:06 +00:00
b-naber
a705e65605
rename Unevaluated to UnevaluatedConst
2022-09-23 14:27:34 +02:00
b-naber
9f3784df89
introduce mir::Unevaluated
2022-09-22 12:35:28 +02:00
Michael Howell
b149c48186
Rollup merge of #102021 - lcnr:tyConst-fun, r=b-naber,BoxyUwU
...
some post-valtree cleanup
r? project-const-generics cc ```@b-naber```
2022-09-20 10:13:01 -07:00
lcnr
526856768d
ctfe, const_to_op
only for mir constants
2022-09-19 16:17:33 +02:00