Commit Graph

83630 Commits

Author SHA1 Message Date
Guillaume Gomez
1a0e8f95f5 Remove namespace for keywords 2018-09-10 11:27:21 +02: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
bors
fb945f0ebb Auto merge of #53854 - davidtwco:issue-53668, r=nikomatsakis
if- and while-let-chains, take 2 - edition changes

Part of #53668.

r? @nikomatsakis
2018-09-10 04:05:14 +00:00
kenta7777
69deed9dc1 renamed t_nil to t_unit 2018-09-10 11:21:30 +09:00
kenta7777
2be5c722de renamed mk_nil_ptr to mk_unit_ptr 2018-09-10 11:09:54 +09:00
kenta7777
5c3ba4aa4f renamed mk_nil to mk_unit 2018-09-10 11:07:13 +09:00
kenta7777
6f685ffad4 renamed is_nil to is_unit 2018-09-10 10:45:16 +09:00
bors
fdcd4a4a45 Auto merge of #53936 - petrochenkov:2macpre, r=alexcrichton
resolve: Split macro prelude into built-in and user-defined parts

This is a refactoring that will help to remove `unshadowable_attrs` when https://github.com/rust-lang/rust/pull/53410 lands.

UPDATE: The second commit actually removes `unshadowable_attrs`.
2018-09-10 01:42:11 +00:00
kenta7777
37d0600c23 renamed read_nil to read_unit 2018-09-10 10:36:07 +09:00
kenta7777
d02a5ffaed renamed emit_nil to emit_unit 2018-09-10 10:31:37 +09:00
Vadim Petrochenkov
62c7d78a9a resolve: Remove unshadowable_attrs 2018-09-10 04:04:51 +03:00
Vadim Petrochenkov
a25c841e88 resolve: Split macro prelude into built-in and user-defined parts 2018-09-10 04:00:48 +03:00
Vadim Petrochenkov
615eaba14b Feature gate non-builtin attributes in inner attribute position 2018-09-10 03:35:47 +03:00
Esteban Küber
014a56ca9c Don't compute padding of braces unless they are unmatched 2018-09-09 14:55:46 -07:00
bors
2d4e34ca8b Auto merge of #53778 - petrochenkov:shadrelax2, r=nikomatsakis
resolve: Relax shadowing restrictions on macro-expanded macros

Previously any macro-expanded macros weren't allowed to shadow macros from outer scopes.
Now only "more macro-expanded" macros cannot shadow "less macro-expanded" macros.
See comments to `fn may_appear_after` and added tests for more details and examples.

The functional changes are a21f6f588fc28c97533130ae44a6957b579ab58c and 46dd365ce9ca0a6b8653849b80267763c542842a, other commits are refactorings.
2018-09-09 21:00:55 +00:00
Jorge Aparicio
442947199c update ui tests 2018-09-09 22:08:42 +02:00
Matthew Jasper
54f7311587 Suggest a let binding to extend temporary lifetimes with NLL 2018-09-09 19:43:46 +01:00
Matthew Jasper
ea6fe08751 Split explain_why_borrow_contains_point into two functions
Allows callers to change other parts of their message based on the
explanation
2018-09-09 19:43:10 +01:00
Niko Matsakis
aa52e12658 add generalization 2018-09-09 14:31:05 -04:00
Niko Matsakis
5f43b099cd instantiate traversed binders rather than saving the scopes 2018-09-09 14:14:41 -04:00
Niko Matsakis
39b9281562 add a first_free_index parameter 2018-09-09 14:14:41 -04:00
Niko Matsakis
5c016f4cb5 add ability to create region vars with explicit universe 2018-09-09 14:14:41 -04:00
Niko Matsakis
3f600431ec infer/mod.rs: rustfmt 2018-09-09 14:14:41 -04:00
Niko Matsakis
5c5741bf76 add some comments 2018-09-09 14:14:41 -04:00
Niko Matsakis
d6a98db7cb factor out lookup_bound_region 2018-09-09 14:14:41 -04:00
Niko Matsakis
09f4172bed remove extra lifetime bound 2018-09-09 14:14:41 -04:00
Niko Matsakis
fa1f564426 document the purpose of ScopeInstantiator 2018-09-09 14:14:41 -04:00
Oliver Middleton
d3e56854e1 rustdoc: Remove generated blanket impls from trait pages 2018-09-09 18:27:05 +01:00
David Tolnay
7acd4b12da
Remove documentation about proc_macro being bare-bones 2018-09-09 09:56:14 -07:00
bors
f50b7758f4 Auto merge of #54057 - matthiaskrgr:stabilize-edition-plus-clippy, r=Mark-Simulacrum
Stabilize edition 2018; also updates Clippy, RLS and Cargo

Supersedes https://github.com/rust-lang/rust/pull/53999 , https://github.com/rust-lang/rust/pull/53935
Clippy build was failing there because crate_visibility_modifier feature was taken out of edition 2018 and clippy used it.
The clippy update enables the corresponding feature explicitly.

