Commit graph

3901 commits

Author SHA1 Message Date
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