Commit Graph

85768 Commits

Author SHA1 Message Date
Guillaume Gomez
424fecdfb6 Add precision for create_dir function 2018-11-04 12:37:43 +01:00
bors
86b88e6a85 Auto merge of #55432 - zackmdavis:single_life, r=nikomatsakis
single life

 * structured ~~autofixable~~ (well, pending #53934 and rust-lang-nursery/rustfix#141) suggestions for the single-use-lifetimes lint in the case of function and method reference args
 * don't consider the anonymous lifetime `'_` as "single-use" (it's intended for exactly this sort of thing)

![single_life](https://user-images.githubusercontent.com/1076988/47613227-3b2b6400-da48-11e8-8efd-cb975ddf537d.png)

r? @nikomatsakis
2018-11-04 09:45:49 +00:00
bors
794fc062be Auto merge of #55455 - estebank:expected-descr, r=michaelwoerister
Use token description in "expected/found" parse messages

Fix #54309.
2018-11-04 06:56:11 +00:00
Hideki Sekine
f872303623 [ci] run-make/thumb-none-qemu: add .cargo/config 2018-11-04 12:32:25 +09:00
bors
6d69fe7a2f Auto merge of #54861 - rep-nop:find_main_in_doctest, r=estebank
rustdoc: Replaces fn main search and extern crate search with proper parsing during doctests.

Fixes #21299.
Fixes #33731.

Let me know if there's any additional changes you'd like made!
2018-11-04 01:43:40 +00:00
varkor
8277ba2d30 Make "all possible cases" help message uniform with existing help messages
Specifically no capitalisation or trailing full stops.
2018-11-03 23:53:10 +00:00
bors
4c5c05d7d9 Auto merge of #55662 - matthiaskrgr:clippy_update, r=oli-obk
submodules: update clippy from a20599ab to 71ec4ff6

Should fix clippy toolstat.

Changes:

````
rustup https://github.com/rust-lang/rust/pull/55330/
Update stderr
Rename test files
Also lint cfg_attr(.., rustfmt::skip)
Add tests from rustfmt::skip test file
Run update_lints.py script
Add test for non-crate-level inner attributes
Differ between inner and outer attributes
Add tests
Add cfg_attr(rustfmt) lint
Addressed comments.
Fix dogfood error.
Added lints `into_iter_on_ref` and `into_iter_on_array`. Fix #1565.
Allow single_match_else
Update stderr
Add copyright statement©
Fix typos
Fix dogfood error
Fix typo and indentation
run update_lints script
Add tests for unknwon_clippy_lints lint
Add new lint: unknwon_clippy_lintsg
clippy: fix pedantic warnings and run clippy::pedantic lints on the codebase.
Fix a false-positive of needless_borrow
UI test cleanup: Extract match_overlapping_arm tests
UI test cleanup: Extract expect_fun_call tests
Add missing code of conduct file
Use slice patterns instead of padding
Fix dogfood and pedantic lints
ci: when installing rust-toolchain-installer-master, install it in debug mode to save some time in ci.
RIIR update lints: Generate deprecated lints
Replace big if/else expression with match
````
2018-11-03 23:02:04 +00:00
bors
04fdb44f5c Auto merge of #55661 - kennytm:fix-exclude, r=alexcrichton
Fixed the bug in bootstrap where --exclude was ignored for run-pass test

This should fix the 3 hour timeout on AppVeyor which happened a lot recently.

Additionally, further rebalanced the AppVeyor subsets by moving "ui" and "linkchecker" into Set 2.
2018-11-03 20:13:47 +00:00
Matthias Krüger
8a0be2c5c0 submodules: update clippy from a20599ab to 71ec4ff6
Should fix clippy toolstat.

Changes:

````
rustup https://github.com/rust-lang/rust/pull/55330/
Update stderr
Rename test files
Also lint cfg_attr(.., rustfmt::skip)
Add tests from rustfmt::skip test file
Run update_lints.py script
Add test for non-crate-level inner attributes
Differ between inner and outer attributes
Add tests
Add cfg_attr(rustfmt) lint
Addressed comments.
Fix dogfood error.
Added lints `into_iter_on_ref` and `into_iter_on_array`. Fix #1565.
Allow single_match_else
Update stderr
Add copyright statement©
Fix typos
Fix dogfood error
Fix typo and indentation
run update_lints script
Add tests for unknwon_clippy_lints lint
Add new lint: unknwon_clippy_lintsg
clippy: fix pedantic warnings and run clippy::pedantic lints on the codebase.
Fix a false-positive of needless_borrow
UI test cleanup: Extract match_overlapping_arm tests
UI test cleanup: Extract expect_fun_call tests
Add missing code of conduct file
Use slice patterns instead of padding
Fix dogfood and pedantic lints
ci: when installing rust-toolchain-installer-master, install it in debug mode to save some time in ci.
RIIR update lints: Generate deprecated lints
Replace big if/else expression with match
````
2018-11-03 20:13:53 +01:00
kennytm
2bde4e7c05
Move a few more tests into the appveyor-subset-2.
This should allow the timings be more balanced.
2018-11-04 02:33:38 +08:00
kennytm
a257332159
Ensure --exclude is checked against PathSet::Suite
Fix the recent spurious 3 hour timeouts.
2018-11-04 02:32:53 +08:00
bors
a3f0f5107e Auto merge of #55101 - alexreg:trait-aliases, r=nikomatsakis
Implement trait aliases (RFC 1733)

Extends groundwork done in https://github.com/rust-lang/rust/pull/45047, and fully implements https://github.com/rust-lang/rfcs/pull/1733.

CC @durka @nikomatsakis
2018-11-03 17:30:37 +00:00
Alex Crichton
f3428a7dc4 rustc: Delete grouping logic from the musl target
This commit deletes the injection of `-(` and `-)` options to the linker
for the musl targets. This actually causes problems today on nightly if
you execute:

    $ echo 'fn main() {}' >> foo.rs
    $ rustc --target x86_64-unknown-linux-musl -C panic=abort

you get a linker error about "cannot nest groups". This comes about
because rustc injects its own `--start-group` and `--end-group`
variables which clash with the outer `-(` and `-)` variables. It's not
entirely clear to me why this doesn't affect the musl target by default
(in `-C panic=unwind` mode).

The compiler's own injection of `--start-group` and `--end-group` should
solve the issues mentioned in the comment for injecting `-(` and `-)` as
well.
2018-11-03 10:23:51 -07:00
bors
3d28ee3e34 Auto merge of #55646 - GuillaumeGomez:rollup, r=GuillaumeGomez
Rollup of 5 pull requests

Successful merges:

 - #54162 (Hide default impls items)
 - #55555 (Make `-Z ls` list the actual filename of external dependencies)
 - #55567 (add test for deriving Debug on uninhabited enum)
 - #55568 (test that rustdoc doesn't overflow on a big enum)
 - #55598 (publish-toolstate: ping maintainers when a tool builds again)

Failed merges:

r? @ghost
2018-11-03 14:51:05 +00:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
9e479c2818
Update src/librustc_mir/monomorphize/partitioning.rs
Co-Authored-By: bjorn3 <bjorn3@users.noreply.github.com>
2018-11-03 14:45:50 +01:00
bjorn3
c8599191e8 Remove rustc_metadata_utils, which contains only one function 2018-11-03 14:31:09 +01:00
bjorn3
d46246b14a Move collect_and_partition_mono_items to rustc_mir 2018-11-03 14:31:09 +01:00
Guillaume Gomez
723edf7793
Rollup merge of #55598 - nrc:tool-bot, r=kennytm
publish-toolstate: ping maintainers when a tool builds again

And add @Xanewok as an RLS maintainer

r? @kennytm

Motivation is that I see when the RLS gets broken, but have to poll the website to see when it is fixed, I'd prefer to get pinged.
2018-11-03 13:40:39 +01:00
Guillaume Gomez
c674335ba3
Rollup merge of #55568 - durka:rustdoc-big-enum, r=nikomatsakis
test that rustdoc doesn't overflow on a big enum

Adds a test to close #25295. The test case depended on `enum_primitive` so I just basically pulled its source into an auxiliary file, is that the right way to do it?
2018-11-03 13:40:37 +01:00
Guillaume Gomez
c5c6e4239f
Rollup merge of #55567 - durka:derive-debug-uninhabited, r=nikomatsakis
add test for deriving Debug on uninhabited enum

Adds a test to close #38885.
2018-11-03 13:40:35 +01:00
Guillaume Gomez
8ab8f5342d
Rollup merge of #55555 - aidanhs:aphs-better-z-ls, r=alexcrichton
Make `-Z ls` list the actual filename of external dependencies

The hash is pointless for external consumers - extra_filename is the thing that actually gets used, per https://github.com/rust-lang/rust/blob/ca2639e/src/librustc_metadata/locator.rs#L312-L313
2018-11-03 13:40:34 +01:00
Guillaume Gomez
336b02347f
Rollup merge of #54162 - GuillaumeGomez:hide-default-impls-items, r=QuietMisdreavus
Hide default impls items

Follow up of #51885.
Fixes #54025.

cc @Mark-Simulacrum

r? @QuietMisdreavus

And screenshots of course:

<img width="1440" alt="screen shot 2018-09-12 at 23 30 35" src="https://user-images.githubusercontent.com/3050060/45454424-1ff8d500-b6e4-11e8-9257-030322495d58.png">

<img width="1440" alt="screen shot 2018-09-12 at 23 30 42" src="https://user-images.githubusercontent.com/3050060/45454431-2424f280-b6e4-11e8-8d65-db0d85ac18f0.png">
2018-11-03 13:40:32 +01:00
bjorn3
942864a000 Move cg_llvm:🔙:linker to cg_utils 2018-11-03 13:35:09 +01:00
bors
2ad8c7b350 Auto merge of #55330 - scalexm:bound-ty, r=nikomatsakis
Add support for bound types

This PR may have some slight performance impacts, I don't know how hot is the code I touched.

Also, this breaks clippy and miri.

r? @nikomatsakis
2018-11-03 12:11:23 +00:00
scalexm
c5ed72fbfe Substitute binders directly 2018-11-03 11:41:55 +01:00
scalexm
0751997530 Rename as_bound_var to assert_bound_var 2018-11-03 11:41:55 +01:00
scalexm
af8196b9d3 Fix doc comment 2018-11-03 11:41:55 +01:00
scalexm
142359c220 Extend ty::fold::RegionReplacer to ty::fold::BoundVarReplacer
Use the new `BoundVarReplacer` to perform canonical substitutions.
2018-11-03 11:41:55 +01:00
scalexm
d99195ad8f Rename Binder::no_late_bound_regions to Binder::no_bound_vars 2018-11-03 11:41:55 +01:00
scalexm
45be1ac0fc Remove ReCanonical in favor of ReLateBound 2018-11-03 11:41:55 +01:00
scalexm
1f8de94f3b Adjust bound tys indices in canonicalization 2018-11-03 11:41:55 +01:00
scalexm
ee569c796d Rename BoundTy field level -> index 2018-11-03 11:41:55 +01:00
scalexm
3dd303aa89 Rename BoundTyIndex to BoundVar 2018-11-03 11:41:55 +01:00
scalexm
d0447550da Shift both late bound regions and bound types 2018-11-03 11:41:51 +01:00
John Paul Adrian Glaubitz
e04e5faa3f ci: Add Dockerfile for dist-powerpcspe-linux 2018-11-03 11:41:35 +01:00
scalexm
1003b7f85e Move BoundTy to ty::TyKind 2018-11-03 11:33:14 +01:00
bors
b6e8f9dbdc Auto merge of #55238 - alexcrichton:rm-jemalloc, r=estebank
Remove the `alloc_jemalloc` crate

This commit removes the `alloc_jemalloc` crate from the standard library and all related configuration. We will no longer be shipping this unstable crate. Rationale for this is provided on https://github.com/rust-lang/rust/issues/36963 and the many linked issues, but I can inline rationale here if desired!

We currently rely on jemalloc for increased perf in the Rust compiler, however. [This perf run shows](https://perf.rust-lang.org/compare.html?start=74ff7dcb1388e60a613cd6050bcd372a3cc4998b&end=7e7928dc0340d79b404e93f0c79eb4b946c1d669&stat=wall-time) that if we switch to glibc 2.23's allocator that it's slower than jemalloc across many benchmarks. [This perf run, however](https://perf.rust-lang.org/compare.html?start=22cc2ae8057d14e980b7c784e1eb2eee26b59e7d&end=10c95ccfa7a7adc12f4e608621ca29f9b98eed29), shows that if we use `jemalloc-sys` from crates.io then rustc actually gets faster across all benchmarks! (presumably because it has a more recent version of jemalloc than our submodule).

As a result, it's expected that this doesn't regress any code (as it's just removing an unstable crate) and it should actually improve rustc performance because it updates jemalloc.

Closes #36963
2018-11-03 09:33:10 +00:00
bors
757d6cc91a Auto merge of #55363 - pietroalbini:update-cargo-vendor, r=Mark-Simulacrum
Bump cargo-vendor version

Currently we pin `cargo-vendor` to 0.1.4, which doesn't set the `User-Agent` HTTP header. crates.io is going to require that header in the near future, so this PR bumps the pinned version of the crate to the latest one (which correctly sets the header).

r? @Mark-Simulacrum
cc @sgrif
2018-11-03 06:50:19 +00:00
Alex Burka
706a1cc0f2 fix test fallout 2018-11-03 05:03:30 +00:00
Alexander Regueiro
417168587b Fixed bug with Self type param coming before lifetimes. 2018-11-03 04:28:29 +00:00
Alexander Regueiro
c04559fe9e Added WF checking for trait alias definitions. 2018-11-03 04:09:35 +00:00
Alexander Regueiro
a62d0785a6 Fixed unsoundness hole. 2018-11-03 04:09:35 +00:00
Alexander Regueiro
469c3bf75b Resolve nits brought up in review. 2018-11-03 04:09:34 +00:00
Alexander Regueiro
4bdc3d833a Extended elaboration for trait aliases to include arbitrary bounds. 2018-11-03 04:09:34 +00:00
Alexander Regueiro
a8fcfcef30 Add more tests. 2018-11-03 04:09:34 +00:00
Alexander Regueiro
1cda3c3b49 Added section to Unstable Book. 2018-11-03 04:09:34 +00:00
Alexander Regueiro
4751953d5f Added tests. 2018-11-03 04:09:34 +00:00
Alexander Regueiro
90041d638b Added support for trait aliases as object types. 2018-11-03 04:09:34 +00:00
Alexander Regueiro
34792d9f6a Added support for trait aliases as bounds. 2018-11-03 04:09:33 +00:00
bors
3fc70e8d46 Auto merge of #54383 - mikeyhew:custom-receivers-object-safety, r=nikomatsakis
Take 2: Implement object-safety and dynamic dispatch for arbitrary_self_types

This replaces #50173. Over the months that that PR was open, we made a lot of changes to the way this was going to be implemented, and the long, meandering comment thread and commit history would have been confusing to people reading it in the future. So I decided to package everything up with new, straighforward commits and open a new PR.

Here are the main points. Please read the commit messages for details.

- To simplify codegen, we only support receivers that have the ABI of a pointer. That means they are builtin pointer types, or newtypes thereof.
- We introduce a new trait: `DispatchFromDyn<T>`, similar to `CoerceUnsized<T>`. `DispatchFromDyn` has extra requirements that `CoerceUnsized` does not: when you implement `DispatchFromDyn` for a struct, there cannot be any extra fields besides the field being coerced and `PhantomData` fields. This ensures that the struct's ABI is the same as a pointer.
- For a method's receiver (e.g. `self: Rc<Self>`) to be object-safe, it needs to have the following property:
    - let `DynReceiver` be the receiver when `Self = dyn Trait`
    - let `ConcreteReceiver` be the receiver when `Self = T`, where `T` is some unknown `Sized` type that implements `Trait`, and is the erased type of the trait object.
    - `ConcreteReceiver` must implement `DispatchFromDyn<DynReceiver>`

In the case of `Rc<Self>`, this requires `Rc<T>: DispatchFromDyn<Rc<dyn Trait>>`

These rules are explained more thoroughly in the doc comment on `receiver_is_dispatchable` in object_safety.rs.

r? @nikomatsakis and @eddyb

cc @arielb1 @cramertj @withoutboats

Special thanks to @nikomatsakis for getting me un-stuck when implementing the object-safety checks, and @eddyb for helping with the codegen parts.

EDIT 2018-11-01: updated because CoerceSized has been replaced with DispatchFromDyn
2018-11-03 02:37:29 +00:00