Commit Graph

102823 Commits

Author SHA1 Message Date
Pietro Albini
b6dc227299
Rollup merge of #66678 - GuillaumeGomez:remove-useless-error-index-line, r=Dylan-DPC
Remove useless line for error index generation

As you can see here: https://github.com/rust-lang/rust/blob/master/src/librustc_error_codes/error_codes.rs#L10, this replacement is now completely useless.

r? @Dylan-DPC
2019-11-25 15:05:23 +01:00
Pietro Albini
c75044f463
Rollup merge of #66569 - pietroalbini:gha-1, r=alexcrichton
GitHub Actions: preparations, part 1

This PR adds the first batch of commits in preparation for GitHub Actions:

* Added GitHub Actions support in `src/ci/shared.sh` and bootstrap.
* Addded a `setup-environment.sh` script which guesses and sets the `DEPLOY`, `DEPLOY_ALT` and `IMAGE` environment variables automatically, to reduce the verbosity of the CI configuration.

This PR does **not** yet add any builders on GitHub Actions.

r? @alexcrichton
2019-11-25 15:05:21 +01:00
Pietro Albini
2b4af10367
Rollup merge of #66512 - jsgf:process-argv0, r=Dylan-DPC
Add unix::process::CommandExt::arg0

This allows argv[0] to be overridden on the executable's command-line. This also makes the program
executed independent of argv[0].

Does Fuchsia have the same semantics? I'm assuming so.

Addresses: #66510
2019-11-25 15:05:19 +01:00
Pietro Albini
7520f6da69
Rollup merge of #65613 - Mark-Simulacrum:rustdoc-preserve-ws, r=GuillaumeGomez
Preserve whitespace inside one-backtick codeblocks

Previously this was only done inside short docblocks (e.g., summary
lines), but we should also do so in general.

Fixes #65555
2019-11-25 15:05:11 +01:00
bors
582a4eaee6 Auto merge of #66279 - cjgillot:hashstable, r=Zoxc
Use proc-macro to derive HashStable everywhere

Hello,

A second proc-macro is added to derive HashStable for crates librustc depends on.
This proc-macro `HashStable_Generic` (to bikeshed) allows to decouple code and strip much of librustc's boilerplate.

Still, two implementations `Span` and `TokenKind` require to be placed in librustc.
The latter only depends on the `bug` macro. Advise welcome on how to sever that link.
A trait `StableHasingContextLike` has been introduced at each crate root,
in order to handle those implementations which require librustc's very `StableHashingContext`.

This overall effort allowed to remove the `impl_stable_hash_for` macro.

Each commit passes the `x.py check`.
I still have to double check there was no change in the implementation.
2019-11-25 09:28:59 +00:00
bors
4eee955502 Auto merge of #66669 - petrochenkov:tup2attr, r=matthewjasper
Fix some issues with attributes on unnamed fields

Fixes https://github.com/rust-lang/rust/issues/66487
Fixes https://github.com/rust-lang/rust/issues/66555
2019-11-25 05:41:27 +00:00
bors
c9bacb70f0 Auto merge of #66671 - matthewjasper:ast-address-of, r=Centril
Ast address-of

This is the parts of #64588 that don't affect MIR. If an address-of expression makes it to MIR lowering we error and lower to the best currently expressible approximation to limit further errors.

r? @Centril
2019-11-25 01:20:38 +00:00
bors
388ffd9df8 Auto merge of #66540 - nnethercote:SmallVec-Candidate-match_pairs, r=matthewjasper
Use a `SmallVec` for `Candidate::match_pairs`.

This is a small win for `encoding`.

r? @matthewjasper
2019-11-24 21:39:09 +00:00
bors
412f43ac5b Auto merge of #66647 - petrochenkov:nosynt, r=Centril
rustc_plugin: Remove support for syntactic plugins

This part of the plugin interface was successfully replaced by token-based procedural macros in theory and in practice.

