Commit Graph

101277 Commits

Author SHA1 Message Date
Santiago Pastorino
d32c2865d6
Intern place projection 2019-10-22 10:33:36 -03:00
Santiago Pastorino
a19aed2226
Add intern table for List<PlaceElem<'tcx>> 2019-10-22 10:33:36 -03:00
Santiago Pastorino
190802cfca
Pattern match over PlaceRef rather than Place
This prepares the code base for when projection is interned. Place's
projection field is going to be `&List<PlaceElem<'tcx>>` so we won't be
able to pattern match against it.
2019-10-22 10:33:30 -03:00
Yuki Okushi
a1f65895a0 Add link to async/await 2019-10-22 21:10:51 +09:00
bors
57bfb80962 Auto merge of #65503 - popzxc:refactor-libtest, r=wesleywiser
Refactor libtest

## Short overview

`libtest` got refactored and splitted into smaller modules

## Description

`libtest` module is already pretty big and hard to understand. Everything is mixed up: CLI, console output, test execution, etc.

This PR splits `libtest` into smaller logically-consistent modules, makes big functions smaller and more readable, and adds more comments, so `libtest` will be easier to understand and maintain.

Although there are a lot of changes, all the refactoring is "soft", meaning that no public interfaces were affected and nothing should be broken.

Thus this PR (at least should be) completely backward-compatible.

r? @wesleywiser
cc @Centril
2019-10-22 12:01:41 +00:00
varkor
2dda8ad98a Use E0741 for structural match error 2019-10-22 12:28:23 +01:00
varkor
7f13a4a80a Remove FIXME 2019-10-22 12:26:32 +01:00
varkor
9f788f3a2b Fix rustdoc const generics test 2019-10-22 12:26:32 +01:00
varkor
f0e6cd9f89 Remove "type parameter depends on const parameter" error from resolution 2019-10-22 12:26:32 +01:00
varkor
133cd2cfaf Search for generic parameters when finding non-structural_match types 2019-10-22 12:26:32 +01:00
varkor
bbd53deaeb Forbid non-structural_match types in const generics 2019-10-22 12:26:32 +01:00
varkor
600607f45a Move search_for_adt_without_structural_match to ty/mod 2019-10-22 12:26:32 +01:00
Eduard-Mihai Burtescu
371cc39b25 rustc_metadata: use a table for impl_trait_ref. 2019-10-22 14:21:16 +03:00
Eduard-Mihai Burtescu
7a80a11a83 rustc_metadata: use a table for fn_sig. 2019-10-22 14:21:14 +03:00
Michael Woerister
66a0253780 self-profiling: Remove module names from some event-ids in codegen backend. 2019-10-22 12:53:46 +02:00
Eduard-Mihai Burtescu
74db3e8a9e rustc_metadata: use a table for super_predicates. 2019-10-22 13:42:11 +03:00
Dylan DPC
07f2f054ec
Update error_codes.rs 2019-10-22 12:07:07 +02:00
Yuki Okushi
7a85c430fb Add test for issue-63496 2019-10-22 18:52:08 +09:00
Guillaume Gomez
ed965f1b6a Update E0659 error code long explanation to 2018 edition 2019-10-22 11:52:05 +02:00
Ralf Jung
fc5b48514e add comments 2019-10-22 10:18:38 +02:00
Ralf Jung
768965a2a6 bring back some Debug instances for Miri 2019-10-22 10:15:56 +02:00
Yuki Okushi
93fab980e3 Add test for issue-52437 2019-10-22 17:05:03 +09:00
Yuki Okushi
dd0f98bc3e Add test for issue-51431 2019-10-22 17:05:03 +09:00
Yuki Okushi
a239c8dfb2 Add test for issue-41366 2019-10-22 17:05:03 +09:00
yjhmelody
40f92b3b05 refactor maybe_append 2019-10-22 12:25:14 +08:00
bors
50ffa79589 Auto merge of #65501 - alexcrichton:remove-emscripten-backend, r=Mark-Simulacrum
Remove `src/llvm-emscripten` submodule

