]> git.lizzy.rs Git - rust.git/log
rust.git
5 years agorustc_resolve: don't allow `::crate_name` to bypass `extern_prelude`.
Eduard-Mihai Burtescu [Fri, 24 Aug 2018 15:51:32 +0000 (18:51 +0300)]
rustc_resolve: don't allow `::crate_name` to bypass `extern_prelude`.

5 years agorustc: add unstable support for --extern crate_name without a path.
Eduard-Mihai Burtescu [Fri, 24 Aug 2018 15:51:10 +0000 (18:51 +0300)]
rustc: add unstable support for --extern crate_name without a path.

5 years agorustc: support extern crates loaded after query engine creation.
Eduard-Mihai Burtescu [Wed, 12 Sep 2018 07:31:00 +0000 (10:31 +0300)]
rustc: support extern crates loaded after query engine creation.

5 years agoAuto merge of #53527 - Emerentius:test_all, r=nrc
bors [Sat, 15 Sep 2018 15:01:51 +0000 (15:01 +0000)]
Auto merge of #53527 - Emerentius:test_all, r=nrc

Add option to run all tests

This adds the "--include-ignored" flag to libtest, which allows running ignored and unignored tests in one go.

Closes #50363

5 years agoAuto merge of #52896 - SergioBenitez:master, r=alexcrichton
bors [Sat, 15 Sep 2018 12:33:44 +0000 (12:33 +0000)]
Auto merge of #52896 - SergioBenitez:master, r=alexcrichton

Add inspection and setter methods to proc_macro::Diagnostic.

A few useful methods for `proc_macro::Diagnostic`.

r? @alexcrichton

5 years agoAuto merge of #54227 - flip1995:clippyup, r=kennytm
bors [Sat, 15 Sep 2018 10:09:25 +0000 (10:09 +0000)]
Auto merge of #54227 - flip1995:clippyup, r=kennytm

Update Clippy

Clippy one commit behind #54226. This should work

r? @Manishearth

5 years agoAuto merge of #54177 - nnethercote:streamline-bit-stuff, r=Mark-Simulacrum
bors [Sat, 15 Sep 2018 06:36:22 +0000 (06:36 +0000)]
Auto merge of #54177 - nnethercote:streamline-bit-stuff, r=Mark-Simulacrum

Remove bitslice.rs

As the comment in `bitslice.rs` says:

> FIXME: merge with `bitvec`

5 years agoAuto merge of #54151 - ljedrz:cleanup_hir, r=michaelwoerister
bors [Sat, 15 Sep 2018 02:56:13 +0000 (02:56 +0000)]
Auto merge of #54151 - ljedrz:cleanup_hir, r=michaelwoerister

A few cleanups for hir

- prefer `if let` to `match` when only 1 branch matters
- `chain` iterable items that are looped over in sequence
- `sort_by_key` instead of `sort_by` when possible
- change cloning `map`s to `cloned()`
- use `unwrap_or_else` and `ok` when applicable
- a few other minor readability improvements
- whitespace fixes

5 years agoAuto merge of #54069 - petrochenkov:subns, r=aturon
bors [Fri, 14 Sep 2018 22:17:45 +0000 (22:17 +0000)]
Auto merge of #54069 - petrochenkov:subns, r=aturon

resolve: Introduce two sub-namespaces in macro namespace

Two sub-namespaces are introduced in the macro namespace - one for bang macros and one for attribute-like macros (attributes, derives).

"Sub-namespace" means this is not a newly introduced full namespace, the single macro namespace is still in place.
I.e. you still can't define/import two macros with the same name in a single module, `use` imports still import only one name in macro namespace (from any sub-namespace) and not possibly two.

However, when we are searching for a name used in a `!` macro call context (`my_macro!()`) we skip attribute names in scope, and when we are searching for a name used in attribute context (`#[my_macro]`/`#[derive(my_macro)]`) we are skipping bang macro names in scope.
In other words, bang macros cannot shadow attribute macros and vice versa.

For a non-macro analogy, we could e.g. skip non-traits when searching for `MyTrait` in `impl MyTrait for Type { ... }`.
However we do not do it in non-macro namespaces because we don't have practical issues with e.g. non-traits shadowing traits with the same name, but with macros we do, especially after macro modularization.

