Ralf Jung
0d596f29d9
FIXME
2018-11-05 09:59:05 +01:00
Ralf Jung
91cad39614
visit_aggregate with an iterator; fix some comment typos
2018-11-05 09:59:05 +01:00
Ralf Jung
996a42557e
the visitor can already load the value for visit_primitive
2018-11-05 09:40:05 +01:00
Ralf Jung
c2677211f6
all values can convert to operators
2018-11-05 09:37:14 +01:00
Ralf Jung
b096f0846e
finally this actually looks like a visitor
2018-11-05 09:37:13 +01:00
Ralf Jung
98295e9eb2
use more traditional walk_array/visit_array instead of the handle_array hook
2018-11-05 09:29:39 +01:00
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