With #65251 landed there's no need to build two LLVM backends and ship
them with rustc, every target we have now uses the same LLVM backend!

This removes the `src/llvm-emscripten` submodule and additionally
removes all support from rustbuild for building the emscripten LLVM
backend. Multiple codegen backend support is left in place for now, and
this is intended to be an easy 10-15 minute win on CI times by avoiding
having to build LLVM twice.
2019-10-22 04:09:28 +00:00
oxalica
c787fe3c70
Fix check of statx 2019-10-22 12:02:32 +08:00
wangxiangqing
c027be0dd0 Deprecated proc_macro doesn't trigger warning on build library
Change-Id: Ib3a396e7334d209fe6c6ef425bbfc7b2ae471378
2019-10-22 08:47:52 +08:00
Dan Gohman
3f1af9056d Code cleanups following up on #65576.
This makes a few code cleanups to follow up on the review comments in
https://github.com/rust-lang/rust/pull/65576.
2019-10-21 17:29:40 -07:00
bors
6576f4be5a Auto merge of #65671 - Centril:rollup-00glhmb, r=Centril
Rollup of 7 pull requests

Successful merges:

 - #62330 (Change untagged_unions to not allow union fields with drop)
 - #65092 (make is_power_of_two a const function)
 - #65621 (miri: add write_bytes method to Memory doing bounds-checks and supporting iterators)
 - #65647 (Remove unnecessary trait bounds and derivations)
 - #65653 (keep the root dir clean from debugging)
 - #65660 (Rename `ConstValue::Infer(InferConst::Canonical(..))` to `ConstValue::Bound(..)`)
 - #65663 (Fix typo from #65214)

Failed merges:

r? @ghost
2019-10-22 00:20:12 +00:00
Yuki Okushi
4fcc784c9a Apply suggestions 2019-10-22 09:02:58 +09:00
Yuki Okushi
cde60e82a0 Add long error explanation for E0728 2019-10-22 08:48:01 +09:00
Santiago Pastorino
270541221f
Move as_local impl to from Place to PlaceRef 2019-10-21 20:20:47 -03:00
Santiago Pastorino
0b5ee56da8
PlaceElem<'tcx> should be Copy 2019-10-21 18:53:44 -03:00
Alex Crichton
c7d285b781 Remove src/llvm-emscripten submodule
With #65251 landed there's no need to build two LLVM backends and ship
them with rustc, every target we have now uses the same LLVM backend!

This removes the `src/llvm-emscripten` submodule and additionally
removes all support from rustbuild for building the emscripten LLVM
backend. Multiple codegen backend support is left in place for now, and
this is intended to be an easy 10-15 minute win on CI times by avoiding
having to build LLVM twice.
2019-10-21 13:05:31 -07:00
Mazdak Farrokhzad
56756c28a0
Rollup merge of #65663 - Amanieu:typo, r=varkor
Fix typo from #65214
2019-10-21 22:00:54 +02:00
Mazdak Farrokhzad
c461d02e08
Rollup merge of #65660 - varkor:canonical-const-to-bound-const, r=eddyb
Rename `ConstValue::Infer(InferConst::Canonical(..))` to `ConstValue::Bound(..)`

It already has the right form, so this is just a renaming. Fixes https://github.com/rust-lang/rust/issues/65655.

r? @eddyb
2019-10-21 22:00:53 +02:00
Mazdak Farrokhzad
760cd9759e
Rollup merge of #65653 - RalfJung:gitignore, r=Mark-Simulacrum,Centril
keep the root dir clean from debugging

We landed this before with https://github.com/rust-lang/rust/pull/63307 but recently in https://github.com/rust-lang/rust/pull/65630 the IMO bad ignore crept back in.

