Deadbeef
c75aeaac0b
Fix #88155
2021-08-27 05:07:38 +00:00
lcnr
cc47998e28
add tcx to fn walk
2021-08-26 11:00:30 +02:00
lcnr
bfaf13af4e
make unevaluated const substs optional
2021-08-26 11:00:30 +02:00
Frank Steffahn
2396fad095
Fix more “a”/“an” typos
2021-08-22 17:27:18 +02:00
Niko Matsakis
947c0de028
introduce a Coerce predicate
2021-08-19 17:28:24 -04:00
Deadbeef
ee85704c04
Skip assert ICE with default_method_body_is_const
...
functions marked with #[default_method_body_is_const] would
ICE when being const checked due to it not being a const function:
`tcx.is_const_fn_raw(did)` returns false. We should skip this assert
when it is marked with that attribute.
2021-08-16 12:04:01 +00:00
Deadbeef
32390a0df6
move Constness into TraitPredicate
2021-08-13 09:26:33 +00:00
bors
aadd6189ad
Auto merge of #87449 - matthiaskrgr:clippyy_v2, r=nagisa
...
more clippy::complexity fixes
(also a couple of clippy::perf fixes)
2021-08-01 09:15:15 +00:00
Mara Bos
0b8033ad8d
Improve comments about const panic handling
...
Co-authored-by: Ralf Jung <post@ralfj.de >
2021-07-28 16:18:38 +02:00
Mara Bos
f827d3e285
Make const panic!("..") work in Rust 2021.
...
During const eval, this replaces calls to core::panicking::panic_fmt and
std::panicking::being_panic_fmt with a call to a new const fn:
core::panicking::const_panic_fmt. That function uses
fmt::Arguments::as_str() to get the str and calls panic_str with that
instead.
panic!() invocations with formatting arguments are still not accepted,
as the creation of such a fmt::Arguments cannot be done in constant
functions right now.
2021-07-28 16:10:41 +02:00
Jacob Pratt
7bf791d162
Stabilize const_fn_union
2021-07-27 16:03:33 -04:00
Jacob Pratt
36f02f3523
Stabilize const_fn_transmute
2021-07-27 16:03:09 -04:00
Matthias Krüger
3fd8cbb404
clippy::useless_format
2021-07-25 12:26:03 +02:00
Ralf Jung
83bc657e25
rename Validator → Checker
2021-07-24 13:27:17 +02:00
Ralf Jung
35d4d4ca14
rename const checking visitor module to check_consts::check
2021-07-24 13:25:30 +02:00
Deadbeef
d05a286449
Iterate through impls only when permitted
2021-07-19 18:50:06 +08:00
bors
394804bb23
Auto merge of #86857 - fee1-dead:add-attr, r=oli-obk
...
Add #[default_method_body_is_const]
`@rustbot` label F-const_trait_impl
2021-07-13 06:59:34 +00:00
Deadbeef
554fad7bda
Permit calls to default const fns of impl const
2021-07-10 20:54:50 +08:00
Deadbeef
56d79adf3b
Skip check for calling functions in same trait
2021-07-10 20:54:48 +08:00
Ralf Jung
5f0dd6db94
remove const_raw_ptr_to_usize_cast feature
2021-07-10 12:08:58 +02:00
Yuki Okushi
884053a4b4
Remove ty::Binder::bind()
...
Co-authored-by: Noah Lev <camelidcamel@gmail.com >
2021-07-03 01:12:32 +09:00
LingMan
f4080fca62
Drop an if let that will always succeed
...
We've already checked that `proj_base == []` in the line above and renaming
`place_local` to `local` doesn't gain us anything.
2021-06-05 18:12:47 +02:00
Yuki Okushi
2fddcfda7a
Rollup merge of #85934 - tmiasko:is-union, r=jackh726
...
Add `Ty::is_union` predicate
2021-06-03 14:35:41 +09:00
Tomasz Miąsko
c898681a86
Add Ty::is_union predicate and use it
2021-06-02 17:09:17 +02:00
csmoe
521d9ab59a
convert Rvalue::threadlocalref assertion to delay bug
2021-06-02 10:19:57 +08:00
csmoe
9283956350
skip check_static on rvalue::threadlocalref
2021-06-01 13:59:17 +08:00
Ralf Jung
65cd051b4a
stabilize const_fn_unsize
2021-05-22 10:35:49 +02:00
Jonas Schievink
bd16825767
Allow async {} expressions in const contexts
2021-05-16 02:06:40 +02:00
Ralf Jung
9a852776f4
don't let const_fn feature flag affect impl-block-level trait bounds
2021-04-29 09:27:45 +02:00
bors
b56b175c6c
Auto merge of #84310 - RalfJung:const-fn-feature-flags, r=oli-obk
...
further split up const_fn feature flag
This continues the work on splitting up `const_fn` into separate feature flags:
* `const_fn_trait_bound` for `const fn` with trait bounds
* `const_fn_unsize` for unsizing coercions in `const fn` (looks like only `dyn` unsizing is still guarded here)
I don't know if there are even any things left that `const_fn` guards... at least libcore and liballoc do not need it any more.
`@oli-obk` are you currently able to do reviews?
2021-04-24 23:16:03 +00:00
Ralf Jung
46d09f7a4b
remove E0723 error code
2021-04-19 14:58:11 +02:00
klensy
f43ee8ebf6
fix few typos
2021-04-19 15:57:08 +03:00
Ralf Jung
04db4abbfc
add gate tests and pacify tidy
2021-04-19 10:25:31 +02:00
Ralf Jung
fbfaab2cb7
separate feature flag for unsizing casts in const fn
2021-04-18 19:11:29 +02:00
Ralf Jung
fdad6ab3a3
move 'trait bounds on const fn' to separate feature gate
2021-04-18 18:36:41 +02:00
Jack Huey
30187c81f6
Track bound vars
2021-03-31 10:15:27 -04:00
Dylan DPC
1fdf7d18ad
Rollup merge of #83351 - RalfJung:precise-const-drop, r=oli-obk
...
post-drop-elab check-const: explain why we still check qualifs
r? `@oli-obk`
2021-03-22 15:21:29 +01:00
Ralf Jung
4e7f1fa14f
post-drop-elab check-const: explain why we still check qualifs
2021-03-21 21:20:59 +01:00
lcnr
43ebac119b
extract ConstKind::Unevaluated into a struct
2021-03-20 17:21:44 +01:00
Oli Scherer
3127a9c60f
Prepare mir::Constant for ty::Const only supporting valtrees
2021-03-12 12:43:54 +00:00
kadmin
89f45ed9f3
Update match branches
...
This updates all places where match branches check on StatementKind or UseContext.
This doesn't properly implement them, but adds TODOs where they are, and also adds some best
guesses to what they should be in some cases.
2021-03-09 16:54:13 +00:00
bors
27885a94c6
Auto merge of #82727 - oli-obk:shrinkmem, r=pnkfelix
...
Test the effect of shrinking the size of Rvalue by 16 bytes
r? `@ghost`
2021-03-08 08:39:24 +00:00
Oli Scherer
9a2362e5a9
Shrink the size of Rvalue by 16 bytes
2021-03-05 09:33:01 +00:00
bors
6f7673d077
Auto merge of #81114 - bugadani:generator, r=estebank
...
Box generator-related Body fields
Might save some memory on functions that aren't generators.
2021-03-04 00:23:42 +00:00
Guillaume Gomez
865cf0c3b6
Rollup merge of #80734 - abonander:ab/issue-66693, r=oli-obk
...
check that first arg to `panic!()` in const is `&str`
closes #66693
~~TODO: regression test~~
cc `@RalfJung` for error message wording
2021-03-02 00:50:04 +01:00
Austin Bonander
5a33f531cd
check that first arg to panic!() in const is &str
2021-03-01 08:32:15 -08:00
Dániel Buga
b97eb23cd0
Box generator-related Body fields
2021-03-01 08:32:49 +01:00
Dylan DPC
cc07061190
Rollup merge of #82091 - henryboisdequin:use-place-ref-more, r=RalfJung
...
use PlaceRef abstractions more consistently
Addresses this [comment](https://github.com/rust-lang/rust/pull/80865/files#r558978715 )
Associated issue: #80647
r? ```@RalfJung```
2021-02-23 02:51:50 +01:00
Matthias Krüger
da9a588d4f
remove redundant wrapping of return types of allow_internal_unstable() and rustc_allow_const_fn_unstable()
2021-02-21 18:11:27 +01:00
Henry Boisdequin
5ec4b060a7
make visit_projection take a PlaceRef
2021-02-16 14:20:36 +05:30