Commit Graph

94107 Commits

Author SHA1 Message Date
Nicholas Nethercote 9c7d28d4fd Pre-intern "0", "1", ..., "9", and use where appropriate. 2019-05-27 13:58:38 +10:00
Nicholas Nethercote 58c68d00fd Pass symbols to `ExtCtxt::std_path` instead of strings.
Because this function is hot.

Also remove the dead `ty_option` function.
2019-05-27 13:58:38 +10:00
Nicholas Nethercote 26451ef7b5 Avoid unnecessary internings.
Most involving `Symbol::intern` on string literals.
2019-05-27 13:58:38 +10:00
Nicholas Nethercote 6c0ff3dd97 Avoid interning in `resolve_place_op`.
This function is hot for `keccak`.
2019-05-27 13:58:38 +10:00
bors ed2a5115da Auto merge of #61147 - estebank:suggest-as-ref, r=oli-obk
When encountering move error on an `Option`, suggest using `as_ref`

Fix #61109, cc #15457.
2019-05-27 01:10:22 +00:00
bors 37c45ec398 Auto merge of #61214 - oli-obk:clippy, r=Manishearth
Update clippy submodule

r? @Manishearth
2019-05-26 21:38:04 +00:00
Jad Ghalayini 03cce1d81e Added error message for E0284 2019-05-26 16:48:02 -04:00
bors 5187be620c Auto merge of #61213 - pietroalbini:fix-azure-multiple-checkouts, r=alexcrichton
azure: fix multiple checkouts on azure

We were checking out the rustc repo multiple times on auto macOS, and
that was causing an error on the Azure side since multiple checkouts are
apparently not supported. This removes the extra checkout.

r? @alexcrichton
fixes #61170
2019-05-26 18:48:12 +00:00
Esteban Küber 24b2e20b31 Account for short-hand init structs when suggesting conversion 2019-05-26 11:39:48 -07:00
Paolo Teti 6e4c12c768 Docker: remove environment variable `CC_armebv7r_none_eabi`
`cc-rs` take care of selecting the tool-chain, so this ENV variable
can be safely removed.
2019-05-26 19:31:40 +02:00
Oliver Scherer 2a789518b0 Update cargo lockfile 2019-05-26 19:21:54 +02:00
Oliver Scherer e8b09ff92b Update clippy submodule 2019-05-26 18:59:51 +02:00
Pietro Albini 4af19b0ce9
ci: increase timeout on the auto branch in azure 2019-05-26 18:35:32 +02:00
Pietro Albini d185feae4f
ci: fix multiple checkouts on azure
We were checking out the rustc repo multiple times on auto macOS, and
that was causing an error on the Azure side since multiple checkouts are
apparently not supported. This removes the extra checkout.
2019-05-26 17:12:13 +02:00
Alex Crichton ad52c77a46 ci: Attempt to skip a full rustc compile on dist*
Currently when we're preparing cross-compiled compilers it can take
quite some time because we have to build the compiler itself three
different times. The first is the normal bootstrap, the second is a
second build for the build platform, and the third is the actual target
architecture compiler. The second compiler was historically built
exclusively for procedural macros, and long ago we didn't actually need
it.

This commit tries out avoiding that second compiled compiler, meaning we
only compile rustc for the build platform only once. Some local testing
shows that this is promising, but bors is of course the ultimate test!
2019-05-26 07:39:14 -07:00
bors dc6db14e1c Auto merge of #61210 - Centril:rollup-ofr6h5b, r=Centril
Rollup of 4 pull requests

Successful merges:

 - #61077 (Don't arena-allocate static symbols.)
 - #61102 (Move path for iterate)
 - #61120 (Make eval_place iterate instead of recurse)
 - #61205 (docs: fix typo #61197)

Failed merges:

r? @ghost
2019-05-26 12:24:25 +00:00
Ralf Jung aad13a176a centralize Scalar size sanity checks and also do them in release builds 2019-05-26 14:13:12 +02:00
Ralf Jung 3defb3f18f fix overflow error in signed wrapping offset 2019-05-26 14:12:54 +02:00
Rust 9e643e6792
Improve miri's error reporting in check_in_alloc
Co-Authored-By: Ralf Jung <post@ralfj.de>
2019-05-26 14:44:58 +03:00
Mazdak Farrokhzad e9933ee099
Rollup merge of #61205 - airt:docs-fix-typo-#61197, r=Centril
docs: fix typo #61197

Fixes #61197