cc https://github.com/rust-lang/rust/issues/29597
cc https://github.com/rust-lang/rust/pull/64675
r? @Centril
2019-11-24 18:16:43 +00:00
Matthew Jasper
f4efc5de8a Add tests for raw_ref_op 2019-11-24 18:06:13 +00:00
Matthew Jasper
064bed0f31 Parse and feature gate raw address of expressions 2019-11-24 18:06:13 +00:00
Matthew Jasper
a8efd31f2b Add raw address of expressions to the AST and HIR 2019-11-24 18:06:13 +00:00
bors
5a1d028d4c Auto merge of #66592 - estebank:raw-raw-ah-ah-ah, r=cramertj
Rework raw ident suggestions

Use heuristics to determine whethersuggesting raw identifiers is
appropriate.

Account for raw identifiers when printing a path in a `use` suggestion.

Fix #66126.
2019-11-24 14:08:08 +00:00
bors
b56b23988d Auto merge of #66393 - ssomers:hash_benches, r=dtolnay
introduce benchmarks of HashSet operations

To avoid goofs such as corrected by #66280, I added benchmarks of binary HashSet operations.

Due to the fact x.py keeps recompiling the whole shebang (or at least a big part of it) whenever you touch the test code, and because piling up all tests in one file does not strike me as future proof, I tried moving the hash benches to the separate place they are for liballoc/collections/btree. But it turns out that, in a cleaned checkout, x.py still recompiles the whole shebang whenever you touch the test code (PS or when you add or delete any irrelevant file). So I'm not going to add more tests, and I doubt others will, and these tests have proven their point already, so this PR is kind of pointless
2019-11-24 10:52:12 +00:00
Vadim Petrochenkov
f89e6c8811 rustc_plugin: Remove support for syntactic plugins 2019-11-24 12:05:10 +03:00
Vadim Petrochenkov
f1359c61d3 expand: Fully preserve visibilities on unnamed fields with attributes 2019-11-24 11:47:46 +03:00
Vadim Petrochenkov
37bb0c7fa6 def_collector: Do not forget to save indices of fields with multiple attributes 2019-11-24 11:47:45 +03:00
bors
7d761fe046 Auto merge of #66322 - lzutao:consistent-result-map_or_else, r=dtolnay
Stabilize Result::map_or_else

Stabilized this API:
```rust
impl<T, E> Result<T, E> {
    pub fn map_or_else<U, D: FnOnce(E) -> U, F: FnOnce(T) -> U>(self, default: D, f: F) -> U {
        match self {
            Ok(t) => f(t),
            Err(e) => default(e),
        }
    }
}
```

Closes #53268
r? @SimonSapin
2019-11-24 07:37:01 +00:00
bors
e41ced3f8d Auto merge of #66686 - Centril:rollup-07slyoo, r=Centril
Rollup of 5 pull requests

Successful merges:

 - #64856 (Scope format! temporaries)
 - #66411 (mem::forget docs: mention ManuallyDrop)
 - #66594 (Fix cycle when debug-printing opaque types)
 - #66641 (parser: recover on nested ADTs as enum variants)
 - #66659 (make `./x.py bench` again)

Failed merges:

r? @ghost
2019-11-24 02:17:29 +00:00
Mazdak Farrokhzad
d22bf91320
Rollup merge of #66659 - Centril:fix-bench, r=Mark-Simulacrum
make `./x.py bench` again

Fixes #54016
2019-11-24 03:17:03 +01:00
Mazdak Farrokhzad
980ccaa733
Rollup merge of #66641 - VirrageS:master, r=Centril
parser: recover on nested ADTs as enum variants

Closes: https://github.com/rust-lang/rust/issues/66127
2019-11-24 03:17:02 +01:00
Mazdak Farrokhzad
a3ff52ce92
Rollup merge of #66594 - Aaron1011:fix/debug-print-cycle, r=matthewjasper
Fix cycle when debug-printing opaque types

