Mark Rousskov
94b16d4bd0
Rollup merge of #62703 - fakenine:normalize_use_of_backticks_compiler_messages_p6, r=eddyb
...
normalize use of backticks in compiler messages for libsyntax/parse
https://github.com/rust-lang/rust/issues/60532
2019-07-16 11:38:58 -04:00
Mark Rousskov
ae2672340c
Rollup merge of #62666 - estebank:preempt-ice, r=eddyb
...
Cancel unemitted diagnostics during error recovery
Follow up to https://github.com/rust-lang/rust/pull/62604 . Use @eddyb's preferred style and catch other case of the same problem.
r? @eddyb
2019-07-16 11:38:52 -04:00
Mark Rousskov
f9576a6fce
Rollup merge of #62668 - goodmanjonathan:fix-62660, r=estebank
...
Fix #62660
If the explicitly given type of a `self` parameter fails to parse correctly, we need to propagate the error rather than dropping it and causing an ICE.
Fixes #62660 .
2019-07-15 19:55:10 -04:00
Samy Kacimi
7ddafaf6f9
normalize use of backticks in compiler messages for libsyntax/parse
...
https://github.com/rust-lang/rust/issues/60532
2019-07-16 00:07:30 +02:00
bors
e452e2929d
Auto merge of #62670 - estebank:extern-fn-with-body, r=petrochenkov
...
Detect `fn` with a body in an `extern` block
Fix #62109 .
2019-07-15 02:13:55 +00:00
bors
d82fd9ecd3
Auto merge of #62643 - estebank:parse-recovery-type-errs, r=petrochenkov
...
Do not emit type errors after parse error in last statement of block
When recovering from a parse error inside a block, do not emit type
errors generating on that block's recovered return expression.
Fix #57383 .
2019-07-14 22:51:05 +00:00
bors
83e4eed16e
Auto merge of #62638 - estebank:issue-62554, r=petrochenkov
...
Use snippet instead of pprinting statement
Fix #62554 .
2019-07-14 17:29:17 +00:00
Esteban Küber
f2a6a4e5af
review comment
2019-07-13 22:25:23 -07:00
Esteban Küber
c8d9cd99fa
Detect fn with a body in an extern block
2019-07-13 22:24:11 -07:00
Jonathan Goodman
7111328556
Don't drop DiagnosticBuilder if parsing fails
...
If the explicitly given type of a `self` parameter fails to parse correctly,
we need to propagate the error rather than dropping it and causing an ICE.
Fixes #62660 .
2019-07-13 19:46:13 -05:00
Esteban Küber
f05dfe07f6
Cancel unemitted diagnostics during error recovery
2019-07-13 16:04:12 -07:00
Mazdak Farrokhzad
4fe6e63cd6
Rollup merge of #62604 - estebank:unemitted-err-ice, r=pnkfelix
...
Handle errors during error recovery gracefully
Fix #62546 .
2019-07-13 16:18:38 +02:00
Esteban Küber
8259a2dd42
Do not emit type errors after parse error in last statement of block
...
When recovering from a parse error inside a block, do not emit type
errors generating on that block's recovered return expression.
Fix #57383 .
2019-07-12 18:55:01 -07:00
Esteban Küber
726aa1437f
Use snippet instead of pprinting statement
2019-07-12 14:01:13 -07:00
Mazdak Farrokhzad
a7f1649fbb
Rollup merge of #62607 - estebank:this-mem-is-out-of-control, r=petrochenkov
...
Correctly break out of recovery loop
Fix #61858 .
2019-07-12 22:46:52 +02:00
Esteban Küber
cc481a46cb
Correctly break out of recovery loop
2019-07-11 20:02:54 -07:00
Esteban Küber
c9f7a3d206
Emit dropped unemitted errors to aid in ICE debugging
2019-07-11 16:59:19 -07:00
Esteban Küber
e1c7747cf0
Handle errors during error recovery gracefully
2019-07-11 16:54:33 -07:00
Mark Rousskov
63fdf1a527
Remove needless indent arguments
...
We're always indenting by INDENT_UNIT anyway
2019-07-10 07:13:22 -04:00
Mark Rousskov
cab453250a
Move pp::Printer helpers to direct impl
2019-07-10 07:13:20 -04:00
Mark Rousskov
7e3791469f
Replace src: &mut dyn Read with String
2019-07-10 07:12:28 -04:00
Mark Rousskov
0f10d114e4
Remove duplicate attr_to_string
...
attribute_to_string exists.
2019-07-10 07:11:29 -04:00
Mark Rousskov
9b0ebfa4e9
Move literal_to_string to fmt::Display
2019-07-10 07:11:29 -04:00
Vadim Petrochenkov
b6d522a101
syntax: Pre-intern names of all built-in macros
...
They always end up interned anyway
2019-07-07 13:04:07 +03:00
Mazdak Farrokhzad
952ee77871
Rollup merge of #62329 - matklad:no-peeking, r=petrochenkov
...
Remove support for 1-token lookahead from the lexer
`StringReader` maintained `peek_token` and `peek_span_src_raw` for look ahead.
`peek_token` was used only by rustdoc syntax coloring. After moving peeking logic into highlighter, I was able to remove `peek_token` from the lexer. I tried to use `iter::Peekable`, but that wasn't as pretty as I hoped, due to buffered fatal errors. So I went with hand-rolled peeking.
After that I've noticed that the only peeking behavior left was for raw tokens to test tt jointness. I've rewritten it in terms of trivia tokens, and not just spans.
After that it became possible to simplify the awkward constructor of the lexer, which could return `Err` if the first peeked token contained error.
2019-07-06 02:38:01 +02:00
Mazdak Farrokhzad
84527e4676
Rollup merge of #62292 - Centril:split-async-closures, r=cramertj
...
Move `async || ...` closures into `#![feature(async_closure)]`
The `async || expr` syntax is moved out from `#![feature(async_await)]` into its own gate `#![feature(async_closure)]`.
New tracking issue: https://github.com/rust-lang/rust/issues/62290
Closes https://github.com/rust-lang/rust/issues/62214 .
cc https://github.com/rust-lang/rust/issues/62149
r? @varkor
2019-07-05 13:53:06 +02:00
bors
f119bf2761
Auto merge of #62099 - Mark-Simulacrum:syntax-print-clean-2, r=eddyb
...
Remove io::Result from syntax::print
Since we're now writing directly to the vector, there's no need to
thread results through the whole printing infrastructure
2019-07-05 06:55:48 +00:00
Aleksey Kladov
3e362a4800
make unwrap_or_abort non-generic again
2019-07-04 09:12:33 +03:00
Aleksey Kladov
3035a05a74
remove unused mk_sp_and_raw
2019-07-04 09:12:33 +03:00
Aleksey Kladov
8bea334a26
don't rely on spans when checking tokens for jointness
2019-07-04 09:12:24 +03:00
Aleksey Kladov
1c6eb19d2f
slightly comment lexer API
2019-07-04 09:08:45 +03:00
Aleksey Kladov
30fa99e5b8
move constructors to top
2019-07-04 09:08:45 +03:00
Aleksey Kladov
601bad86b2
cleanup lexer constructors
2019-07-04 09:08:45 +03:00
Aleksey Kladov
256df83f64
remove peek_span_src_raw from StringReader
2019-07-04 09:08:39 +03:00
Aleksey Kladov
e9dc95c86e
remove peek_token from StringReader
2019-07-04 09:01:37 +03:00
Aleksey Kladov
830ff4a592
remove StringReader::peek
...
The reader itself doesn't need ability to peek tokens, so it's better
if clients implement this functionality.
This hopefully becomes especially easy once we use iterator interface
for lexer, but this is not too easy at the moment, because of buffered
errors.
2019-07-04 09:01:37 +03:00
Mazdak Farrokhzad
c0ec567214
Rollup merge of #62297 - matklad:peek-delimited, r=petrochenkov
...
refactor check_for_substitution
No behavior change, just flatter and simpler code.
r? @petrochenkov
2019-07-04 01:38:55 +02:00
Mazdak Farrokhzad
8867ba19de
Rollup merge of #62258 - petrochenkov:idclean, r=Centril
...
syntax: Unsupport `foo! bar { ... }` macros in the parser
Their support in expansion was removed in https://github.com/rust-lang/rust/pull/61606 .
Also un-reserve `macro_rules` as a macro name, there's no ambiguity between `macro_rules` definitions and macro calls (it also wasn't reserved correctly).
cc https://github.com/rust-lang-nursery/wg-grammar/issues/51
2019-07-04 01:38:49 +02:00
Mazdak Farrokhzad
bb7fbb99a2
Add separate 'async_closure' feature gate.
2019-07-03 23:59:36 +02:00
Aleksey Kladov
dc088b26ce
refactor check_for_substitution
...
No behavior change, just flatter and simpler code
2019-07-02 11:16:33 +03:00
Chris Gregory
636f5e6d11
Convert more usages over
2019-07-01 20:21:12 -07:00
Vadim Petrochenkov
d0dc41a2bd
Address review comments
2019-07-01 12:20:54 +03:00
Vadim Petrochenkov
3f39dc1b90
syntax: Unsupport foo! bar { ... } macros in the parser
...
Unreserve `macro_rules` as a macro name
2019-07-01 12:20:54 +03:00
Mazdak Farrokhzad
ce1d95af4c
Always parse 'async unsafe fn' + properly ban in 2015.
2019-06-29 21:38:26 +02:00
Mark Rousskov
da5c835c8b
Remove io::Result from syntax::print
...
Since we're now writing directly to the vector, there's no need to
thread results through the whole printing infrastructure
2019-06-29 09:10:17 -04:00
Mazdak Farrokhzad
0fe028eae0
Rollup merge of #62154 - mark-i-m:old-fixme, r=Centril
...
Remove old fixme
fixed in https://github.com/rust-lang/rust/pull/60160
r? @Centril
2019-06-27 23:01:11 +02:00
Mazdak Farrokhzad
4aa3e27231
Rollup merge of #62131 - Xanewok:clip-some-nits, r=petrochenkov
...
libsyntax: Fix some Clippy warnings
When I was working on it before a lot of these popped up in the RLS so I figured I'll send a small patch fixing only the (hopefully) uncontroversial ones.
Others that could be also fixed included also [`clippy::print_with_newline`](https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline ) and [`clippy::cast_lossless`](https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless ). Should I add them as well?
since most of it touches libsyntax...
r? @petrochenkov
2019-06-27 23:01:09 +02:00
Mazdak Farrokhzad
bc335d6c16
Rollup merge of #62124 - matklad:without-with, r=petrochenkov
...
refactor lexer to use idiomatic borrowing
2019-06-27 23:01:07 +02:00
Mark Mansi
182ce772ef
remove old fixme
2019-06-26 11:21:59 -05:00
Igor Matuszewski
12806b7050
Fix clippy::redundant_field_names
2019-06-26 13:59:58 +02:00