Esteban Küber
3ead6de40d
Tweak incorrect discriminator value variant error
2019-01-11 23:12:29 -08:00
Esteban Küber
7feb802d89
Small tweaks to parser errors
2019-01-11 22:04:54 -08:00
Esteban Küber
de3c4be099
Tweak type argument after assoc type error
2019-01-11 21:45:24 -08:00
Esteban Küber
8119017746
Continue evaluating after finding incorrect .. in pattern
2019-01-11 21:33:57 -08:00
Esteban Küber
57f17e91d0
Continue evaluating after type argument in where clause
2019-01-11 21:05:48 -08:00
Esteban Küber
5d2f31cddc
Continue evaluating after missing for
in impl Trait for Foo
2019-01-11 20:58:51 -08:00
Esteban Küber
fc4b54157f
Continue parsing after lifetime in incorrect location
2019-01-11 19:41:43 -08:00
Esteban Küber
5c67ba615c
Continue parser after trailing type argument attribute
2019-01-11 19:31:45 -08:00
Mazdak Farrokhzad
561483e4e8
stabilize top level or-pats in if/while let.
2019-01-11 23:57:04 +01:00
Nicholas Nethercote
e80a93040f
Make TokenStream
less recursive.
...
`TokenStream` is currently recursive in *two* ways:
- the `TokenTree` variant contains a `ThinTokenStream`, which can
contain a `TokenStream`;
- the `TokenStream` variant contains a `Vec<TokenStream>`.
The latter is not necessary and causes significant complexity. This
commit replaces it with the simpler `Vec<(TokenTree, IsJoint)>`.
This reduces complexity significantly. In particular, `StreamCursor` is
eliminated, and `Cursor` becomes much simpler, consisting now of just a
`TokenStream` and an index.
The commit also removes the `Extend` impl for `TokenStream`, because it
is only used in tests. (The commit also removes those tests.)
Overall, the commit reduces the number of lines of code by almost 200.
2019-01-08 15:08:46 +11:00
bors
d3704932bd
Auto merge of #57251 - petrochenkov:reregr, r=varkor
...
syntax: Fix regression in diagnostics for patterns in trait method parameters
Fixes https://github.com/rust-lang/rust/issues/55036
2019-01-02 09:24:10 +00:00
Vadim Petrochenkov
3df500db29
syntax: Fix regression in diagnostics for patterns in trait method parameters
2019-01-01 23:59:32 +03:00
Esteban Küber
2cd0d14eb1
Address review comments
...
- Suggest raw ident escaping in all editions
- Keep primary label in all cases
2018-12-31 08:24:00 -08:00
Esteban Küber
833f12ebd7
Suggest using raw identifiers in 2018 edition when using keywords
2018-12-31 08:24:00 -08:00
Vadim Petrochenkov
37af04ff8d
Address review comments and CI failures
2018-12-27 15:51:37 +03:00
Vadim Petrochenkov
b99fb2f544
Fix trace_macros
and log_syntax
2018-12-27 15:51:36 +03:00
Vadim Petrochenkov
4ac592516f
Get rid of Block::recovered
2018-12-27 15:51:36 +03:00
Mark Rousskov
2a663555dd
Remove licenses
2018-12-25 21:08:33 -07:00
Pietro Albini
29aa466508
Rollup merge of #56820 - ljedrz:format_tweaks, r=alexcrichton
...
format-related tweaks
- remove an unreachable condition
- inline one-liners related to `parse_expr` (called in succession)
- refactor `report_invalid_references`
- refactor `verify_arg_type`
- minor stylistic improvements
2018-12-19 11:47:09 +01:00
bors
c6fb01d629
Auto merge of #56737 - nnethercote:TokenStream-improvements, r=petrochenkov
...
`TokenStream` improvements
Some `TokenStream` improvements: shrinking `TokenStream` and some other types, and some other code clean-ups.
2018-12-17 01:48:23 +00:00
bors
747a5e514a
Auto merge of #56584 - davidtwco:issue-53990, r=nikomatsakis
...
2018 edition - confusing error message when declaring unnamed parameters
Fixes #53990 .
This PR adds a note providing context for the change to argument
names being required in the 2018 edition for trait methods and a
suggestion for the fix.
2018-12-15 09:05:04 +00:00
ljedrz
3d052c920b
format: inline one-liners related to parse_expr
2018-12-14 10:48:41 +01:00
Nicholas Nethercote
e80c7ddb05
Rename TokenStream::concat
and remove TokenStream::concat_rc_vec
.
...
`TokenStream::new` is a better name for the former, and the latter is
now just equivalent to `TokenStream::Stream`.
2018-12-12 20:36:00 +11:00
Nicholas Nethercote
1fe2c03240
Remove tokenstream::Delimited
.
...
Because it's an extra type layer that doesn't really help; in a couple
of places it actively gets in the way, and overall removing it makes the
code nicer. It does, however, move `tokenstream::TokenTree` further away
from the `TokenTree` in `quote.rs`.
More importantly, this change reduces the size of `TokenStream` from 48
bytes to 40 bytes on x86-64, which is enough to slightly reduce
instruction counts on numerous benchmarks, the best by 1.5%.
Note that `open_tt` and `close_tt` have gone from being methods on
`Delimited` to associated methods of `TokenTree`.
2018-12-10 12:10:10 +11:00
Mazdak Farrokhzad
ac15b4f4bd
Rollup merge of #56248 - estebank:suggest-bare-pub, r=petrochenkov
...
Suggest an appropriate token when encountering `pub Ident<'a>`
Fix #55403 . Follow up to #45997 .
2018-12-08 08:43:43 +01:00
Alexander Regueiro
ee89c088b0
Various minor/cosmetic improvements to code
2018-12-07 23:53:34 +00:00
David Wood
7fcf31b181
Add suggestion for underscore binding fix.
...
This commit emits a suggestion for adding an underscore binding to
arguments in trait methods that previously did not have a argument name
specified.
2018-12-07 12:02:41 +01:00
David Wood
e4dc15a969
Add context for RFC 1685 change in 2018 edition.
...
This commit adds a note providing context for the change to argument
names being required in the 2018 edition for trait methods.
2018-12-07 11:56:56 +01:00
bors
4bb5d35659
Auto merge of #56392 - petrochenkov:regensym, r=oli-obk
...
Delay gensym creation for "underscore items" (`use foo as _`/`const _`) until name resolution
So they cannot be cloned by macros. See https://github.com/rust-lang/rust/pull/56303 for the discussion.
Mostly fix cross-crate use of underscore items by inverting the "gensyms are lost in metadata" bug as described in https://github.com/rust-lang/rust/pull/56303#issuecomment-442464695 .
Fix unused import warnings for single-segment imports (first commit) and `use crate_name as _` imports (as specified in https://github.com/rust-lang/rust/pull/56303#issuecomment-442274118 ).
Prohibit accidentally implemented `static _: TYPE = EXPR;` (cc https://github.com/rust-lang/rust/pull/55983 ).
Add more tests for `use foo as _` imports.
2018-12-06 15:08:11 +00:00
Vadim Petrochenkov
d08f7dcdca
Address review comments
2018-12-04 01:13:03 +03:00
Vadim Petrochenkov
08f8faedd0
syntax: Rename some keywords
...
`CrateRoot` -> `PathRoot`, `::` doesn't necessarily mean crate root now
`SelfValue` -> `SelfLower`, `SelfType` -> `SelfUpper`, both `self` and `Self` can be used in type and value namespaces now
2018-12-04 00:30:27 +03:00
kennytm
a498a6d198
Rollup merge of #56433 - yui-knk:update_comment_of_parse_visibility, r=petrochenkov
...
Add description about `crate` for parse_visibility's comment
This rule was introduced by https://github.com/rust-lang/rust/pull/45401 .
2018-12-03 18:07:18 +08:00
kennytm
ca98bce303
Rollup merge of #56419 - mark-i-m:remove-try, r=Centril
...
Remove some uses of try!
2018-12-03 18:07:15 +08:00
Vadim Petrochenkov
2d4b633be3
Delay gensym creation for "underscore items" until name resolution
...
Prohibit `static _`
Fis unused import warnings for `use foo as _`
Add more tests for `use foo as _`
2018-12-02 15:42:30 +03:00
yui-knk
172ec724af
Fix "line longer than 100 chars"
2018-12-02 18:33:12 +09:00
yui-knk
70371fde17
Add description about crate
for parse_visibility's comment
...
This rule was introduced by https://github.com/rust-lang/rust/pull/45401 .
2018-12-02 17:01:44 +09:00
Mark Mansi
e7e96921c2
remove some uses of try!
2018-12-01 15:48:55 -06:00
Vadim Petrochenkov
549bd45e9e
resolve: Support aliasing local crate root in extern prelude
2018-12-01 14:38:47 +03:00
Esteban Küber
2645871111
Use appropriate terminology based on heuristic
2018-11-30 15:09:39 -08:00
Esteban Küber
0952856e6c
Suggest an appropriate token when encountering pub Ident<'a>
2018-11-30 11:48:08 -08:00
kennytm
bdb901c865
Rollup merge of #56336 - nnethercote:clean-up-pp, r=nikomatsakis
...
Clean up and streamline the pretty-printer
Some minor improvements.
2018-12-01 02:03:43 +08:00
Guillaume Gomez
3b64f86beb
Rollup merge of #56330 - estebank:cleanup-span, r=zackmdavis
...
Clean up span in non-trailing `..` suggestion
2018-11-29 13:10:54 +01:00
Guillaume Gomez
796892e0ef
Rollup merge of #56220 - estebank:suggest-lifetime-move, r=nikomatsakis
...
Suggest appropriate place for lifetime when declared after type arguments
2018-11-29 13:10:39 +01:00
Nicholas Nethercote
787959c20d
Use Cow
in Token::String
.
...
`Printer::word` takes a `&str` and converts it into a `String`, which
causes an allocation. But that allocation is rarely necessary, because
`&str` is almost always a `&'static str` or a `String` that won't be
used again.
This commit changes `Token::String` so it holds a `Cow<'static, str>`
instead of a `String`, which avoids a lot of allocations.
2018-11-29 17:12:18 +11:00
Esteban Küber
66a2c39290
Clean up span in non-trailing ..
suggestion
2018-11-28 16:05:02 -08:00
Esteban Küber
6f028fe8e0
Specify suggestion applicability
2018-11-26 13:58:46 -08:00
Vadim Petrochenkov
dae4c7b1ff
resolve: Implement edition hygiene for imports and absolute paths
...
Use per-span hygiene in a few other places in resolve
Prefer `rust_2015`/`rust_2018` helpers to comparing editions
2018-11-27 00:32:30 +03:00
Esteban Küber
45dfe43887
Emit one diagnostic for multiple misplaced lifetimes
2018-11-26 08:32:47 -08:00
Esteban Küber
234d043d18
Move lifetimes before the *first* type argument
2018-11-25 12:51:04 -08:00
Esteban Küber
79ee8f329d
Suggest appropriate place for lifetime when declared after type arguments
2018-11-25 12:41:38 -08:00