Fixes #61577

When printing an opaque type in non-verbose mode, we use the
`tcx.predicates_of` query to retrieve the opaque type's bounds for
pretty-printing. However, the pervasiveness of logging within librustc
means that we may already be executing `tcx.predicates_of` for the
opaque type we're trying to print, leading to a cycle error.

This commit adds a new 'no queries' thread-local flag to the pretty
printer. This flag is enabled during the computation of `predicates_of`
for opaque types, and causes us to print the opaque type in 'verbose'
mode (which does not require computing any additinal queries). This
should only affect debug logging for highly nested log messages, not any
user-visible output.
2019-11-24 03:17:01 +01:00
Mazdak Farrokhzad
9b0427fc94
Rollup merge of #66411 - RalfJung:forget, r=sfackler
mem::forget docs: mention ManuallyDrop

Cc @SimonSapin @Centril
2019-11-24 03:16:59 +01:00
Mazdak Farrokhzad
d845e6fc8d
Rollup merge of #64856 - jonhoo:format-temporaries, r=sfackler
Scope format! temporaries

This places the temporaries that `format!` generates to refer to its arguments (through `&dyn Trait`) in a short-lived scope surrounding just the invocation of `format!`. This enables `format!` to be used in generators without the temporaries preventing the generator from being `Send` (due to `dyn Trait` not being `Sync`).

See rust-lang/rust#64477 for details.
2019-11-24 03:16:57 +01:00
Esteban Küber
180388670e review comments 2019-11-23 17:34:04 -08:00
Esteban Küber
4f25c618ad Rework raw ident suggestions
Use heuristics to determine whethersuggesting raw identifiers is
appropriate.

Account for raw identifiers when printing a path in a `use` suggestion.
2019-11-23 17:06:34 -08:00
Janusz Marcinkiewicz
9300c3b6ad Add FIXME for using 'parse_delim_comma_seq' when parsing enum variants 2019-11-23 23:23:40 +01:00
bors
ad808d95c4 Auto merge of #66680 - Centril:rollup-1ke3svj, r=Centril
Rollup of 5 pull requests

Successful merges:

 - #61351 (Stabilize cfg(doc))
 - #66539 (Point at type in `let` assignment on type errors)
 - #66655 (rustdoc: Mark `--extern-private` as unstable)
 - #66657 (rustdoc: Don't panic when failing to write .lock file)
 - #66673 (Move def collector from `rustc` to `rustc_resolve`)

Failed merges:

r? @ghost
2019-11-23 22:23:20 +00:00
Mazdak Farrokhzad
c215de0062
Rollup merge of #66673 - petrochenkov:toresolve, r=Centril
Move def collector from `rustc` to `rustc_resolve`

It's used only from `rustc_resolve`, so we can move it there, thus reducing the size of `rustc` (https://github.com/rust-lang/rust/issues/65031).

It's quite possible that we can merge the def collector pass into the "build reduced graph" pass (they are always run together and do similar things), but it's some larger work.

r? @eddyb
2019-11-23 23:22:39 +01:00
Mazdak Farrokhzad
0bb06cbea9
Rollup merge of #66657 - ollie27:rustdoc_flock_panic, r=GuillaumeGomez
rustdoc: Don't panic when failing to write .lock file

It can be treated like any other unexpected IO error.

I couldn't think of a good way to add a test for this unfortunately.

r? @GuillaumeGomez
2019-11-23 23:22:38 +01:00
Mazdak Farrokhzad
8ad3b5ccca
Rollup merge of #66655 - ollie27:rustdoc_extern-private_unstable, r=GuillaumeGomez
rustdoc: Mark `--extern-private` as unstable

It's not even stable in rustc so it shouldn't be stable in rustdoc.

r? @kinnison
2019-11-23 23:22:36 +01:00
Mazdak Farrokhzad
62a7839b45
Rollup merge of #66539 - estebank:let-ty, r=Centril
Point at type in `let` assignment on type errors