Change `#[doc(inline)}` to `#[doc(inline)]` in the [#[doc]](https://doc.rust-lang.org/rustdoc/the-doc-attribute.html) documentation.
2019-05-26 13:37:59 +02:00
Mazdak Farrokhzad c3e1f99a69
Rollup merge of #61120 - spastorino:eval-place-iterate, r=oli-obk
Make eval_place iterate instead of recurse

r? @oli-obk
2019-05-26 13:37:57 +02:00
Mazdak Farrokhzad a40b82bead
Rollup merge of #61102 - spastorino:move-path-for-iterate, r=oli-obk
Move path for iterate

r? @oli-obk
2019-05-26 13:37:56 +02:00
Mazdak Farrokhzad 58eb22fdae
Rollup merge of #61077 - nnethercote:tweak-prefill, r=petrochenkov
Don't arena-allocate static symbols.

It's just a waste of memory. This also gets rid of the special case for
"".

r? @petrochenkov
2019-05-26 13:37:55 +02:00
loomaclin ffd0dc79da Improve miri's error reporting in check_in_alloc 2019-05-26 13:26:24 +03:00
Andrew Xu c963596c03 Rename "Associated*" to "Assoc*"
modify pretty.rs which recently added "Associated*"
2019-05-26 17:49:02 +08:00
Andrew Xu 46b9ed4fa1 Rename "Associated*" to "Assoc*"
We are going to uniform the terminology of all associated items.
Methods that may or may not have `self` are called "associated
functions". Because `AssociatedFn` is a bit long, we rename `Associated`
to `Assoc`.
2019-05-26 17:49:02 +08:00
bors 566f3d7b08 Auto merge of #61080 - mati865:mingw_pgo, r=sanxiyn
Ship profiler with windows-gnu

Fixes https://github.com/rust-lang/rust/issues/49409

I don't know if we can enable it for testing, windows-gnu jobs are already taking too long: https://github.com/rust-lang/rust/issues/59637.

r? @michaelwoerister

P.S.
I have tested only x86_64 build.
2019-05-26 09:40:11 +00:00
Ralf Jung 082da0c698 rename Scalar::Bits to Scalar::Raw and bits field to data 2019-05-26 11:08:03 +02:00
Michal 'vorner' Vaner 4f1dcb34df
rc::Weak::{as,from,into}_raw
Methods on the Weak to access it as a raw pointer to the data.
2019-05-26 08:53:59 +02:00
Michal 'vorner' Vaner f9d328d7ff
sync::Weak::{as,from,into}_raw
Methods on the Weak to access it as raw pointer to the data.
2019-05-26 08:53:59 +02:00
bors 2268d9923b Auto merge of #61201 - Centril:rollup-975knrk, r=Centril
Rollup of 9 pull requests

Successful merges:

 - #61087 (Tweak `self` arg not as first argument of a method diagnostic)
 - #61114 (Vec: avoid creating slices to the elements)
 - #61144 (Suggest borrowing for loop head on move error)
 - #61149 (Fix spelling in release notes)
 - #61161 (MaybeUninit doctest: remove unnecessary type ascription)
 - #61173 (Auto-derive Encode and Decode implementations of DefPathTable)
 - #61184 (Add additional trace statements to the const propagator)
 - #61189 (Turn turbo 🐟 🍨 into an error)
 - #61193 (Add comment to explain why we change the layout for Projection)

Failed merges:

r? @ghost
2019-05-26 06:09:08 +00:00
airt dbf8c6df9d
docs: fix typo #61197 2019-05-26 12:17:33 +08:00
bors 572892c324 Auto merge of #60852 - alexcrichton:std-backtrace, r=sfackler
std: Depend on `backtrace` crate from crates.io

This commit removes all in-tree support for generating backtraces in
favor of depending on the `backtrace` crate on crates.io. This resolves
a very longstanding piece of duplication where the standard library has
long contained the ability to generate a backtrace on panics, but the
code was later extracted and duplicated on crates.io with the
`backtrace` crate. Since that fork each implementation has seen various
improvements one way or another, but typically `backtrace`-the-crate has
lagged behind libstd in one way or another.

The goal here is to remove this duplication of a fairly critical piece
of code and ensure that there's only one source of truth for generating
backtraces between the standard library and the crate on crates.io.
Recently I've been working to bring the `backtrace` crate on crates.io
up to speed with the support in the standard library which includes:

* Support for `StackWalkEx` on MSVC to recover inline frames with
  debuginfo.
* Using `libbacktrace` by default on MinGW targets.
* Supporting `libbacktrace` on OSX as an option.
* Ensuring all the requisite support in `backtrace`-the-crate compiles
  with `#![no_std]`.
* Updating the `libbacktrace` implementation in `backtrace`-the-crate to
  initialize the global state with the correct filename where necessary.

After reviewing the code in libstd the `backtrace` crate should be at
exact feature parity with libstd today. The backtraces generated should
have the same symbols and same number of frames in general, and there's
not known divergence from libstd currently.

Note that one major difference between libstd's backtrace support and
the `backtrace` crate is that on OSX the crates.io crate enables the
`coresymbolication` feature by default. This feature, however, uses
private internal APIs that aren't published for OSX. While they provide
more accurate backtraces this isn't appropriate for libstd distributed
as a binary, so libstd's dependency on the `backtrace` crate explicitly
disables this feature and forces OSX to use `libbacktrace` as a
symbolication strategy.

The long-term goal of this refactoring is to eventually move us towards
a world where we can drop `libbacktrace` entirely and simply use Gimli
and the surrounding crates for backtrace support. That's still aways off
but hopefully will much more easily enabled by having the source of
truth for backtraces live in crates.io!

Procedurally if we go forward with this I'd like to transfer the
`backtrace-rs` crate to the rust-lang GitHub organization as well, but I
figured I'd hold off on that until we get closer to merging.
2019-05-26 03:26:10 +00:00
oberien 04e45c877f Print file mode of PermissionExt in octal in Examples 2019-05-26 02:55:21 +02:00
Mazdak Farrokhzad 8d247e716b
Rollup merge of #61193 - spastorino:add-comment, r=RalfJung
Add comment to explain why we change the layout for Projection

r? @RalfJung

Addresses the comment in https://github.com/rust-lang/rust/pull/61104/files#r287556257
2019-05-26 02:13:35 +02:00
Mazdak Farrokhzad 6ae3c2b2a4
Rollup merge of #61189 - oli-obk:turbofish_ice, r=varkor
Turn turbo 🐟 🍨 into an error

Master branch part of #60989

r? @varkor
2019-05-26 02:13:33 +02:00
Mazdak Farrokhzad d8b828beea
Rollup merge of #61184 - wesleywiser:const_prop_tracing, r=oli-obk
Add additional trace statements to the const propagator

This makes it easier to figure out when const propagation fails.
2019-05-26 02:13:32 +02:00
Mazdak Farrokhzad f530f90b56
Rollup merge of #61173 - fabric-and-ink:minor-cleanup, r=varkor
Auto-derive Encode and Decode implementations of DefPathTable

See https://github.com/rust-lang/rust/pull/60647#discussion_r283394682
2019-05-26 02:13:31 +02:00
Mazdak Farrokhzad 7b8b23ceba
Rollup merge of #61161 - RalfJung:maybe-uninit, r=Centril
MaybeUninit doctest: remove unnecessary type ascription
2019-05-26 02:13:29 +02:00
Mazdak Farrokhzad fadd73830e
Rollup merge of #61149 - vishalsodani:master, r=Centril
Fix spelling in release notes
2019-05-26 02:13:28 +02:00
Mazdak Farrokhzad b4a3d44a87
Rollup merge of #61144 - estebank:issue-61108, r=matthewjasper
Suggest borrowing for loop head on move error

Fix #61108.
2019-05-26 02:13:27 +02:00
Mazdak Farrokhzad f185ee5fda
Rollup merge of #61114 - RalfJung:vec, r=Gankro
Vec: avoid creating slices to the elements

Instead of `self.deref_mut().as_mut_ptr()` to get a raw pointer to the buffer, use `self.buf.ptr_mut()`. This (a) avoids creating a unique reference to all existing elements without any need, and (b) creates a pointer that can actually be used for the *entire* buffer, and not just for the part of it covered by `self.deref_mut()`.

I also got worried about `RawVec::ptr` returning a `*mut T` from an `&self`, so I added both a mutable and an immutable version.

Cc @Gankro in particular for the `assume` changes -- I don't know why that is not in `Unique`, but I moved it up from `Vec::deref` to `RawVec::ptr` to avoid having to repeat it everywhere.

Fixes https://github.com/rust-lang/rust/issues/60847
2019-05-26 02:13:25 +02:00
Mazdak Farrokhzad 24cc368118
Rollup merge of #61087 - estebank:parsepalooza, r=Centril
Tweak `self` arg not as first argument of a method diagnostic

Mention that `self` is only valid on "associated functions"
```
error: unexpected `self` argument in function
  --> $DIR/self-in-function-arg.rs:1:15
   |
LL | fn foo(x:i32, self: i32) -> i32 { self }
   |               ^^^^ not valid as function argument
   |
   = note: `self` is only valid as the first argument of an associated function
```

When it is a method, mention it must be first
```
error: unexpected `self` argument in function
  --> $DIR/trait-fn.rs:4:20
   |
LL |     fn c(foo: u32, self) {}
   |                    ^^^^ must be the first associated function argument
```

Move a bunch of error recovery methods to `diagnostics.rs` away from `parser.rs`.

Fix #51547. CC #60015.
2019-05-26 02:13:24 +02:00
Alex Crichton d1040fe329 std: Depend on `backtrace` crate from crates.io
This commit removes all in-tree support for generating backtraces in
favor of depending on the `backtrace` crate on crates.io. This resolves
a very longstanding piece of duplication where the standard library has
long contained the ability to generate a backtrace on panics, but the
code was later extracted and duplicated on crates.io with the
`backtrace` crate. Since that fork each implementation has seen various
improvements one way or another, but typically `backtrace`-the-crate has
lagged behind libstd in one way or another.

The goal here is to remove this duplication of a fairly critical piece
of code and ensure that there's only one source of truth for generating
backtraces between the standard library and the crate on crates.io.
Recently I've been working to bring the `backtrace` crate on crates.io
up to speed with the support in the standard library which includes:

* Support for `StackWalkEx` on MSVC to recover inline frames with
  debuginfo.
* Using `libbacktrace` by default on MinGW targets.
* Supporting `libbacktrace` on OSX as an option.
* Ensuring all the requisite support in `backtrace`-the-crate compiles
  with `#![no_std]`.
* Updating the `libbacktrace` implementation in `backtrace`-the-crate to
  initialize the global state with the correct filename where necessary.

After reviewing the code in libstd the `backtrace` crate should be at
exact feature parity with libstd today. The backtraces generated should
have the same symbols and same number of frames in general, and there's
not known divergence from libstd currently.

Note that one major difference between libstd's backtrace support and
the `backtrace` crate is that on OSX the crates.io crate enables the
`coresymbolication` feature by default. This feature, however, uses
private internal APIs that aren't published for OSX. While they provide
more accurate backtraces this isn't appropriate for libstd distributed
as a binary, so libstd's dependency on the `backtrace` crate explicitly
disables this feature and forces OSX to use `libbacktrace` as a
symbolication strategy.

The long-term goal of this refactoring is to eventually move us towards
a world where we can drop `libbacktrace` entirely and simply use Gimli
and the surrounding crates for backtrace support. That's still aways off
but hopefully will much more easily enabled by having the source of
truth for backtraces live in crates.io!

Procedurally if we go forward with this I'd like to transfer the
`backtrace-rs` crate to the rust-lang GitHub organization as well, but I
figured I'd hold off on that until we get closer to merging.
2019-05-25 17:09:45 -07:00
Santiago Pastorino 294dc18208 Make move_path_for iterate instead of recurse 2019-05-26 00:51:55 +02:00
bors 483567e097 Auto merge of #56595 - ljedrz:x_py_clippy_fix, r=oli-obk
Add clippy and fix commands to x.py

Since they are kind of similar in nature, I have used the same approach as for `cargo check`. At least some of the boilerplate could probably be shared, but I'd prefer to gather some feedback before I decide to merge them more aggressively.

This works reasonably well for `clippy`; with `-A clippy::all` and some extra `#![feature(rustc_private)]`s almost the whole codebase can be processed. There are some concerns, though:
- unlike `check`, in order to be able to traverse all the crates, some of them need to be marked with the `#![feature(rustc_private)]` attribute
- `-W clippy::all` breaks on any error. Is there a way to produce errors but not have them break the progress?
- I'm not sure how to redirect the errors in a way that would show colors; for now I was able to de-jsonize and print them (something not needed for `check`)

`cargo fix` is much more stubborn; it refuses to acknowledge crates like `core` and `std`, so it doesn't progress much at all.

Since this is a bit more tricky than I have envisioned, I need some guidance:
- is this the right approach or am I doing something very wrong ^^?
- why are the extra `rustc_private` features necessary? I was hoping for the same treatment as `check`
- are changes in `clippy` and `cargo fix` needed e.g. in order to produce errors in the same manner as `check` or did I miss something?
- do we need this level of file granularity (e.g. for futureproofing) or can `check`, `clippy` and `fix` files be condensed?

Hopes-to-fix: https://github.com/rust-lang/rust/issues/53896

Cc @alexcrichton, @zackmdavis
2019-05-25 22:42:12 +00:00
Santiago Pastorino a0700d062e Inline move_path_for_projection inside move_path_for 2019-05-25 23:52:43 +02:00
Chris Gregory b1ae49cae0 Annotate test with #[test] 2019-05-25 16:37:38 -05:00
Santiago Pastorino e8beea7019 Make eval_place iterate instead of recurse 2019-05-25 23:36:55 +02:00
Santiago Pastorino e6aa4b8033 Add comment to explain why we change the layout for Projection 2019-05-25 22:28:15 +02:00