Mazdak Farrokhzad
d286fe0b8d
builtin_attrs.rs: organize!
2019-08-23 01:41:04 +02:00
Mazdak Farrokhzad
584388c4aa
builtin_attrs.rs: cleanup with (un)gated!.
2019-08-23 01:40:52 +02:00
Mazdak Farrokhzad
0d19d1d775
builtin_attrs.rs: refactor rustc_attrs entries.
2019-08-23 01:40:37 +02:00
Mazdak Farrokhzad
1c979ad552
builtin_attrs.rs: simplify cfg_fn.
2019-08-23 01:39:59 +02:00
Mazdak Farrokhzad
332a77e621
syntax: extract builin_attrs.rs.
2019-08-23 01:39:54 +02:00
Mazdak Farrokhzad
7afb2a82ec
syntax: extract active.rs feature gates.
2019-08-23 01:39:44 +02:00
Mazdak Farrokhzad
975455b37d
syntax: extract removed.rs feature gates.
2019-08-23 01:39:38 +02:00
Mazdak Farrokhzad
b873743c02
syntax: extract accepted.rs feature gates.
2019-08-23 01:39:29 +02:00
Mazdak Farrokhzad
70436969e0
Rollup merge of #63717 - petrochenkov:eager, r=matthewjasper
...
Fix nested eager expansions in arguments of `format_args`
Fixes https://github.com/rust-lang/rust/issues/63460
Fixes https://github.com/rust-lang/rust/issues/63685 (regression from making `format_args` opaque - https://github.com/rust-lang/rust/pull/63114 )
r? @matthewjasper
2019-08-21 17:31:39 +02:00
Mazdak Farrokhzad
0e8a1a4e78
Rollup merge of #63762 - rust-lang:fix-async-date, r=Mark-Simulacrum
...
`async_await` was stabilized in 1.39.0, not 1.38.0.
r? @Mark-Simulacrum
2019-08-21 11:52:28 +02:00
Mazdak Farrokhzad
67e39ed51c
Rollup merge of #63759 - Centril:parse-default-async-fn, r=petrochenkov
...
Allow 'default async fn' to parse.
- Parse default async fn. Fixes #63716 .
(`cherry-pick`ed from 3rd commit in https://github.com/rust-lang/rust/pull/63749 .)
r? @petrochenkov
2019-08-21 11:52:25 +02:00
Mazdak Farrokhzad
b6556744b5
Rollup merge of #63755 - Centril:simplify-prexp-gating, r=petrochenkov
...
Use dedicated type for spans in pre-expansion gating.
- Simplify the overall pre-expansion gating "experience".
2019-08-21 11:52:23 +02:00
Mazdak Farrokhzad
d7c162aefd
Rollup merge of #63721 - Mark-Simulacrum:decouple-error-index, r=matthewjasper
...
Do not emit JSON dumps of diagnostic codes
This decouples the error index generator from libsyntax for the most part (though it still depends on librustdoc for the markdown parsing and generation).
Fixes #34588
2019-08-21 11:52:20 +02:00
Vadim Petrochenkov
93d369bc2b
resolve/expand: Rename some things for clarity and add comments
2019-08-21 11:53:39 +03:00
Vadim Petrochenkov
a83c35692f
expand: Do not do questionable span adjustment before eagerly expanding an expression
...
Maybe it made sense when it was introduced, but now it's doing something incorrect.
2019-08-21 11:53:39 +03:00
Vadim Petrochenkov
96032aa5ef
expand: Keep the correct current expansion ID for eager expansions
...
Solve the problem of `ParentScope` entries for eager expansions not exising in the resolver map by creating them on demand.
2019-08-21 11:53:39 +03:00
Mazdak Farrokhzad
418eb181ca
async_await was stabilized in 1.39.0, not 1.38.0.
2019-08-21 00:23:08 +02:00
Mazdak Farrokhzad
7ee4f1da8c
Allow 'default async fn' to parse.
2019-08-20 22:57:23 +02:00
Mazdak Farrokhzad
777a12c3a4
Use dedicated type for spans in pre-expansion gating.
2019-08-20 20:26:37 +02:00
Mazdak Farrokhzad
3f7e7c2fd3
Rollup merge of #63209 - Centril:stabilize-async-await, r=cramertj
...
Stabilize `async_await` in Rust 1.39.0
Here we stabilize:
- free and inherent `async fn`s,
- the `<expr>.await` expression form,
- and the `async move? { ... }` block form.
Closes https://github.com/rust-lang/rust/issues/62149 .
Closes https://github.com/rust-lang/rust/issues/50547 .
All the blockers are now closed.
<details>
- [x] FCP in https://github.com/rust-lang/rust/issues/62149
- [x] https://github.com/rust-lang/rust/issues/61949 ; PR in https://github.com/rust-lang/rust/pull/62849 .
- [x] https://github.com/rust-lang/rust/issues/62517 ; PR in https://github.com/rust-lang/rust/pull/63376 .
- [x] https://github.com/rust-lang/rust/issues/63225 ; PR in https://github.com/rust-lang/rust/pull/63501
- [x] https://github.com/rust-lang/rust/issues/63388 ; PR in https://github.com/rust-lang/rust/pull/63499
- [x] https://github.com/rust-lang/rust/issues/63500 ; PR in https://github.com/rust-lang/rust/pull/63501
- [x] https://github.com/rust-lang/rust/issues/62121#issuecomment-506884048
- [x] Some tests for control flow (PR https://github.com/rust-lang/rust/pull/63387 ):
- `?`
- `return` in `async` blocks
- `break`
- [x] https://github.com/rust-lang/rust/pull/61775#issuecomment-506883180 , i.e. tests for https://github.com/rust-lang/rust/pull/60944 with `async fn`s instead). PR in https://github.com/rust-lang/rust/pull/63383
</details>
r? @cramertj
2019-08-20 19:42:18 +02:00
Mark Rousskov
72e2cfd934
Remove serialization of diagnostics to files
...
This is no longer used by the index generator and was always an unstable
compiler detail, so strip it out.
This also leaves in RUSTC_ERROR_METADATA_DST since the stage0 compiler
still needs it to be set.
2019-08-20 09:55:31 -04:00
Mazdak Farrokhzad
b0d4782948
Stabilize 'async_await'.
2019-08-20 02:38:02 +02:00
Aleksey Kladov
914e1f4564
glue tokens when building token stream
2019-08-19 21:59:33 +03:00
Aleksey Kladov
8b932dfda7
remove composite tokens support from the lexer
2019-08-19 21:59:09 +03:00
bors
ef1ecbefb8
Auto merge of #62948 - matklad:failable-file-loading, r=petrochenkov
...
Normalize newlines when loading files
Fixes #62865
2019-08-18 04:37:01 +00:00
bors
fc8765d6d8
Auto merge of #61708 - dlrobertson:or-patterns-0, r=centril
...
Initial implementation of or-patterns
An incomplete implementation of or-patterns (e.g. `Some(0 | 1)` as a pattern). This patch set aims to implement initial parsing of `or-patterns`.
Related to: #54883
CC @alexreg @varkor
r? @Centril
2019-08-18 01:02:20 +00:00
Vadim Petrochenkov
1064d41c96
resolve/expand: Rename some things for clarity
2019-08-17 21:04:48 +03:00
Dan Robertson
1870537f27
initial implementation of or-pattern parsing
...
Initial implementation of parsing or-patterns e.g., `Some(Foo | Bar)`.
This is a partial implementation of RFC 2535.
2019-08-17 15:55:40 +00:00
varkor
1713ac4bf5
Initial implementation of or patterns
2019-08-17 15:05:36 +00:00
Matthew Jasper
d04af194fc
Remove SyntaxContext from {ast, hir}::{GlobalAsm, InlineAsm}
...
We now store it in the `Span` of the expression or item.
2019-08-17 09:12:32 +01:00
Mazdak Farrokhzad
bf04edee2f
Rollup merge of #63545 - Centril:gate-yield-preexp, r=oli-obk
...
Feature gate 'yield $expr?' pre-expansion
Also improve the overall ergonomics of pre-expansion gating in general.
r? @Zoxc
2019-08-17 03:02:56 +02:00
Mazdak Farrokhzad
20661f18df
Simplify pre-expansion gating in general.
2019-08-16 19:24:15 +02:00
Mazdak Farrokhzad
4087fc583e
Feature gate 'yield ?' pre-expansion.
2019-08-16 19:24:15 +02:00
Mazdak Farrokhzad
c83d3c3281
Rollup merge of #63525 - matklad:centraliza-file-loading, r=petrochenkov
...
Make sure that all file loading happens via SourceMap
That way, callers don't need to repeat "let's add this to sm manually
for tracking dependencies" trick.
It should make it easier to switch to using `FileLoader` for binary
files in the future as well
cc #62948
r? @petrochenkov
2019-08-16 18:22:24 +02:00
Vadim Petrochenkov
136db2235a
hygiene: ExpnInfo -> ExpnData
...
For naming consistency with everything else in this area
2019-08-15 20:41:45 +03:00
Vadim Petrochenkov
74190a5e1c
syntax_pos: Remove the duplicate global edition
...
It was introduced to avoid going through `hygiene_data`, but now it's read only once, when `ParseSess` is created, so going through a lock is ok.
2019-08-15 20:41:45 +03:00
Vadim Petrochenkov
1a447738b8
hygiene: Merge ExpnInfo and InternalExpnData
2019-08-15 20:41:45 +03:00
Vadim Petrochenkov
73dee258c1
hygiene: Remove Options from functions returning ExpnInfo
...
The expansion info is not optional and should always exist
2019-08-15 20:39:27 +03:00
Vadim Petrochenkov
6cb28b6617
Ident::with_empty_ctxt -> Ident::with_dummy_span
...
`Ident` has had a full span rather than just a `SyntaxContext` for a long time now.
2019-08-15 20:39:26 +03:00
Vadim Petrochenkov
67d6ce4206
syntax_pos: NO_EXPANSION/SyntaxContext::empty() -> SyntaxContext::root()
...
For consistency with `ExpnId::root`.
Also introduce a helper `Span::with_root_ctxt` for creating spans with `SyntaxContext::root()` context
2019-08-15 20:38:12 +03:00
Vadim Petrochenkov
dfcbe75900
syntax_pos: Introduce a helper for checking whether a span comes from expansion
2019-08-15 20:38:12 +03:00
Vadim Petrochenkov
a6182711ef
Remove Spanned from {ast,hir}::FieldPat
2019-08-15 12:31:50 +03:00
Vadim Petrochenkov
433b1e36e1
Remove Spanned from ast::Mac
2019-08-15 11:45:28 +03:00
Vadim Petrochenkov
73d2da0894
Remove Spanned from mk_name_value_item_str and expr_to_spanned_string
2019-08-15 11:44:22 +03:00
Aleksey Kladov
66dc08ad60
Make sure that all file loading happens via SourceMap
...
That way, callers don't need to repeat "let's add this to sm manually
for tracking dependencies" trick.
It should make it easier to switch to using `FileLoader` for binary
files in the future as well
2019-08-15 10:42:31 +03:00
Mazdak Farrokhzad
ad44d42750
Rollup merge of #63543 - c410-f3r:variant, r=c410-f3r
...
Merge Variant and Variant_
Extracted from #63468 .
2019-08-14 22:56:29 +02:00
Mazdak Farrokhzad
d4ecc6f5c0
Rollup merge of #63542 - c410-f3r:node_ids, r=petrochenkov
...
Add NodeId for Arm, Field and FieldPat
Extracted from #63468
2019-08-14 22:56:28 +02:00
Mazdak Farrokhzad
83cd4e3211
Rollup merge of #63537 - petrochenkov:novisit, r=alexcrichton
...
expand: Unimplement `MutVisitor` on `MacroExpander`
Each call to `fully_expand_fragment` is something unique, interesting, and requiring attention.
It represents a "root" of expansion and its use means that something unusual is happening, like eager expansion or expansion performed outside of the primary expansion pass.
So, it shouldn't hide under a generic visitor call.
Also, from all the implemented visitor methods only two were actually used.
cc https://github.com/rust-lang/rust/pull/63468#discussion_r313504119
2019-08-14 22:56:27 +02:00
Mazdak Farrokhzad
409df9b530
Rollup merge of #63528 - petrochenkov:anyany, r=estebank
...
syntax: Remove `DummyResult::expr_only`
The effect is that if a built-in macro both returns an erroneous AST fragment and is used in unexpected position, then the incorrect position error won't be reported.
This combination of two errors should be rare and isn't worth an extra field that makes people ask questions in comments.
(There wasn't even a test making sure it worked.)
Addresses https://github.com/rust-lang/rust/pull/63468#discussion_r313504644
r? @estebank
2019-08-14 22:56:25 +02:00
Mazdak Farrokhzad
aaeff01446
Rollup merge of #63490 - Centril:cleanup-pat-parser, r=petrochenkov
...
libsyntax: cleanup and refactor `pat.rs`
A smaller refactoring & cleanup of `pat.rs` (best read commit by commit).
r? @petrochenkov
2019-08-14 22:56:21 +02:00