Ralf Jung
aea61e398c
converting a VisitorValue to a MemPlace must not mutate anything
2018-11-05 09:17:48 +01:00
Ralf Jung
77c283465c
Also test for undef in enum discriminant
...
The error message is sub-par, but fixing that requries moving ScalarMaybeUndef
to librustc which would conflict badly with another PR that is in flight.
2018-11-05 09:17:48 +01:00
Ralf Jung
fa01e04fbb
fix validation error on non-integer enum discriminants
2018-11-05 09:17:48 +01:00
Ralf Jung
6d24b37a70
let the Value handle enum projections, so the visitor does not have to care
2018-11-05 09:17:48 +01:00
Ralf Jung
b0f1b1a73e
provide some default implementations
2018-11-05 09:17:48 +01:00
Ralf Jung
33770abbe2
add visit() hook to the trait
2018-11-05 09:17:48 +01:00
Ralf Jung
fdc3a3ed0c
fix for pre-NLL rustc
2018-11-05 09:17:48 +01:00
Ralf Jung
c8e471fac3
also allow visiting places and mplaces
2018-11-05 09:17:48 +01:00
Ralf Jung
7d7bd9b6c2
reduce the amount of traversal/projection code that the visitor has to implement itself
2018-11-05 09:17:48 +01:00
Ralf Jung
5b5e076b47
generalize the traversal part of validation to a ValueVisitor
2018-11-05 09:15:46 +01:00
bors
0117b42f66
Auto merge of #55593 - nikic:remove-llvm-4-checks, r=rkruppe
...
Remove checks for LLVM < 4.0
While we still have to support LLVM 4.0 for Emscripten, we can drop checks for LLVM >= 4.0 and < 4.0.
2018-11-05 01:41:55 +00:00
bors
248745ab0c
Auto merge of #55569 - durka:must-use-external-macro, r=alexcrichton
...
enforce unused-must-use lint in macros
Fixes #55516 by turning on the UNUSED_MUST_USE lint within macros.
2018-11-04 22:56:23 +00:00
bors
e6c5cf9234
Auto merge of #55665 - eddyb:by-ref-layout-of, r=oli-obk
...
rustc_target: pass contexts by reference, not value.
`LayoutOf` now takes `&self` instead of `self`, and so does every method generic over a context that implements `LayoutOf` and/or other traits, like `HasDataLayout`, `HasTyCtxt`, etc.
Originally using by-value `Copy` types was relevant because `TyCtxt` was one of those types, but now `TyCtxt::layout_of` is separate from `LayoutOf`, and `TyCtxt` is not an often used layout context.
Passing these context by reference is a lot nicer for miri, which has `self: &mut EvalContext`, and needed `f(&self)` (that is, creating `&&mut EvalContext` references) for layout purposes.
Now, the `&mut EvalContext` can be passed to a function expecting `&C`, directly.
This should help with #54012 / #55627 (to not need `where &'a T::Cx: LayoutOf` bounds).
r? @nikomatsakis or @oli-obk or @nagisa cc @sunfishcode
2018-11-04 18:56:43 +00:00
Eduard-Mihai Burtescu
d00d42d079
rustc_target: pass contexts by reference, not value.
2018-11-04 20:33:57 +02:00
bors
ca4fa6f567
Auto merge of #55393 - oli-obk:immediate_immediately, r=RalfJung
...
Rename `Value` to `Immediate` for miri
r? @RalfJung
2018-11-04 15:06:32 +00:00
bors
ac708826b0
Auto merge of #55349 - bjorn3:rustc_mir_collect_and_partition_mono_items, r=oli-obk
...
Move collect_and_partition_mono_items to rustc_mir
Most of the logic of it is inside rustc_mir anyway.
Also removes the single function crate rustc_metadata_utils. Based on #55225
2018-11-04 12:20:55 +00: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
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
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
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
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