Commit graph

83392 commits

Author SHA1 Message Date
kennytm
85b6bf9ace
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
2018-09-12 12:17:34 +08:00
kennytm
74b8188af7
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
2018-09-12 12:17:33 +08:00
kennytm
61fe064a30
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.
2018-09-12 12:17:32 +08:00
kennytm
e7b45a0b1f
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.
2018-09-12 12:17:30 +08:00
kennytm
de2c0f95e8
Rollup merge of #54064 - nagisa:tiny-typo, r=sfackler
`&CStr`, not `CStr`, is the counterpart of `&str`
2018-09-12 12:17:29 +08:00
kennytm
3c9e884dd3
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!
2018-09-12 12:17:28 +08:00
kennytm
b365de94df
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
2018-09-12 12:17:26 +08:00
kennytm
4f62077a2c
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.
2018-09-12 12:17:25 +08:00
kennytm
605948f92e
Rollup merge of #53703 - sourcefrog:doc-wrapping, r=frewsxcv
Document .0 to unpack integer from Wrapping
2018-09-12 12:17:24 +08:00
kennytm
6b55f04725
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.
2018-09-12 12:17:22 +08:00
bors
58063894d2 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
2018-09-11 23:28:39 +00:00
bors
2f1547c0aa 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
2018-09-11 20:59:11 +00:00
bors
f17c2306e2 Auto merge of #54111 - nikomatsakis:issue-53686-keywords-and-macros, r=alexcrichton
warn about keywords in macro invocations

Fixes #53686

r? @alexcrichton
2018-09-11 15:40:44 +00:00
Niko Matsakis
0cd8e0d03e we now successfully warn about async in macro invocations 2018-09-11 08:56:59 -04:00
bors
7ee72070bd Auto merge of #51363 - japaric:stable-used, r=cramertj
stabilize #[used]

closes #40289

RFC for stabilization: rust-lang/rfcs#2386

r? @Centril

Where should this be documented? Currently the documentation is in the unstable book
2018-09-11 08:54:11 +00:00
bors
1f02f23263 Auto merge of #54113 - alexcrichton:update-cargo, r=Mark-Simulacrum
Update Cargo submodule

Bring in a few last-minute updates before the 1.30.0 release
2018-09-11 06:28:29 +00:00
bors
d6720cc810 Auto merge of #54092 - estebank:gotta-go-fast, r=nikomatsakis
Don't compute padding of braces unless they are unmatched

Follow up to #53949. Attempt to fix # #54083.

r? @nikomatsakis
2018-09-11 01:08:49 +00:00
Alex Crichton
00e6d54609 Update Cargo submodule
Bring in a few last-minute updates before the 1.30.0 release
2018-09-10 16:40:57 -07:00
Vadim Petrochenkov
de153d61f5 resolve: Reserve a few very special names in macro namespace 2018-09-11 01:13:55 +03:00
Vadim Petrochenkov
65c8c97bc7 resolve: Skip bang macros when resolving potentially built-in attributes 2018-09-11 00:30:44 +03:00
Vadim Petrochenkov
d0aaf895ee resolve: Future proof resolutions for potentially built-in attributes 2018-09-11 00:30:44 +03:00
Vadim Petrochenkov
730c5de281 resolve: Support resolving identifier macros without their own ID
Invocation/expansion ID (aka `Mark`) is not really necessary for resolving a macro path.
What is really necessary is its parent module, parent expansion and parent legacy scope.
This is required for validation resolutions of built-in attributes, which don't get their own `Mark`s
2018-09-11 00:30:44 +03:00
Niko Matsakis
f95f23f0c3 fix incremental test
We are now carrying the user-given type through MIR, so it makes sense
that this would change the hash.
2018-09-10 17:24:43 -04:00
Niko Matsakis
5adbdf82f3 add test case 2018-09-10 17:21:01 -04:00
Niko Matsakis
b1a9f9eae8 visit the paths in pre-expansion macros 2018-09-10 17:12:55 -04:00
Niko Matsakis
38774aaf7f make add_pre_expansion_builtin add a pre-expansion lint
Copy-and-paste error.
2018-09-10 17:10:11 -04:00
Niko Matsakis
df37678b76 add FIXME related to ref x bindings 2018-09-10 14:12:20 -04:00
bors
551244f05b Auto merge of #54093 - petrochenkov:noinner, r=alexcrichton
Feature gate non-builtin attributes in inner attribute position

