104477 Commits

Author SHA1 Message Date
jumbatm
91c2f78b50 Clean up const-hack from #58044 2019-12-27 23:21:32 +10:00
jumbatm
282635f2db Clean up const-hack from #61635 2019-12-27 23:21:32 +10:00
jumbatm
8c494866be Clean up const-hack from #63786 2019-12-27 23:21:32 +10:00
jumbatm
f6faf0b2e7 Clean up const-hack from #63810 2019-12-27 23:21:27 +10:00
bors
8f5f8f916f Auto merge of #67192 - oli-obk:const_zst_addr, r=RalfJung,varkor
Various const eval and pattern matching ICE fixes

r? @RalfJung
cc @spastorino

This PR does not change existing behaviour anymore and just fixes a bunch of ICEs reachable from user code (sometimes even on stable via obscure union transmutes).
2019-12-27 07:38:52 +00:00
bors
a04c789f69 Auto merge of #66936 - cjgillot:hirene-expr, r=Zoxc
Allocate HIR on an arena 2/4 -- Expr & Pat

This is the second PR in the series started by #66931

This time, commits don't really make sense on their own.
They are mostly split by type of compile error.

The additional diff is here: https://github.com/cjgillot/rust/compare/hirene-preamble...hirene-expr
2019-12-27 01:40:41 +00:00
Camille GILLOT
fb100e5ddc Move arena_vec inside lowering. 2019-12-26 23:40:50 +01:00
Camille GILLOT
75632c5ffe Remove some type information. 2019-12-26 23:40:13 +01:00
Camille GILLOT
1984ec5d20 Fewer calls to arena.alloc. 2019-12-26 23:39:14 +01:00
Camille GILLOT
8284035372 Fallout in other crates. 2019-12-26 23:38:46 +01:00
Camille GILLOT
58b908d09c Lowering for hir::Expr. 2019-12-26 23:36:12 +01:00
Camille GILLOT
52e9825ba8 Visit for hir::Expr. 2019-12-26 23:36:12 +01:00
Camille GILLOT
2b1cfe5b5b Syntax for hir::Expr. 2019-12-26 23:36:12 +01:00
Oliver Scherer
f65a91eb47 Make ui test bitwidth independent 2019-12-26 22:50:18 +01:00
Oliver Scherer
12a4c2ca18 Fix rebase fallout 2019-12-26 22:50:18 +01:00
Oliver Scherer
aaffe12453 Use the targetted const eval functions 2019-12-26 22:50:18 +01:00
Oliver Scherer
b476344ccc Reintroduce the recursion comment 2019-12-26 22:50:18 +01:00
Oliver Scherer
1531c3937b Documentation nit 2019-12-26 22:50:18 +01:00
Oliver Scherer
20c1b3fb49 Add a const_eval helper to InterpCx 2019-12-26 22:50:18 +01:00
Oliver Scherer
1acbf4b802 Early abort instead of building up zero sized values 2019-12-26 22:50:18 +01:00
Oliver Scherer
95205518dd Explain why const_eval is ok here 2019-12-26 22:50:17 +01:00
Oliver Scherer
0e3fafaea7 Typo 2019-12-26 22:50:17 +01:00
Oliver Scherer
72ebce0e1b Remove unintended noisy log statement 2019-12-26 22:50:17 +01:00
Oliver Scherer
6937ca2c90 Explain the currently necessary existance of TransmuteSizeDiff 2019-12-26 22:50:17 +01:00
Oliver Scherer
cb8d1c3c65 Explain what we are doing with parameter environments for statics 2019-12-26 22:50:17 +01:00
Oliver Scherer
8a88ff1006 Comments should start capitalized and end in a period 2019-12-26 22:50:17 +01:00
Oliver Scherer
41d58185dd Explain ParamEnv::reveal_all usage 2019-12-26 22:50:17 +01:00
Oliver Scherer
6b651b1a88 Add regression test for ZST statics being allowed to "read" from themselves 2019-12-26 22:50:17 +01:00
Oliver Scherer
a7a011d2fa Immediately evaluate and validate constants when we want them as operands 2019-12-26 22:50:17 +01:00
Oliver Scherer
0e969b73f6 Interning even happens when validation of a constant fails 2019-12-26 22:50:17 +01:00
Oliver Scherer
a0bd1a695d Prevent an ICE on invalid transmutes 2019-12-26 22:50:16 +01:00
Oliver Scherer
13694de4a2 Comment on a few odd things that we should look at 2019-12-26 22:50:16 +01:00
Oliver Scherer
bb1ecee5b6 Simplify force_allocation_maybe_sized 2019-12-26 22:50:16 +01:00
Oliver Scherer
b5b5258d74 Retire to_ptr which should already have no users but still kept getting new ones 2019-12-26 22:50:14 +01:00
Oliver Scherer
1e40681f50 Don't ICE on the use of integer addresses for ZST constants in pattern matching 2019-12-26 22:46:22 +01:00
bors
3e0a1c0910 Auto merge of #67592 - matthewjasper:cleanup-match, r=Centril
Prepare for lowering or-patterns

This is probably best reviewed commit-by-commit.

* Rustfmt `rustc_mir::build::{self, matches}`
* Remove `-Znll-dont-emit-read-for-match`
* Split `match_expr` into smaller functions
* Feature gate or-patterns in const contexts

cc https://github.com/rust-lang/rust/issues/54883

r? @Centril
2019-12-26 16:44:52 +00:00
bors
3ac40b69c7 Auto merge of #67327 - oli-obk:cleanup, r=RalfJung
Split up `const_eval.rs`

Fixes #67316

r? @RalfJung
2019-12-26 13:15:05 +00:00
Oliver Scherer
07df1479e5 Rebase fallout 2019-12-26 12:11:12 +01:00
Oliver Scherer
7d5f36a1e5 A cycle error on a diverging function is now a const stack overflow again 2019-12-26 12:11:12 +01:00
Oliver Scherer
2e66f85111 Bail out before running the query 2019-12-26 12:11:12 +01:00
Oliver Scherer
b97abd0761 Tidy 2019-12-26 12:11:12 +01:00
Oliver Scherer
49f5b0834b Fix imports after rebase 2019-12-26 12:11:12 +01:00
Oliver Scherer
d5f1d75dd2 Rename query module 2019-12-26 12:11:12 +01:00
Oliver Scherer
4ffdd9a16a Move function definitions before their first use 2019-12-26 12:11:12 +01:00
Oliver Scherer
e21d2c8f9b Move all functions used by the queries to query.rs 2019-12-26 12:11:12 +01:00
Oliver Scherer
43221a684d Move a function to make its adjacent impl block easier to discover 2019-12-26 12:11:11 +01:00
Oliver Scherer
eea51e3427 Make some functions crate local 2019-12-26 12:11:11 +01:00
Oliver Scherer
eda3fa9eb5 Move eval_body_using_ecx to the only module it is used in 2019-12-26 12:11:11 +01:00
Oliver Scherer
9a82458e70 Move eval_const_fn_call to the const_eval module 2019-12-26 12:11:11 +01:00
Oliver Scherer
2d67edd32c Move const eval query components into their own module 2019-12-26 12:11:11 +01:00