r? @Mark-Simulacrum
2018-09-09 16:09:39 +00:00
Jorge Aparicio
f4148a6adb remove #[used] from the unstable book
it'll be documented in the reference
2018-09-09 15:55:59 +02:00
Pramod Bisht
af09bf9293 53692: Addressed Estebank's Nits 2018-09-09 13:43:41 +00:00
Jorge Aparicio
2fb5d5df89 stabilize #[used]
closes #40289
2018-09-09 15:43:28 +02:00
bors
40fc8ba5f9 Auto merge of #53902 - dtolnay:group, r=petrochenkov
proc_macro::Group::span_open and span_close

Before this addition, every delimited group like `(`...`)` `[`...`]` `{`...`}` has only a single Span that covers the full source location from opening delimiter to closing delimiter. This makes it impossible for a procedural macro to trigger an error pointing to just the opening or closing delimiter. The Rust compiler does not seem to have the same limitation:

```rust
mod m {
    type T =
}
```

```console
error: expected type, found `}`
 --> src/main.rs:3:1
  |
3 | }
  | ^
```

On that same input, a procedural macro would be forced to trigger the error on the last token inside the block, on the entire block, or on the next token after the block, none of which is really what you want for an error like above.

This commit adds `group.span_open()` and `group.span_close()` which access the Span associated with just the opening delimiter and just the closing delimiter of the group. Relevant to Syn as we implement real error messages for when parsing fails in a procedural macro: https://github.com/dtolnay/syn/issues/476.

```diff
  impl Group {
      fn span(&self) -> Span;
+     fn span_open(&self) -> Span;
+     fn span_close(&self) -> Span;
  }
```

Fixes #48187
r? @alexcrichton
2018-09-09 13:27:44 +00:00
Pramod Bisht
a673203ec8 Addressed #53692 2018-09-09 12:27:25 +00:00
Eric Huss
60be0686e0 merge cargo changes done by https://github.com/rust-lang/rust/pull/53935/
(done by matthiaskrgr, but I authored ehuss)
2018-09-09 12:42:43 +02:00
bors
df6ba0c4ac Auto merge of #53998 - eddyb:issue-53728, r=oli-obk
rustc_codegen_llvm: don't assume offsets are always aligned.

Fixes #53728 by taking into account not just overall type alignment and the field's alignment when determining whether a field is aligned or not ("packed"), but also the field's offset within the type.

Previously, rustc assumed that the offset was always at least as aligned as `min(struct.align, field.align)`. However, there's no real reason to have that assumption, and it obviously can't always be true after we implement `#[repr(align(N), pack(K))]`. There's also a case today where that assumption is not true, involving niche discriminants in enums:

Suppose that we have the code in #53728:
```Rust
#[repr(u16)]
enum DeviceKind {
    Nil = 0,
}

#[repr(packed)]
struct DeviceInfo {
    endianness: u8,
    device_kind: DeviceKind,
}

struct Wrapper {
    device_info: DeviceInfo,
    data: u32
}
```

Observe the layout of `Option<Wrapper>`. It has an alignment of 4 because of the `u32`. `device_info.device_kind` is a good niche field to use, which means the enum ends up with this layout:
```
size = 8
align = 4
fields = [
    { offset=1, type=u16 } // discriminant, .<Some>.device_info.device_kind
]
```

And here we have an discriminant with alignment 2 (`u16`) but offset 1.
2018-09-09 08:54:29 +00:00
Ralf Jung
3cb736af75 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
2018-09-09 10:53:36 +02:00
David Tolnay
57d6ada91d
Rename sp_lo to sp_open 2018-09-08 23:47:42 -07:00
bors
3d2fc456a9 Auto merge of #53988 - eddyb:issue-53770, r=petrochenkov
rustc_resolve: only prepend CrateRoot to a non-keyword segment.

Fixes #53770 by treating `use` paths as absolute in a finer-grained manner, specifically:
```rust
use {a, crate::b, self::c, super::d};
```
Used to be interpreted as if it were (when `uniform_paths` is not enabled):
```rust
use ::{a, crate::b, self::c, super::d};
```
With this PR, the `CrateRoot` pseudo-keyword indicating an absolute path is only inserted when the first path segment is found (if it's not a keyword), i.e. the example behaves like:
```rust
use {::a, crate::b, self::c, super::d};
```
This should (finally) make `use {path};` fully equivalent to `use path;`.

r? @petrochenkov cc @cramertj @joshtriplett @nikomatsakis
2018-09-09 06:25:13 +00:00
Behnam Esfahbod
88fe8acd89 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-08 21:22:00 -07:00
toidiu
7eb0ef0497 simplify ordering for Kind 2018-09-09 00:16:57 -04:00
bors
dac76020a5 Auto merge of #53960 - estebank:issue-51303, r=nagisa
Fix incorrect outer function type parameter message

Fix #51303.
2018-09-09 04:00:21 +00:00
Rusty Blitzerr
7f6b608995 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-08 19:41:46 -07:00
David Tolnay
a1dd39e724
Track distinct spans for open and close delimiter 2018-09-08 19:01:48 -07:00
bors
004bc5a33c Auto merge of #53949 - estebank:unclosed-delim, r=nikomatsakis
Improve messages for un-closed delimiter errors
2018-09-09 01:36:58 +00:00
Matthias Krüger
3387f80ce3 submodules: update clippy, rls with crate visibility patches, also update cargo 2018-09-09 03:00:00 +02:00
Mark Rousskov
5af06768a9 Remove crate_visibility_modifier from 2018 edition 2018-09-09 02:28:13 +02:00