Commit Graph

104533 Commits

Author SHA1 Message Date
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
Martin Habovstiak
2c796ee77c Use NonNull in slice::Iter and slice::IterMut.
`ptr` of `slice::Iter` and `slice::IterMut` can never be null, but this
fact wasn't exploited for layout optimizations. By changing `ptr` from
`*<mutability> T` to `NonNull<T>`, the compiler can now optimize layout
of `Option<Iter<'a, T>>`.
2019-12-26 20:18:31 +01:00
Stein Somers
e3c814e623 prune ill-conceived BTreeMap iter_mut assertion and test more 2019-12-26 18:26:57 +01:00
Mark Rousskov
9c0f3f7f2a Document safety of Path casting 2019-12-26 12:12:42 -05: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
Dario Gonzalez
915686d069 Implement padding for IpAddr without heap alloc 2019-12-26 08:22:59 -08:00
Christian Poveda
be9a3c60a3
Update .mailmap 2019-12-26 10:32:26 -05:00
Matthew Kraai
2f43313834 Convert collapsed to shortcut reference links 2019-12-26 05:27:55 -08: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
Matthew Kraai
21e636f188 Remove redundant link texts 2019-12-26 05:04:46 -08: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
Oliver Scherer
3e7fa3c6f2 Move const eval machine into its own module 2019-12-26 12:10:36 +01:00
bors
acb6690e1d Auto merge of #66670 - crlf0710:normalize_ident, r=Dylan-DPC
Normalize ident

Perform unicode normalization on identifiers. Resolving the first bullet point in #55467.
2019-12-26 09:55:00 +00:00
Charles Lew
27e7a1baed Add unicode-normalization to whitelist. 2019-12-26 14:16:36 +08:00
Charles Lew
541d879f71 Add a test and bless existing test case. 2019-12-26 13:13:01 +08:00
Charles Lew
0bcddfe23a Normalize identifiers in librustc_parse. 2019-12-26 13:12:58 +08:00
bors
c0b16b4e6a Auto merge of #67268 - estebank:assoc-types, r=oli-obk
Tweak errors for missing associated types and type parameters

* On `dyn Trait` missing associated types, provide a structured suggestion for them
* On missing type parameters, provide structured suggestion for them
* Point at trait definition when missing required type parameter
* Tweak output of E0658
* Tweak wording of E0719
* Account for `Trait1 + Trait2` case

Fix #66380, fix #60595. CC #63711.
2019-12-26 03:42:59 +00:00
bors
b13d65ab92 Auto merge of #67580 - RalfJung:miri-unleash-tests, r=oli-obk
test the unleashed Miri

In particular, test what happens when we try to drop something. Cc https://github.com/rust-lang/const-eval/issues/17

r? @oli-obk
2019-12-26 00:27:13 +00:00
bors
bbf13723bc Auto merge of #66919 - dtolnay:description, r=KodrAus
Deprecate Error::description for real

`description` has been documented as soft-deprecated since 1.27.0 (17 months ago). There is no longer any reason to call it or implement it.

This PR:

- adds `#[rustc_deprecated(since = "1.41.0")]` to `Error::description`;
- moves `description` (and `cause`, which is also deprecated) below the `source` and `backtrace` methods in the Error trait;
- reduces documentation of `description` and `cause` to take up much less vertical real estate in rustdocs, while preserving the example that shows how to render errors without needing to call `description`;
- removes the description function of all *currently unstable* Error impls in the standard library;
- marks `#[allow(deprecated)]` the description function of all *stable* Error impls in the standard library;
- replaces miscellaneous uses of `description` in example code and the compiler.

---

![description](https://user-images.githubusercontent.com/1940490/69910369-3bbaca80-13bf-11ea-94f7-2fe27a7ea333.png)
2019-12-25 21:10:49 +00:00