Closes item 3 from https://github.com/rust-lang/rust/pull/50911#issuecomment-411605393
2018-09-10 17:18:27 +00:00
Niko Matsakis
2b6f9664ed add link to https://github.com/rust-lang/rust/issues/54105 2018-09-10 11:03:11 -04:00
Niko Matsakis
e87bf30f5f propagate user-ascribes types down onto resulting bindings
But only in very simple cases.
2018-09-10 10:58:31 -04:00
Niko Matsakis
a8710539cb expand the patterns test with a bunch more scenarios 2018-09-10 09:39:43 -04:00
bors
3c3e372e18 Auto merge of #54000 - jkozlowski:fix-53174, r=cramertj
Allow named lifetimes in async functions.

- Fixes #53174

Code by @eddyb; @cramertj suggested I lift it off another change so we can fix #53174.

r? @cramertj
2018-09-10 12:58:04 +00:00
Jorge Aparicio
d37658afbd bump version 2018-09-10 14:34:04 +02:00
Niko Matsakis
2f6628ecec optimize let x: T = .. to avoid a temporary
For some weird reason this fixes `intrinsic-move-val`. It also affects
various test heuristics. I removed one test (`reborrow_basic`) that
didn't seem to really be testing anything in particular anymore,
compared to all the other tests we've got.
2018-09-10 08:28:56 -04:00
Niko Matsakis
16f4e8ac1d generalize AscribeUserType to handle sub or super type 2018-09-10 08:28:31 -04:00
Niko Matsakis
9c5e7941ef WIP remove incorrect nll.stderr reference files 2018-09-10 08:22:31 -04:00
Niko Matsakis
fced2b1200 fix SCCs containing mixture of universes
And add a test showing a universe violation getting caught.
2018-09-10 08:22:31 -04:00
Niko Matsakis
f0e3a09bb8 fixup: rename UserAssertTy to AscribeUserType
This is some rebase pain.
2018-09-10 08:22:31 -04:00
Niko Matsakis
05a6e1e73f pacify the mercilous tidy 2018-09-10 08:22:31 -04:00
Niko Matsakis
7e1b97884b insert AscribeUserType for ascriptions 2018-09-10 08:22:31 -04:00
Niko Matsakis
dd3cc9669a add the AscribeUserType statement kind
Make it have the semantics of subtype.
2018-09-10 08:22:31 -04:00
Niko Matsakis
22f9bcce04 matches/mod.rs: rustfmt 2018-09-10 08:22:31 -04:00
Niko Matsakis
50754d0513 add a AscribeUserType pattern, largely ignored 2018-09-10 08:22:31 -04:00
Niko Matsakis
4b5f19a0b0 remove the old UserAssertTy support 2018-09-10 08:22:31 -04:00
Niko Matsakis
34575e693b now that we can handle subtyping, fix higher-ranked equality 2018-09-10 08:22:31 -04:00
Niko Matsakis
07e21b1e4b add a test for variables used twice 2018-09-10 08:22:31 -04:00
bors
595345419d Auto merge of #54011 - eddyb:anchored-in-the-future, r=petrochenkov
rustc_resolve: inject `uniform_paths` canaries regardless of the feature-gate, on Rust 2018.

This PR is an attempt at future-proofing "anchored paths" by emitting the same ambiguity errors that `#![feature(uniform_paths)]` would, with slightly changed phrasing (see added UI tests).

Also, on top of #54005, this PR allows this as well:
```rust
use crate_name;
use crate_name::foo;
```
In that any ambiguity between an extern crate and an import *of that same crate* is ignored.

r? @petrochenkov cc @aturon @Centril @joshtriplett
2018-09-10 10:28:53 +00:00
Eduard-Mihai Burtescu
d5da94a3b1 rustc_resolve: ignore uniform_paths canaries that resolve to an import of the same crate. 2018-09-10 11:48:46 +03:00
Eduard-Mihai Burtescu
0a33de04cf rustc_resolve: inject uniform_paths canaries regardless of the feature-gate, on Rust 2018. 2018-09-10 11:48:46 +03:00
bors
b8d45da274 Auto merge of #53565 - PramodBisht:issue/53359_b, r=estebank
#53359: putting multiple unresolved import on single line

r? @estebank
Here is WIP implementation of #53359
this PR have clubbed multiple unresolved imports into a single line.
I think still two things need to improve like giving specific `label message` for each span of multi_span(how we can do this?) and second we are getting a warning while compiling, stating something like `E0432` have been passed before.
2018-09-10 07:48:45 +00:00