For `#[test]` and `#[bench]` we have a hack in the compiler right now preventing their shadowing by `macro_rules! test` and similar things. This hack was introduced after making `#[test]`/`#[bench]` built-in macros instead of built-in attributes (https://github.com/rust-lang/rust/pull/53410), something that needed to be done from the start since they are "active" attributes transforming their inputs.
Now they are passed through normal name resolution and can be shadowed, but that's a breaking change, so we have  a special hack basically applying this PR for `#[test]` and `#[bench]` only.

Soon all potentially built-in attributes will be passed through normal name resolution (https://github.com/rust-lang/rust/pull/53913) and that uncovers even more cases where the strict "macro namespace is a single namespace" rule needs to be broken.
For example, with strict rules, built-in macro `cfg!(...)` would shadow built-in attribute `#[cfg]` (they are different things), standard library macro `thread_local!(...)` would shadow built-in attribute `#[thread_local]` - both of these cases are covered by special hacks in https://github.com/rust-lang/rust/pull/53913 as well.
Crater run uncovered more cases of attributes being shadowed by user-defined macros (`warn`, `doc`, `main`, even `deprecated`), we cannot add exceptions in the compiler for all of them.

Regressions with user-defined attributes like https://github.com/rust-lang/rust/issues/53583 and https://github.com/rust-lang/rust/issues/53898 also appeared after enabling macro modularization.

People are also usually confused (https://github.com/rust-lang/rust/issues/53205#issuecomment-411552763, https://github.com/rust-lang/rust/issues/53583#issuecomment-415447800) when they see conflicts between attributes and non-attribute macros for the first time.

So my proposed solution is to solve this issue by introducing two sub-namespaces and thus skipping resolutions of the wrong kind and preventing more error-causing cases of shadowing.

Fixes https://github.com/rust-lang/rust/issues/53583

5 years agoAuto merge of #54201 - eddyb:reflexive-disambiguation, r=petrochenkov
bors [Fri, 14 Sep 2018 19:52:13 +0000 (19:52 +0000)]
Auto merge of #54201 - eddyb:reflexive-disambiguation, r=petrochenkov

rustc_resolve: don't treat uniform_paths canaries as ambiguities unless they resolve to distinct Def's.

In particular, this allows this pattern that @cramertj mentioned in https://github.com/rust-lang/rust/issues/53130#issuecomment-420848814:
```rust
use log::{debug, log};
fn main() {
    use log::{debug, log};
    debug!(...);
}
```
The canaries for the inner `use log::...;`, *in the macro namespace*, see the `log` macro imported at the module scope, and the (same) `log` macro, imported in the block scope inside `main`.

Previously, these two possible (macro namspace) `log` resolutions would be considered ambiguous (from a forwards-compat standpoint, where we might make imports aware of block scopes).

With this PR, such a case is allowed *if and only if* all the possible resolutions refer to the same definition (more specifically, because the *same* `log` macro is being imported twice).
This condition subsumes previous (weaker) checks like #54005 and the second commit of #54011.

Only the last commit is the main change, the other two are cleanups.

r? @petrochenkov cc @Centril @joshtriplett

5 years agoAuto merge of #54088 - matthewjasper:use-reason-in-dlle-errors, r=pnkfelix
bors [Fri, 14 Sep 2018 15:45:02 +0000 (15:45 +0000)]
Auto merge of #54088 - matthewjasper:use-reason-in-dlle-errors, r=pnkfelix

[NLL] Suggest let binding

Closes #49821

Also adds an alternative to `explain_why_borrow_contains_point` that allows changing error messages based on the reason that will be given. This will also be useful for #51026, #51169 and maybe further changes to does not live long enough messages.

5 years agoAuto merge of #54080 - PramodBisht:issue/53692, r=estebank
bors [Fri, 14 Sep 2018 13:06:23 +0000 (13:06 +0000)]
Auto merge of #54080 - PramodBisht:issue/53692, r=estebank

Addressed #53692

@sunjay @estebank  @csmoe hopefully this answer #53692
Please let me know if you have any suggestion

5 years agoUpdate Clippy
flip1995 [Fri, 14 Sep 2018 12:00:32 +0000 (14:00 +0200)]
Update Clippy

5 years agoAuto merge of #54032 - oli-obk:layout_scalar_ranges, r=eddyb
bors [Fri, 14 Sep 2018 09:47:21 +0000 (09:47 +0000)]
Auto merge of #54032 - oli-obk:layout_scalar_ranges, r=eddyb

Add forever unstable attribute to allow specifying arbitrary scalar ranges

r? @eddyb for the first commit and @nikomatsakis for the second one

5 years agoAuto merge of #54215 - kennytm:rollup, r=kennytm
bors [Fri, 14 Sep 2018 07:18:25 +0000 (07:18 +0000)]
Auto merge of #54215 - kennytm:rollup, r=kennytm

Rollup of 8 pull requests

Successful merges:

 - #53218 (Add a implementation of `From` for converting `&'a Option<T>` into `Option<&'a T>`)
 - #54024 (Fix compiling some rustc crates to wasm)
 - #54095 (Rename all mentions of `nil` to `unit`)
 - #54173 (Suggest valid crate type if invalid crate type is found)
 - #54194 (Remove println!() statement from HashMap unit test)
 - #54203 (Fix the stable release of os_str_str_ref_eq)
 - #54207 (re-mark the never docs as unstable)
 - #54210 (Update Cargo)

Failed merges:

r? @ghost

5 years agoRollup merge of #54210 - alexcrichton:update-cargo, r=kennytm
kennytm [Fri, 14 Sep 2018 06:50:18 +0000 (14:50 +0800)]
Rollup merge of #54210 - alexcrichton:update-cargo, r=kennytm

Update Cargo

Should bring in some nice progress bars for compilations!

5 years agoRollup merge of #54207 - QuietMisdreavus:never-docs-stab, r=kennytm
kennytm [Fri, 14 Sep 2018 06:50:16 +0000 (14:50 +0800)]
Rollup merge of #54207 - QuietMisdreavus:never-docs-stab, r=kennytm

re-mark the never docs as unstable

Fixes https://github.com/rust-lang/rust/issues/54198

This stability attribute was removed in https://github.com/rust-lang/rust/pull/47630, but not replaced with a `#[stable]` attribute, and when https://github.com/rust-lang/rust/pull/50121 reverted that stabilization, it didn't set the docs back to unstable. I'm concerned as to why it was allowed to not have the stability attribute at all, but at least this can put it back.

I'm nominating this for beta backport because it's a really small change, and right now our docs are in an awkward position where the `!` type is technically unstable to use, but the docs don't say so the same way any other library feature would. (And this is also the case *on stable* now, but i'm not suggesting a stable backport for a docs fix.)

5 years agoRollup merge of #54203 - cuviper:stable-os_str_str_ref_eq, r=estebank
kennytm [Fri, 14 Sep 2018 06:50:15 +0000 (14:50 +0800)]
Rollup merge of #54203 - cuviper:stable-os_str_str_ref_eq, r=estebank

Fix the stable release of os_str_str_ref_eq

This was added and stabilized in commit 02503029b83a, but while that
claimed to be for 1.28.0, it didn't actually make it until 1.29.0.

Fixes #54195.

5 years agoRollup merge of #54194 - fintelia:patch-3, r=cramertj
kennytm [Fri, 14 Sep 2018 06:50:14 +0000 (14:50 +0800)]
Rollup merge of #54194 - fintelia:patch-3, r=cramertj

Remove println!() statement from HashMap unit test

5 years agoRollup merge of #54173 - phansch:suggest_valid_crate_type, r=estebank
kennytm [Fri, 14 Sep 2018 06:50:13 +0000 (14:50 +0800)]
Rollup merge of #54173 - phansch:suggest_valid_crate_type, r=estebank

Suggest valid crate type if invalid crate type is found

This adds a suggestion to the `invalid_crate_types` lint.

The suggestion is based on the Levenshtein distance to existing crate
types. If no suggestion is found it will show the lint without any
suggestions.

Closes #53958

5 years agoRollup merge of #54095 - kenta7777:kenta7777#53719, r=davidtwco
kennytm [Fri, 14 Sep 2018 06:50:11 +0000 (14:50 +0800)]
Rollup merge of #54095 - kenta7777:kenta7777#53719, r=davidtwco

Rename all mentions of `nil` to `unit`

Fixes #53719.

Renamed keywords nil to unit.

5 years agoRollup merge of #54024 - alexcrichton:compile-to-wasm, r=petrochenkov
kennytm [Fri, 14 Sep 2018 06:50:10 +0000 (14:50 +0800)]
Rollup merge of #54024 - alexcrichton:compile-to-wasm, r=petrochenkov

Fix compiling some rustc crates to wasm

I was dabbling recently seeing what it would take to compile `rustfmt` to the
`wasm32-unknown-unknown` target and it turns out not much effort is needed!
Currently `rustfmt` depends on a few rustc crates published to crates.io, so
this commit touches up those crates to compile for wasm themselves. Notably:

* The `rustc_data_structures` crate's `flock` implementation is stubbed out to
  unconditionally return errors on unsupported platforms.
* The `rustc_errors` crate is extended to not do any locking for all non-windows
  platforms.

In both of these cases if we port the compiler to new platforms the
functionality isn't critical but will be discovered over time as it comes up, so
this hopefully doesn't make it too too hard to compile to new platforms!

5 years agoRollup merge of #53218 - weiznich:feature/option_ref_into, r=KodrAus
kennytm [Fri, 14 Sep 2018 06:50:09 +0000 (14:50 +0800)]
Rollup merge of #53218 - weiznich:feature/option_ref_into, r=KodrAus

Add a implementation of `From` for converting `&'a Option<T>` into `Option<&'a T>`

I'm not sure if any annotations regarding the stabilization are needed or in general what's the correct process of adding such an impl.

cc @sgrif (We have talked about this)

5 years agoAuto merge of #53751 - F001:tuple-struct-self-ctor, r=petrochenkov,varkor
bors [Fri, 14 Sep 2018 03:34:14 +0000 (03:34 +0000)]
Auto merge of #53751 - F001:tuple-struct-self-ctor, r=petrochenkov,varkor

Implement RFC 2302: tuple_struct_self_ctor

Tracking issue: https://github.com/rust-lang/rust/issues/51994

5 years agoUpdate Cargo
Alex Crichton [Fri, 14 Sep 2018 01:35:08 +0000 (18:35 -0700)]
Update Cargo

Should bring in some nice progress bars for compilations!

5 years agoAuto merge of #52962 - GuillaumeGomez:few-things, r=QuietMisdreavus
bors [Fri, 14 Sep 2018 01:07:21 +0000 (01:07 +0000)]
Auto merge of #52962 - GuillaumeGomez:few-things, r=QuietMisdreavus

Fix trait item doc setting, add new setting, start hiding elements by default and then showing them up

r? @QuietMisdreavus

5 years agoRemove `Iter` and `SparseIter` in indexed_set.rs.
Nicholas Nethercote [Thu, 13 Sep 2018 22:06:52 +0000 (08:06 +1000)]
Remove `Iter` and `SparseIter` in indexed_set.rs.

Because they're just thin wrappers around `BitIter` and `slice::Iter`.

5 years agoAuto merge of #54168 - kennytm:rollup, r=kennytm
bors [Thu, 13 Sep 2018 22:40:35 +0000 (22:40 +0000)]
Auto merge of #54168 - kennytm:rollup, r=kennytm

Rollup of 11 pull requests

Successful merges:

 - #53371 (Do not emit E0277 on incorrect tuple destructured binding)
 - #53829 (Add rustc SHA to released DWARF debuginfo)
 - #53950 (Allow for opting out of ThinLTO and clean up LTO related cli flag handling.)
 - #53976 (Replace unwrap calls in example by expect)
 - #54070 (Add Error::description soft-deprecation to RELEASES)
 - #54076 (miri loop detector hashing)
 - #54119 (Add some unit tests for find_best_match_for_name)
 - #54147 (Add a test that tries to modify static memory at compile-time)
 - #54150 (Updated 1.29 release notes with --document-private-items flag)
 - #54163 (Update stage 0 to latest beta)
 - #54170 (COMPILER_TESTS.md has been moved)

5 years agore-mark the never docs as unstable
QuietMisdreavus [Thu, 13 Sep 2018 22:31:56 +0000 (17:31 -0500)]
re-mark the never docs as unstable

5 years agoFix the stable release of os_str_str_ref_eq
Josh Stone [Thu, 13 Sep 2018 21:25:43 +0000 (14:25 -0700)]
Fix the stable release of os_str_str_ref_eq

This was added and stabilized in commit 02503029b83a, but while that
claimed to be for 1.28.0, it didn't actually make it until 1.29.0.

5 years agoEliminate unused variable warning
Jonathan Behrens [Thu, 13 Sep 2018 20:48:09 +0000 (16:48 -0400)]
Eliminate unused variable warning

5 years agorustc_resolve: don't treat uniform_paths canaries as ambiguities unless they resolve...
Eduard-Mihai Burtescu [Thu, 13 Sep 2018 20:18:39 +0000 (23:18 +0300)]
rustc_resolve: don't treat uniform_paths canaries as ambiguities unless they resolve to distinct Def's.

5 years agoSuggest valid crate type if invalid
Philipp Hansch [Thu, 13 Sep 2018 06:42:19 +0000 (08:42 +0200)]
Suggest valid crate type if invalid

This adds a suggestion to the `invalid_crate_types` lint.

The suggestion is based on the Levenshtein distance to existing crate
types. If no suggestion is found it will show the lint without any
suggestions.

5 years agoRemove println!() statement from HashMap unit test
Jonathan Behrens [Thu, 13 Sep 2018 18:58:13 +0000 (14:58 -0400)]
Remove println!() statement from HashMap unit test

5 years agorustc_resolve: ignore uniform_paths canaries with no module scopes.
Eduard-Mihai Burtescu [Thu, 13 Sep 2018 18:11:31 +0000 (21:11 +0300)]
rustc_resolve: ignore uniform_paths canaries with no module scopes.

5 years agorustc_resolve: only process uniform_paths canaries in namespaces they're present in.
Eduard-Mihai Burtescu [Thu, 13 Sep 2018 17:47:47 +0000 (20:47 +0300)]
rustc_resolve: only process uniform_paths canaries in namespaces they're present in.

5 years agoRollup merge of #53950 - michaelwoerister:more-lto-cli, r=alexcrichton
kennytm [Thu, 13 Sep 2018 16:46:45 +0000 (00:46 +0800)]
Rollup merge of #53950 - michaelwoerister:more-lto-cli, r=alexcrichton

Allow for opting out of ThinLTO and clean up LTO related cli flag handling.

It turns out that there currently is no way to explicitly disable ThinLTO (except for the nightly-only `-Zthinlto` flag). This PR extends `-C lto` to take `yes` and `no` in addition to `thin` and `fat`. It should be backwards compatible.

It also cleans up how LTO mode selection is handled.

Note that merging the PR in the current state would make the new values for `-C lto` available on the stable channel. I think that would be fine but maybe some team should vote on it.

5 years agoRollup merge of #53829 - alexcrichton:release-debuginfo, r=michaelwoerister
kennytm [Thu, 13 Sep 2018 16:46:22 +0000 (00:46 +0800)]
Rollup merge of #53829 - alexcrichton:release-debuginfo, r=michaelwoerister

Add rustc SHA to released DWARF debuginfo

This commit updates the debuginfo that is encoded in all of our released
artifacts by default. Currently it has paths like `/checkout/src/...` but these
are a little inconsistent and have changed over time. This commit instead
attempts to actually define the file paths in our debuginfo to be consistent
between releases.

All debuginfo paths are now intended to be `/rustc/$sha` where `$sha` is the git
sha of the released compiler. Sub-paths are all paths into the git repo at that
`$sha`.

5 years agoRollup merge of #54170 - kzys:contrib-md, r=zackmdavis
kennytm [Thu, 13 Sep 2018 09:53:01 +0000 (17:53 +0800)]
Rollup merge of #54170 - kzys:contrib-md, r=zackmdavis

COMPILER_TESTS.md has been moved

The document is now hosted at rust-lang-nursery.github.io.

5 years agoRollup merge of #54163 - parched:stage0, r=Mark-Simulacrum
kennytm [Thu, 13 Sep 2018 02:02:25 +0000 (10:02 +0800)]
Rollup merge of #54163 - parched:stage0, r=Mark-Simulacrum

Update stage 0 to latest beta

Fixes bootstrap on AArch64 by pulling in https://github.com/rust-lang/rust/pull/53939

5 years agoRollup merge of #54150 - Aaronepower:master, r=Mark-Simulacrum
kennytm [Thu, 13 Sep 2018 02:02:24 +0000 (10:02 +0800)]
Rollup merge of #54150 - Aaronepower:master, r=Mark-Simulacrum

Updated 1.29 release notes with --document-private-items flag

[Rendered](https://github.com/Aaronepower/rust/blob/master/RELEASES.md#cargo)

5 years agoRollup merge of #54147 - agnxy:const-eval-test, r=oli-obk
kennytm [Thu, 13 Sep 2018 02:02:22 +0000 (10:02 +0800)]
Rollup merge of #54147 - agnxy:const-eval-test, r=oli-obk

Add a test that tries to modify static memory at compile-time

Attempt to fix #53818
cc @oli-obk

5 years agoRollup merge of #54119 - phansch:unit_test_find_best_match_for_name, r=nikomatsakis
kennytm [Thu, 13 Sep 2018 02:02:21 +0000 (10:02 +0800)]
Rollup merge of #54119 - phansch:unit_test_find_best_match_for_name, r=nikomatsakis

Add some unit tests for find_best_match_for_name

There were only some UI tests that covered this function.
Since there's more diagnostic work going on, I think it makes
sense to have this unit tested.

5 years agoRollup merge of #54076 - RalfJung:miri-snapshot, r=oli-obk
kennytm [Thu, 13 Sep 2018 02:02:20 +0000 (10:02 +0800)]
Rollup merge of #54076 - RalfJung:miri-snapshot, r=oli-obk

miri loop detector hashing

* fix enum hashing to also consider discriminant
* do not hash extra machine state
* standalone miri is not interested in loop detection, so let it opt-out

In the future I think we want to move the hashing logic out of the miri engine, this is CTFE-only.

r? @oli-obk

5 years agoRollup merge of #54070 - passcod:patch-1, r=steveklabnik
kennytm [Thu, 13 Sep 2018 02:02:19 +0000 (10:02 +0800)]
Rollup merge of #54070 - passcod:patch-1, r=steveklabnik

Add Error::description soft-deprecation to RELEASES

5 years agoRollup merge of #53976 - GuillaumeGomez:expect-world, r=steveklabnik
kennytm [Thu, 13 Sep 2018 02:02:17 +0000 (10:02 +0800)]
Rollup merge of #53976 - GuillaumeGomez:expect-world, r=steveklabnik

Replace unwrap calls in example by expect

Part of #51668.

r? @steveklabnik

5 years agoAuto merge of #53621 - jordanrh1:windows-arm, r=alexcrichton
bors [Thu, 13 Sep 2018 15:22:05 +0000 (15:22 +0000)]
Auto merge of #53621 - jordanrh1:windows-arm, r=alexcrichton

Add target thumbv7a-pc-windows-msvc

This is an early draft of support for Windows/ARM. To test it,

1. Install Visual Studio 2017 and Windows SDK version 17134.
1. Obtain alexcrichton/xz2-rs#35, rust-lang-nursery/compiler-builtins#256, and the fix for [LLVM Bug 38620](https://bugs.llvm.org/show_bug.cgi?id=38620).
2. Open a command prompt and run
```
set CC_thumbv7a-pc-windows-msvc=C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\arm\CL.exe
set CFLAGS_thumbv7a-pc-windows-msvc=/D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE=1 /nologo
c:\python27\python.exe x.py build --host x86_64-pc-windows-msvc --build x86_64-pc-windows-msvc --target thumbv7a-pc-windows-msvc
```

It will build the stage 2 compiler, but fail building stage 2 test. To build an executable targeting windows/arm,
1. Copy `build\x86_64-pc-windows-msvc\stage0\bin\cargo.exe` to `build\x86_64-pc-windows-msvc\stage2\bin`
2. Open a command prompt and run
```
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
set PATH=build\x86_64-pc-windows-msvc\stage2\bin;%PATH%
cargo new hello
cd hello
cargo build --target thumbv7a-pc-windows-msvc –release
```

Copy target\thumbv7a-pc-windows-msvc\release\hello.exe to your platform and run.

There are a number of open issues that I'm hoping to get help with:

 - Error when compiling the `test` crate: `error: cannot link together two panic runtimes: panic_abort and panic_unwind`
 - Warnings when building the compiler_builtins crate: `warning: cl : Command line warning D9002 : ignoring unknown option '-fvisibility=hidden'`. It looks like the build system is passing GCC-style flags to MSVC.
 - How to specify the LIBPATH entries for ARM. Right now they are hardcoded as absolute paths in the target spec.

This pull request depends on
 - alexcrichton/xz2-rs#35 - update vcxproj to Visual Studio 2017
 - rust-lang-nursery/compiler-builtins#256 - fix compile errors when building for windows/arm
 - [Bug 38620 - ARM: Incorrect COFF relocation type for thumb bl instruction](https://bugs.llvm.org/show_bug.cgi?id=38620)

This PR updates #52659

5 years agoresolve: Introduce two sub-namespaces in macro namespace
Vadim Petrochenkov [Sat, 8 Sep 2018 19:19:53 +0000 (22:19 +0300)]
resolve: Introduce two sub-namespaces in macro namespace

5 years agoRemove bitslice.rs.
Nicholas Nethercote [Thu, 13 Sep 2018 04:19:01 +0000 (14:19 +1000)]
Remove bitslice.rs.

This requires the following changes.

- It moves parts of bitslice.rs into bitvec.rs: `bitwise()`,
  `BitwiseOperator`, `bits_to_string()`.

- It changes `IdxSet` to just be a wrapper around `BitArray`.

- It changes `BitArray` and `BitVec` to use `usize` words instead of
  `u128` words. (`BitSlice` and `IdxSet` already use `usize`.) Local
  profiling showed `usize` was better.

- It moves some operations from `IdxSet` into `BitArray`:
  `new_filled()`, `clear()`, `set_up_to()`, `trim_to()` (renamed
  `clear_above()`), `words()` and `words_mut()`, `encode()` and
  `decode(). The `IdxSet` operations now just call the `BitArray`
  operations.

- It replaces `BitArray`'s iterator implementation with `IdxSet`'s,
  because the latter is more concise. It also removes the buggy
  `size_hint` function from `BitArray`'s iterator, which counted the
  number of *words* rather than the number of *bits*. `IdxSet`'s
  iterator is now just a thin wrapper around `BitArray`'s iterator.

- It moves some unit tests from `indexed_set.rs` to `bitvec.rs`.

5 years agoAdd multispan support to proc-macro diagnostics.
Sergio Benitez [Thu, 13 Sep 2018 08:16:54 +0000 (08:16 +0000)]
Add multispan support to proc-macro diagnostics.

Also updates the issue number for 'proc_macro_diagnostic'.

5 years agoAdd inspection and setter methods to proc_macro::Diagnostic.
Sergio Benitez [Tue, 31 Jul 2018 07:06:13 +0000 (00:06 -0700)]
Add inspection and setter methods to proc_macro::Diagnostic.

5 years agointroduce SelfCtor
F001 [Thu, 6 Sep 2018 02:46:55 +0000 (10:46 +0800)]
introduce SelfCtor

5 years agoCOMPILER_TESTS.md has been moved
Kazuyoshi Kato [Thu, 13 Sep 2018 04:21:43 +0000 (21:21 -0700)]
COMPILER_TESTS.md has been moved

The document is now hosted at rust-lang-nursery.github.io.

5 years agoAuto merge of #54086 - petrochenkov:derhelp, r=alexcrichton
bors [Thu, 13 Sep 2018 03:36:15 +0000 (03:36 +0000)]
Auto merge of #54086 - petrochenkov:derhelp, r=alexcrichton

resolve: Future proof derive helper attributes

Derive helpers no longer require going through recovery mode (fixes https://github.com/rust-lang/rust/issues/53481).
They also report an error if they are ambiguous with any other macro in scope, so we can resolve the question about their exact priority sometime later (cc https://github.com/rust-lang/rust/issues/52226).

5 years agoReorder bitvec.rs.
Nicholas Nethercote [Thu, 13 Sep 2018 03:27:56 +0000 (13:27 +1000)]
Reorder bitvec.rs.

So that the `BitArray` code is all together and before the `BitVector`
code, instead of being awkwardly interleaved.

5 years agoimplement feature tuple_struct_self_ctor
F001 [Tue, 28 Aug 2018 04:51:43 +0000 (12:51 +0800)]
implement feature tuple_struct_self_ctor

5 years agoresolve: Future proof derive helper attributes
Vadim Petrochenkov [Thu, 13 Sep 2018 02:11:13 +0000 (05:11 +0300)]
resolve: Future proof derive helper attributes

5 years agoresolve: Put different parent scopes into a single structure
Vadim Petrochenkov [Wed, 12 Sep 2018 22:41:07 +0000 (01:41 +0300)]
resolve: Put different parent scopes into a single structure

5 years agoRollup merge of #53371 - estebank:tuple, r=nikomatsakis
kennytm [Thu, 13 Sep 2018 02:02:14 +0000 (10:02 +0800)]
Rollup merge of #53371 - estebank:tuple, r=nikomatsakis

Do not emit E0277 on incorrect tuple destructured binding

Fix #50333.

5 years agoAuto merge of #53409 - GuillaumeGomez:associated-const-value, r=QuietMisdreavus
bors [Wed, 12 Sep 2018 21:20:05 +0000 (21:20 +0000)]
Auto merge of #53409 - GuillaumeGomez:associated-const-value, r=QuietMisdreavus

Don't show associated const value anymore

Part of #44348.

Before:

<img width="1440" alt="screen shot 2018-08-16 at 00 48 30" src="https://user-images.githubusercontent.com/3050060/44177414-20ef1480-a0ee-11e8-80d4-7caf082cf0de.png">

After:

<img width="1440" alt="screen shot 2018-08-16 at 00 48 23" src="https://user-images.githubusercontent.com/3050060/44177417-251b3200-a0ee-11e8-956a-4229275e3342.png">

cc @nox

r? @QuietMisdreavus

5 years agoAuto merge of #54152 - michaelwoerister:cgu-name-fix, r=alexcrichton
bors [Wed, 12 Sep 2018 18:30:17 +0000 (18:30 +0000)]
Auto merge of #54152 - michaelwoerister:cgu-name-fix, r=alexcrichton

Really make CGU names unique across crates.

This will hopefully fix issue #53794.

r? @alexcrichton

5 years agoExpand comments in thumbv7a-pc-windows-msvc target spec
Jordan Rhee [Wed, 12 Sep 2018 18:28:02 +0000 (11:28 -0700)]
Expand comments in thumbv7a-pc-windows-msvc target spec

5 years agoAdd comment explaining reasoning
Esteban Küber [Wed, 12 Sep 2018 17:47:55 +0000 (10:47 -0700)]
Add comment explaining reasoning

5 years agoA few cleanups for hir
ljedrz [Wed, 12 Sep 2018 10:31:11 +0000 (12:31 +0200)]
A few cleanups for hir

5 years agoMerge branch 'master' into kenta7777#53719
kenta7777 [Wed, 12 Sep 2018 12:36:31 +0000 (21:36 +0900)]
Merge branch 'master' into kenta7777#53719

5 years agoAuto merge of #53793 - toidiu:ak-stabalize, r=nikomatsakis
bors [Wed, 12 Sep 2018 11:27:48 +0000 (11:27 +0000)]
Auto merge of #53793 - toidiu:ak-stabalize, r=nikomatsakis

stabilize outlives requirements

https://github.com/rust-lang/rust/issues/44493

r? @nikomatsakis

5 years agoReally make CGU names unique across crates.
Michael Woerister [Wed, 12 Sep 2018 10:46:48 +0000 (12:46 +0200)]
Really make CGU names unique across crates.

5 years agoUpdated 1.29 release notes with --document-private-items flag
Aaron Power [Wed, 12 Sep 2018 10:19:23 +0000 (11:19 +0100)]
Updated 1.29 release notes with --document-private-items flag

5 years agoAuto merge of #54146 - kennytm:rollup, r=kennytm
bors [Wed, 12 Sep 2018 08:08:13 +0000 (08:08 +0000)]
Auto merge of #54146 - kennytm:rollup, r=kennytm

Rollup of 15 pull requests

Successful merges:

 - #52514 (Fix a few AMDGPU related issues)
 - #53703 (Document .0 to unpack integer from Wrapping)
 - #53777 (Implemented map_or_else for Result<T, E>)
 - #54031 (A few cleanups and minor improvements to rustc_passes)
 - #54046 (Update documentation for fill_buf in std::io::BufRead)
 - #54064 (`&CStr`, not `CStr`, is the counterpart of `&str`)
 - #54072 (Stabilization change for mod.rs)
 - #54073 (docs: Use dollar sign for all bash prompts)
 - #54074 (simplify ordering for Kind)
 - #54085 (Remove documentation about proc_macro being bare-bones)
 - #54087 (rustdoc: Remove generated blanket impls from trait pages)
 - #54106 (Reexport CheckLintNameResult)
 - #54107 (Fix typos in libstd hash map)
 - #54136 (Update LLVM to fix GlobalISel dbg.declare)
 - #54142 (Recover proper regression test for issue #16278.)

Failed merges:

r? @ghost

5 years agoAdd a test that tries to modify static memory at compile-time
Andrew Xu [Wed, 12 Sep 2018 04:27:28 +0000 (12:27 +0800)]
Add a test that tries to modify static memory at compile-time

5 years agoRollup merge of #54142 - pnkfelix:fix-regression-test-for-16278, r=wesleywiser
kennytm [Wed, 12 Sep 2018 04:17:40 +0000 (12:17 +0800)]
Rollup merge of #54142 - pnkfelix:fix-regression-test-for-16278, r=wesleywiser

Recover proper regression test for issue #16278.

Spawned from my note https://github.com/rust-lang/rust/pull/19955#issuecomment-420430761

5 years agoRollup merge of #54136 - cuviper:global-isel-dbg.declare, r=alexcrichton
kennytm [Wed, 12 Sep 2018 04:17:39 +0000 (12:17 +0800)]
Rollup merge of #54136 - cuviper:global-isel-dbg.declare, r=alexcrichton

Update LLVM to fix GlobalISel dbg.declare

Fixes #49807.

5 years agoRollup merge of #54107 - thevaleriemack:master, r=Mark-Simulacrum
kennytm [Wed, 12 Sep 2018 04:17:38 +0000 (12:17 +0800)]
Rollup merge of #54107 - thevaleriemack:master, r=Mark-Simulacrum

Fix typos in libstd hash map

modified growth algo description to read "the first table overflows into the second, and the second into the first." plus smaller typos

5 years agoRollup merge of #54106 - flip1995:pub_checklintnameresult, r=Manishearth
kennytm [Wed, 12 Sep 2018 04:17:37 +0000 (12:17 +0800)]
Rollup merge of #54106 - flip1995:pub_checklintnameresult, r=Manishearth

Reexport CheckLintNameResult

Make the enum `CheckLintNameResult` public, so that lint tools (aka Clippy) can use it together with [`LintStore::check_lint_name`](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/lint/struct.LintStore.html#method.check_lint_name), to handle the case that a scoped `tool_lint` doesn't exist in the tool.

This is currently not handled by the compiler:
https://github.com/rust-lang/rust/blob/595345419d12c3ea860151df52f78744a31bafff/src/librustc/lint/levels.rs#L309-L314

Needed for rust-lang-nursery/rust-clippy#3161

r? @Manishearth

5 years agoRollup merge of #54087 - ollie27:rustdoc_blanket_impl, r=QuietMisdreavus
kennytm [Wed, 12 Sep 2018 04:17:35 +0000 (12:17 +0800)]
Rollup merge of #54087 - ollie27:rustdoc_blanket_impl, r=QuietMisdreavus

rustdoc: Remove generated blanket impls from trait pages

#53801 only deduped the generated blanket impls but they shouldn't be displayed at all because the original blanket impl is already in the "Implementors" section. This also removes the impls from the sidebar.

Fixes #53689

r? @QuietMisdreavus

5 years agoRollup merge of #54085 - dtolnay:bare, r=alexcrichton
kennytm [Wed, 12 Sep 2018 04:17:34 +0000 (12:17 +0800)]
Rollup merge of #54085 - dtolnay:bare, r=alexcrichton

Remove documentation about proc_macro being bare-bones

A large chunk of useful API surface area is stabilizing in Rust 1.29. We no longer have a commitment to expand the API over time as much as implied by these comments.

r? @alexcrichton

5 years agoRollup merge of #54074 - toidiu:ak-spimplifyOrd, r=eddyb
kennytm [Wed, 12 Sep 2018 04:17:33 +0000 (12:17 +0800)]
Rollup merge of #54074 - toidiu:ak-spimplifyOrd, r=eddyb

simplify ordering for Kind

Missed from https://github.com/rust-lang/rust/pull/50930

r? @eddyb

5 years agoRollup merge of #54073 - behnam:docs-1, r=frewsxcv
kennytm [Wed, 12 Sep 2018 04:17:32 +0000 (12:17 +0800)]
Rollup merge of #54073 - behnam:docs-1, r=frewsxcv

docs: Use dollar sign for all bash prompts

Making it consistent across the board, as most of them already use `$`.

Also split one continues bash run into two, to make it easier see
different runs: one with warning and another with error.

5 years agoRollup merge of #54072 - blitzerr:master, r=Mark-Simulacrum
kennytm [Wed, 12 Sep 2018 04:17:30 +0000 (12:17 +0800)]
Rollup merge of #54072 - blitzerr:master, r=Mark-Simulacrum

Stabilization change for mod.rs

This change is in response to https://github.com/rust-lang/rust/issues/53125.
The patch makes the feature accepted and removes the tests that tested the
non-accepted status of the feature.

5 years agoRollup merge of #54064 - nagisa:tiny-typo, r=sfackler
kennytm [Wed, 12 Sep 2018 04:17:29 +0000 (12:17 +0800)]
Rollup merge of #54064 - nagisa:tiny-typo, r=sfackler

`&CStr`, not `CStr`, is the counterpart of `&str`

5 years agoRollup merge of #54046 - snaedis:issue-48022, r=steveklabnik
kennytm [Wed, 12 Sep 2018 04:17:28 +0000 (12:17 +0800)]
Rollup merge of #54046 - snaedis:issue-48022, r=steveklabnik

Update documentation for fill_buf in std::io::BufRead

Brings the documentation in line with the BufReader implementation.

Fixes #48022.

This is my first PR, and I think the `E-easy` label is very cool, as so is the practice of describing the fix but leaving it for someone else; it really makes it a lot less intimidating to get started with something!

5 years agoRollup merge of #54031 - ljedrz:cleanup_passes, r=oli-obk
kennytm [Wed, 12 Sep 2018 04:17:26 +0000 (12:17 +0800)]
Rollup merge of #54031 - ljedrz:cleanup_passes, r=oli-obk

A few cleanups and minor improvements to rustc_passes

- prefer `if let` to `match` when only one branch matters
- prefer equality checks to pattern matching
- prefer `is_empty` to `len() == 0`
- collapse a couple of `if` expressions
- rename `label` to `destination` when destructuring `hir::ExprKind::Continue`
- `derive Copy` for `Promotability`
- `impl BitAndAssign` for `Promotability`
- a few formatting fixes
- a few other minor cleanups

5 years agoRollup merge of #53777 - ivanbakel:result_map_or_else, r=alexcrichton
kennytm [Wed, 12 Sep 2018 04:17:25 +0000 (12:17 +0800)]
Rollup merge of #53777 - ivanbakel:result_map_or_else, r=alexcrichton

Implemented map_or_else for Result<T, E>

Fulfills #53268
The example is ripped from `Option::map_or_else`, with the types corrected.

5 years agoRollup merge of #53703 - sourcefrog:doc-wrapping, r=frewsxcv
kennytm [Wed, 12 Sep 2018 04:17:24 +0000 (12:17 +0800)]
Rollup merge of #53703 - sourcefrog:doc-wrapping, r=frewsxcv

Document .0 to unpack integer from Wrapping

5 years agoRollup merge of #52514 - DiamondLovesYou:amdgpu-fixes, r=eddyb
kennytm [Wed, 12 Sep 2018 04:17:22 +0000 (12:17 +0800)]
Rollup merge of #52514 - DiamondLovesYou:amdgpu-fixes, r=eddyb

Fix a few AMDGPU related issues

* AMDGPU ignores `noinline` and sadly doesn't clear the attribute when it slaps `alwaysinline` on everything,
* an AMDGPU related load bit range metadata assertion,
* I didn't enable the `amdgpu` component in the `librustc_llvm` build script,
* Add AMDGPU call abi info.

5 years agoAuto merge of #51159 - pacman82:master, r=oli-obk
bors [Wed, 12 Sep 2018 01:56:48 +0000 (01:56 +0000)]
Auto merge of #51159 - pacman82:master, r=oli-obk

First step towards `u128` instead of `Const` in `PatternKind::Range`

This PR accomplishes two things:
* It adds `ty::Ty` to `PatternKind::Range`. The extra type information will make it easier to remove it from the `hi` and `lo` members.
* It exchanges `Const` for `u128` in `Constructor::ConstantRange`.

5 years agoaddress review comment, reduce scope
Esteban Küber [Wed, 12 Sep 2018 00:06:11 +0000 (17:06 -0700)]
address review comment, reduce scope

5 years agoSimplify the recovered tuple ty
Esteban Küber [Sun, 19 Aug 2018 22:12:09 +0000 (15:12 -0700)]
Simplify the recovered tuple ty

5 years agoDo not emit E0277 on incorrect tuple destructured binding
Esteban Küber [Tue, 14 Aug 2018 23:46:28 +0000 (16:46 -0700)]
Do not emit E0277 on incorrect tuple destructured binding

5 years agoAuto merge of #53913 - petrochenkov:biattr4, r=alexcrichton
bors [Tue, 11 Sep 2018 23:28:39 +0000 (23:28 +0000)]
Auto merge of #53913 - petrochenkov:biattr4, r=alexcrichton

resolve: Future proof resolutions for potentially built-in attributes

This is not full "pass all attributes through name resolution", but a more conservative solution.
If built-in attribute is ambiguous with any other macro in scope, then an error is reported.

What complications arise with the full solution - https://github.com/rust-lang/rust/pull/53913#issuecomment-418204136.

cc https://github.com/rust-lang/rust/pull/50911#issuecomment-411605393
cc https://github.com/rust-lang/rust/issues/52269
Closes https://github.com/rust-lang/rust/issues/53531

5 years agoAdd ty::Ty to PatternKind::Range;u128 for Const in Constructor::ConstantRange
Markus Klein [Tue, 11 Sep 2018 22:26:07 +0000 (00:26 +0200)]
Add ty::Ty to PatternKind::Range;u128 for Const in Constructor::ConstantRange

5 years agoRecover proper regression test for issue #16278.
Felix S. Klock II [Tue, 11 Sep 2018 21:33:22 +0000 (23:33 +0200)]
Recover proper regression test for issue #16278.

5 years agoAuto merge of #53873 - nikomatsakis:nll-universe-subtyping-and-pattern-ascription...
bors [Tue, 11 Sep 2018 20:59:11 +0000 (20:59 +0000)]
Auto merge of #53873 - nikomatsakis:nll-universe-subtyping-and-pattern-ascription, r=pnkfelix

support ascription for patterns in NLL

This implements the strategy outlined in [this comment](https://github.com/rust-lang/rust/issues/47184#issuecomment-416669986):

- We first extend the NLL subtyping code so it can handle inference variables and subtyping.
- Then we extend HAIR patterns with type ascription.
- Then we treat the type `T` in `let pat: T = ...` as an ascription.

Before landing, a few things:

- [x] Fix the WF rule bug (filed a FIXME https://github.com/rust-lang/rust/issues/54105)
- [x] Fix an ICE I encountered locally around bound regions, or else file a follow-up
- [x] More tests probably =)

r? @pnkfelix

5 years agoAdd missing #![feature(min_const_fn)] to the newtype_index test.
Eduard-Mihai Burtescu [Tue, 11 Sep 2018 19:52:00 +0000 (22:52 +0300)]
Add missing #![feature(min_const_fn)] to the newtype_index test.

5 years agoUpdate LLVM to fix GlobalISel dbg.declare
Josh Stone [Tue, 11 Sep 2018 18:59:50 +0000 (11:59 -0700)]
Update LLVM to fix GlobalISel dbg.declare

Fixes #49807.

5 years agoUpdate stage0 to latest beta
James Duley [Tue, 11 Sep 2018 16:14:08 +0000 (17:14 +0100)]
Update stage0 to latest beta

Fixes bootstrap on AArch64

5 years agoAuto merge of #54111 - nikomatsakis:issue-53686-keywords-and-macros, r=alexcrichton
bors [Tue, 11 Sep 2018 15:40:44 +0000 (15:40 +0000)]
Auto merge of #54111 - nikomatsakis:issue-53686-keywords-and-macros, r=alexcrichton

warn about keywords in macro invocations

Fixes #53686

r? @alexcrichton

5 years agostabalize infer outlives requirements (RFC 2093).
toidiu [Tue, 28 Aug 2018 04:46:08 +0000 (00:46 -0400)]
stabalize infer outlives requirements (RFC 2093).

Co-authored-by: nikomatsakis
5 years agorenamed emit_nil to emit_unit
kenta7777 [Tue, 11 Sep 2018 14:32:41 +0000 (23:32 +0900)]
renamed emit_nil to emit_unit

5 years agorenamed is_nil to is_unit
kenta7777 [Tue, 11 Sep 2018 14:17:35 +0000 (23:17 +0900)]
renamed is_nil to is_unit