Commit Graph

104807 Commits

Author SHA1 Message Date
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
Matthew Jasper
5d19d4d894 Use the correct type for static qualifs 2019-12-25 21:09:51 +00:00
Matthew Kraai
b8ccc0f8a6 Remove compiler_builtins_lib documentation
Fixes #67593
2019-12-25 11:56:19 -08:00
Mark Rousskov
4dcc6270e8 Fix skipped setting of syntax::GLOBALS 2019-12-25 14:26:42 -05:00
Esteban Küber
621d7e959b Fix rebase and sort assoc type list for deterministic output 2019-12-25 11:12:56 -08:00
Mark Rousskov
b98633b94c Store callbacks in global statics
The callbacks have precisely two states: the default, and the one
present throughout almost all of the rustc run (the filled in value
which has access to TyCtxt).

We used to store this as a thread local, and reset it on each thread to
the non-default value. But this is somewhat wasteful, since there is no
reason to set it globally -- while the callbacks themselves access TLS,
they do not do so in a manner that fails in when we do not have TLS to
work with.
2019-12-25 14:10:46 -05:00
Christian Poveda
dfcc44d769
rewrite scalar to integer methods 2019-12-25 12:41:05 -05:00
Lzu Tao
3a2ef17194 tidy: change msdn links to newer locations
see accouncement at https://docs.microsoft.com/welcome-to-docs
2019-12-25 15:35:54 +00:00
Christian Poveda
415ecc848d
Add Scalar::to_(u|i)16 methods 2019-12-25 09:20:15 -05:00
Konrad Borowski
43cb37e152 Use issue = "none" instead of "0" in intrinsics 2019-12-25 11:54:55 +01:00
bors
ed33453a37 Auto merge of #67524 - LukasKalbertodt:improve-into-iter-lint, r=matthewjasper
Generalize `array_into_iter` lint to also lint for boxed arrays

`Box` is special in that a method call on a box can move the value out
of the box. Thus, the same backwards-compatibility problem can arise
for boxed arrays as for simple arrays.

---

CC #66145
r? @matthewjasper  (as you reviewed the first PR)
2019-12-25 10:20:48 +00:00
Ralf Jung
40b8b7c338 use error-pattern 2019-12-25 11:19:05 +01:00
matthewjasper
0a14cbea98 Use link in doc comment
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2019-12-25 09:13:15 +00:00
Matthew Jasper
f1758a043f Feature gate or patterns in const contexts 2019-12-25 09:13:15 +00:00
Matthew Jasper
58a6a201c0 Split match_expr into smaller functions 2019-12-25 09:13:15 +00:00
Matthew Jasper
18df72142a Remove -Znll-dont-emit-read-for-match 2019-12-25 09:13:15 +00:00
Matthew Jasper
83a820047f Reduce log level from info to debug 2019-12-25 09:13:14 +00:00
David Tolnay
4646a88b7a
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 commit:

- 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.
2019-12-24 22:39:49 -08:00