Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 10 pull requests #54763

Closed
wants to merge 33 commits into from
Closed

Conversation

pietroalbini
Copy link
Member

Successful merges:

Failed merges:

r? @ghost

davidtwco and others added 30 commits September 20, 2018 17:15
This commit adds suggestions for unresolved imports in the cases where
there could be a missing `crate::`, `super::`, `self::` or a missing
external crate name before an import.
Previously, `meta` crate was hardcoded as attempting to resolve a path
with it would ICE. Now, we attempt to load each extern crate first so
that resolving a path involving that crate doesn't error.
Adds a test to demonstrate behaviour of suggestions in the
2015 edition.
Bring in a few updates and fixes, mostly a standard update.
Otherwise, custom drivers will have to use their own copy of `getopts`, which
won't match the types used in `CompilerCalls`.
In the 2018 edition, when suggesting traits to import that implement a
given method that is being invoked, suggestions will now include the
`crate::` prefix if the suggested trait is local to the current crate.
Avoid hardcoding and special-casing the `std` crate name in the item
path logic by moving the prelude crate name logic into the `Session`
type so it can be reused in the item path logic and resolve module.
This commit takes a different approach to add the `crate::` prefix to
item paths than previous commits. Previously, recursion was stopped
after a prelude crate name was pushed to the path. It is theorized that
this was the cause of the linking issues since the same path logic is
used for symbol names and that not recursing meant that details were
being missed that affect symbol names. As of this commit, instead of
ceasing recursion, a flag is passed through to any subsequent recursive
calls so that the same effect can be achieved by checking that flag.
we are consolidating `cannot bind by-move and by-ref in the same
pattern` message present on the different lines into single diagnostic
message.

To do this, we are first gathering those spans into the vector
after that we are throwing them with the help of MultiSpan in
a separate block.

Addresses: rust-lang#53840
rust-lang#53840: Consolidate pattern check errors

rust-lang#53840  on this PR we are aggregating `cannot bind by-move and by-ref in the same pattern` message present on the different lines into one diagnostic message. Here we are first gathering those `spans` on `vector` then we are throwing them with the help of `MultiSpan`
r? @estebank

Addresses: rust-lang#53480
suggest `crate::...` for "local" paths in 2018

Fixes rust-lang#54230.

This commit adds suggestions for unresolved imports in the cases where
there could be a missing `crate::`, `super::`, `self::` or a missing
external crate name before an import.

r? @nikomatsakis
Add `crate::` to trait suggestions in Rust 2018.

Fixes rust-lang#54559.

In the 2018 edition, when suggesting traits to import that implement a
given method that is being invoked, suggestions will now include the
`crate::` prefix if the suggested trait is local to the current crate.

r? @nikomatsakis
…tsakis

Update Cargo's submodule

Bring in a few updates and fixes, mostly a standard update.
make run-pass tests with empty main just compile-pass tests

Many run-pass tests have an empty main, so there is not actually any point in running them. This makes them `compile-pass` tests instead, saving some time (generating the binary and then running it).

For now I did this only for `run-pass/issues`; if there is interest I can also do it for the other directories. I used `^\s*fn\s+main\(\s*\)\s*\{\s*\}` as regexp to identify these files.
Use impl_header_lifetime_elision in libcore

The feature is approved for stabilization, so let's use it to remove about 300 `'a`s.

Tracking issue for the feature: rust-lang#15872
…=pnkfelix

Re-export `getopts` so custom drivers can reference it.

Otherwise, custom drivers will have to use their own copy of `getopts`, which won't match the types used in `CompilerCalls`.
do not promote comparing function pointers

This *could* break existing code that relied on fn ptr comparison getting promoted to `'static` lifetime.

Fixes rust-lang#54696
…omatsakis

Renumber `proc_macro` tracking issues

Lots of issue links in the compiler still point to rust-lang#38356 which is a bit of a monster issue that isn't serving much purpose any more. I've split the issue into a number of more fine-grained tracking issues to track stabilizations.
make `CStr::from_bytes_with_nul_unchecked()` a const fn

closes rust-lang#54678
@pietroalbini
Copy link
Member Author

@bors r+ p=10

@bors
Copy link
Contributor

bors commented Oct 2, 2018

📌 Commit 926431b has been approved by pietroalbini

@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Oct 2, 2018
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-5.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
[00:18:24]    Compiling rustc_passes v0.0.0 (/checkout/src/librustc_passes)
[00:18:41]    Compiling rustc_plugin v0.0.0 (/checkout/src/librustc_plugin)
[00:18:41]    Compiling rustc_resolve v0.0.0 (/checkout/src/librustc_resolve)
[00:18:42]    Compiling rustc_save_analysis v0.0.0 (/checkout/src/librustc_save_analysis)
[00:18:44] error[E0609]: no field `extern_prelude` on type `&mut resolve_imports::ImportResolver<'a, 'b, 'c>`
[00:18:44]    --> librustc_resolve/error_reporting.rs:135:41
[00:18:44]     |
[00:18:44] 135 |         let external_crate_names = self.extern_prelude.clone();
[00:18:44] 
[00:18:44] error: aborting due to previous error
[00:18:44] 
[00:18:44] For more information about this error, try `rustc --explain E0609`.

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@bors
Copy link
Contributor

bors commented Oct 2, 2018

⌛ Testing commit 926431b with merge 4fedb7522754d0ecb266a8ea2560b52a0b765e00...

@pietroalbini
Copy link
Member Author

@bors r-

@bors bors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Oct 2, 2018
@bors
Copy link
Contributor

bors commented Oct 2, 2018

💔 Test failed - status-travis

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Oct 2, 2018
@pietroalbini pietroalbini deleted the rollup branch October 2, 2018 20:50
@Centril Centril added the rollup A PR which is a rollup label Oct 24, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rollup A PR which is a rollup S-waiting-on-review Status: Awaiting review from the assignee but also interested parties.
Projects
None yet
Development

Successfully merging this pull request may close these issues.