If you regularly do graphviz-based debugging and you are fine leaving junk in the rustc root dir, please configure your local `.git/info/exclude`. But most people working on rustc don't work with graphciz all that often (I for once never did), and not everyone likes to have stray generated files in their source dirs.

Also Cc https://github.com/rust-lang/rust/pull/63373 https://github.com/rust-lang/rust/pull/53768 @ecstatic-morse @Mark-Simulacrum
2019-10-21 22:00:51 +02:00
Mazdak Farrokhzad
9072e108b5
Rollup merge of #65647 - nnethercote:rm-unnecessary-traits, r=Centril
Remove unnecessary trait bounds and derivations

This PR removes unnecessary trait bounds and derivations from many types.

r? @nikomatsakis
2019-10-21 22:00:50 +02:00
Mazdak Farrokhzad
e825e21e7a
Rollup merge of #65621 - RalfJung:write_bytes, r=oli-obk
miri: add write_bytes method to Memory doing bounds-checks and supporting iterators

This lets us avoid some direct `Allocation` accesses in Miri.
2019-10-21 22:00:49 +02:00
Mazdak Farrokhzad
a160258927
Rollup merge of #65092 - tspiteri:const-is-pow2, r=oli-obk
make is_power_of_two a const function

This makes `is_power_of_two` a const function by using `&` instead of short-circuiting `&&`; Rust supports bitwise `&` for `bool` and short-circuiting is not required in the existing expression.

I don't think this needs a const-hack label as I don't find the changed code less readable, if anything I prefer that it is clearer that short circuiting is not used.

@oli-obk
2019-10-21 22:00:47 +02:00
Mazdak Farrokhzad
aba84894d1
Rollup merge of #62330 - SimonSapin:no-drop-in-union-fields, r=RalfJung
Change untagged_unions to not allow union fields with drop

This is a rebase of #56440, massaged to solve merge conflicts and make the test suite pass.

Change untagged_unions to not allow union fields with drop

Union fields may now never have a type with attached destructor. This for example allows unions to use arbitrary field types only by wrapping them in `ManuallyDrop` (or similar).

The stable rule remains, that union fields must be `Copy`. We use the new rule for the `untagged_union` feature.

Tracking issue: https://github.com/rust-lang/rust/issues/55149
2019-10-21 22:00:45 +02:00
varkor
e9c2685167 Rename ConstValue::Infer(InferConst::Canonical(..)) to ConstValue::Bound(..) 2019-10-21 20:50:41 +01:00
Stefan Lankes
8a11c61a7a remove hermit-abi from the wrong list, add to the whitelist 2019-10-21 20:23:59 +02:00
Stefan Lankes
0a7ba6b9fc add hermit-abi to the whitelist 2019-10-21 19:43:24 +02:00
Stefan Lankes
99b2e04a6e add aarch64 support for HermitCore 2019-10-21 19:39:38 +02:00
Mikko Rantanen
ff1860ad76
Fix the start/end byte positions in the compiler JSON output 2019-10-21 19:28:29 +03:00
wangxiangqing
33910f9d86 Deprecated proc_macro doesn't trigger warning on build library
Change-Id: Ib3a396e7334d209fe6c6ef425bbfc7b2ae471378
2019-10-22 00:08:14 +08:00
Ralf Jung
ebc9a1ab10 expand comment 2019-10-21 18:05:48 +02:00
bors
10f12fe3e7 Auto merge of #65661 - JohnTitor:rollup-68la1fq, r=JohnTitor
Rollup of 5 pull requests

Successful merges:

 - #65544 (Added doc on keyword break)
 - #65620 (Correctly note code as Ok not error for E0573)
 - #65624 ([mir-opt] Improve SimplifyLocals pass so it can remove unused consts)
 - #65650 (use unwrap_or in lint code)
 - #65652 (Fix `canonicalize_const_var` leaking inference variables)

Failed merges:

r? @ghost
2019-10-21 15:50:37 +00:00