Fix #61067.
2019-11-23 23:22:34 +01:00
Mazdak Farrokhzad
6618af2c5c
Rollup merge of #61351 - GuillaumeGomez:stabilize-cfg-rustdoc, r=QuietMisdreavus
Stabilize cfg(doc)

cc #43781.
2019-11-23 23:22:33 +01:00
Guillaume Gomez
347575a825 Remove useless line for error index generation 2019-11-23 22:07:52 +01:00
bors
0c987c5c02 Auto merge of #66674 - flip1995:clippyup, r=Manishearth
Update Clippy

r? @Manishearth @oli-obk
2019-11-23 18:51:10 +00:00
Camille GILLOT
782cc9f65c Derive HashStable for TokenKind. 2019-11-23 18:52:23 +01:00
Camille GILLOT
4d1674f620 Use proc-macro for TokenTree. 2019-11-23 18:22:24 +01:00
Camille GILLOT
7e411e7f55 Implement HashStable for Span in libsyntax_pos. 2019-11-23 18:09:36 +01:00
Camille GILLOT
ea0c354758 Move CachingSourceMapView to libsyntax_pos. 2019-11-23 17:57:17 +01:00
Camille GILLOT
ce301075c0 Rename StableHashingContextLike to HashStableContext. 2019-11-23 17:57:00 +01:00
flip1995
450880fd89
Update Cargo.lock 2019-11-23 17:27:36 +01:00
flip1995
798d579f25
Update Clippy 2019-11-23 17:26:34 +01:00
bors
529829a037 Auto merge of #66653 - ivan:lint-name-fix, r=Centril
docs: fix lint name for `unused_variables`
2019-11-23 15:38:49 +00:00
Aaron Hill
2ba982d0e5
Remove unnecessary clone 2019-11-23 10:23:12 -05:00
Vadim Petrochenkov
bbbdbb0e44 Move def collector from rustc to rustc_resolve 2019-11-23 18:19:57 +03:00
bors
9420ff4c0e Auto merge of #66597 - MaulingMonkey:pr-natvis-std-collections-hash, r=michaelwoerister
debuginfo:  Support for std::collections::Hash* in windows debuggers.

Okay, I finally needed to debug code involving a HashMap!  Added support for HashSet s as well.

r? @michaelwoerister

### Local Testing

Verified these are passing locally:
```cmd
:: cmd.exe
python x.py test --stage 1 --build x86_64-pc-windows-msvc src/test/debuginfo
python x.py test --stage 1 --build i686-pc-windows-msvc src/test/debuginfo
python x.py test --stage 1 src/tools/tidy

:: MinGW MSYS2
./x.py test --stage 1 --build x86_64-pc-windows-gnu src/test/debuginfo
```

### Related Issues

* https://github.com/rust-lang/rust/issues/36503
* https://github.com/rust-lang/rust/issues/40460
* https://github.com/rust-gamedev/wg/issues/20
2019-11-23 07:27:17 +00:00
Mazdak Farrokhzad
59257e6e88 make ./x.py bench again 2019-11-23 07:06:27 +01:00
bors
d9025395c8 Auto merge of #66656 - Centril:rollup-fivygwz, r=Centril
Rollup of 4 pull requests

Successful merges:

 - #65961 (add fn type_name_of_val)
 - #66574 (Update tidy check for error codes testing)
 - #66576 (made gdb pretty-printing more robust when printing uninitialized vec)
 - #66583 (Clarify Step Documentation)

Failed merges:

r? @ghost
2019-11-23 04:24:35 +00:00
Janusz Marcinkiewicz
bbd0d9bea0 Cleanup code after review fixes 2019-11-23 04:01:14 +01:00
Janusz Marcinkiewicz
0e660d8a79 Add error reporting on nested keywords inside 'enum' definition 2019-11-23 03:41:12 +01:00