Skip to content

Rollup of 10 pull requests #53433

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 32 commits into from
Aug 16, 2018
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
d4b7c63
Documented impl From on line 367 of libserialize/json.rs
Ajacmac Aug 1, 2018
b70be5b
Adddressed #51602
PramodBisht Aug 14, 2018
352b2e7
Corrected typing description in doc
Ajacmac Aug 15, 2018
d305f68
Warn when `generic_associated_types` feature gate is enabled
varkor Aug 15, 2018
bc8cead
Account for warning in existing GAT tests
varkor Aug 15, 2018
e0d8364
std: Use target_pointer_width for BACKTRACE_ELF_SIZE
cuviper Aug 15, 2018
4cae665
Two small improvements
llogiq Aug 13, 2018
bbf0b15
Make core::sync::atomic::Ordering #[non_exhaustive]
varkor Aug 15, 2018
a502248
Make proc_macro Level #[non_exhaustive]
varkor Aug 15, 2018
ea505fd
Make std::io::Error #[non_exhaustive]
varkor Aug 15, 2018
f541ab2
Make cloudapi enums #[non_exhaustive]
varkor Aug 15, 2018
27f2a84
Remove outdated Unstable Book sections
varkor Aug 15, 2018
35a03c8
Tidy: ignore non-Markdown files when linting for the Unstable Book
varkor Aug 15, 2018
2a74d79
Tweak unclosed delimiter parser error
estebank Aug 15, 2018
1b5e29a
Do not emit "incorrect close delimiter" twice in the same place
estebank Aug 15, 2018
83268ff
syntax_ext: remove leftover span_err_if_not_stage0 macro.
eddyb Aug 15, 2018
494889e
Revert "Ignore test that fails on stage1"
eddyb Aug 15, 2018
c9274c7
fix broken test
estebank Aug 16, 2018
42efd27
Revert "Auto merge of #53134 - alexcrichton:tweak-travis, r=Mark-Simu…
kennytm Aug 9, 2018
53837db
Revert "Auto merge of #53035 - alexcrichton:debug-travis, r=kennytm"
kennytm Aug 9, 2018
b75f1ba
Revert "Use public DNS server instead of 169.254.169.254 on CI."
kennytm Aug 16, 2018
e7b65bd
enable more tests on stage1 again
RalfJung Aug 16, 2018
07ce2a3
Rollup merge of #52946 - Ajacmac:doc-impl-from, r=GuillaumeGomez
kennytm Aug 16, 2018
e606882
Rollup merge of #53313 - llogiq:two-small-improvements, r=estebank
kennytm Aug 16, 2018
1cda84b
Rollup merge of #53360 - PramodBisht:issue/51602, r=estebank
kennytm Aug 16, 2018
4968eea
Rollup merge of #53364 - varkor:gat-warn-broken, r=pnkfelix
kennytm Aug 16, 2018
098d80d
Rollup merge of #53373 - estebank:unclosed, r=petrochenkov
kennytm Aug 16, 2018
0c9e0e3
Rollup merge of #53377 - cuviper:pointer-elf_size, r=alexcrichton
kennytm Aug 16, 2018
6e98ed9
Rollup merge of #53395 - varkor:__Nonexhaustive-to-non_exhaustive, r=…
kennytm Aug 16, 2018
ae3ebf0
Rollup merge of #53399 - varkor:ignore-non-md-unstable_book, r=nikoma…
kennytm Aug 16, 2018
1cb13b2
Rollup merge of #53412 - eddyb:stage-who, r=alexcrichton
kennytm Aug 16, 2018
a68e61a
Rollup merge of #53234 - kennytm:debug-9696, r=alexcrichton
kennytm Aug 16, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/libsyntax/parse/lexer/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ pub struct StringReader<'a> {
span_src_raw: Span,
open_braces: Vec<(token::DelimToken, Span)>,
crate override_span: Option<Span>,
last_unclosed_found_span: Option<Span>,
}

impl<'a> StringReader<'a> {
Expand Down Expand Up @@ -216,6 +217,7 @@ impl<'a> StringReader<'a> {
span_src_raw: syntax_pos::DUMMY_SP,
open_braces: Vec::new(),
override_span,
last_unclosed_found_span: None,
}
}

Expand Down
30 changes: 19 additions & 11 deletions src/libsyntax/parse/lexer/tokentrees.rs
Original file line number Diff line number Diff line change
Expand Up @@ -81,16 +81,23 @@ impl<'a> StringReader<'a> {
// Incorrect delimiter.
token::CloseDelim(other) => {
let token_str = token_to_string(&self.token);
let msg = format!("incorrect close delimiter: `{}`", token_str);
let mut err = self.sess.span_diagnostic.struct_span_err(self.span, &msg);
// This is a conservative error: only report the last unclosed delimiter.
// The previous unclosed delimiters could actually be closed! The parser
// just hasn't gotten to them yet.
if let Some(&(_, sp)) = self.open_braces.last() {
err.span_note(sp, "unclosed delimiter");
};
err.emit();

if self.last_unclosed_found_span != Some(self.span) {
// do not complain about the same unclosed delimiter multiple times
self.last_unclosed_found_span = Some(self.span);
let msg = format!("incorrect close delimiter: `{}`", token_str);
let mut err = self.sess.span_diagnostic.struct_span_err(
self.span,
&msg,
);
err.span_label(self.span, "incorrect close delimiter");
// This is a conservative error: only report the last unclosed
// delimiter. The previous unclosed delimiters could actually be
// closed! The parser just hasn't gotten to them yet.
if let Some(&(_, sp)) = self.open_braces.last() {
err.span_label(sp, "unclosed delimiter");
};
err.emit();
}
self.open_braces.pop().unwrap();

// If the incorrect delimiter matches an earlier opening
Expand Down Expand Up @@ -122,7 +129,8 @@ impl<'a> StringReader<'a> {
// matching opening delimiter).
let token_str = token_to_string(&self.token);
let msg = format!("unexpected close delimiter: `{}`", token_str);
let err = self.sess.span_diagnostic.struct_span_err(self.span, &msg);
let mut err = self.sess.span_diagnostic.struct_span_err(self.span, &msg);
err.span_label(self.span, "unexpected close delimiter");
Err(err)
},
_ => {
Expand Down
2 changes: 1 addition & 1 deletion src/test/ui-fulldeps/invalid-punct-ident-4.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ error: unexpected close delimiter: `)`
--> $DIR/invalid-punct-ident-4.rs:16:1
|
LL | lexer_failure!(); //~ ERROR proc macro panicked
| ^^^^^^^^^^^^^^^^^
| ^^^^^^^^^^^^^^^^^ unexpected close delimiter

error: proc macro panicked
--> $DIR/invalid-punct-ident-4.rs:16:1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,8 @@

struct Obj { //~ NOTE: unclosed delimiter
member: usize
) //~ ERROR: incorrect close delimiter
)
//~^ ERROR incorrect close delimiter
//~| NOTE incorrect close delimiter

fn main() {}
11 changes: 11 additions & 0 deletions src/test/ui/issue-10636-1.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
error: incorrect close delimiter: `)`
--> $DIR/issue-10636-1.rs:15:1
|
LL | struct Obj { //~ NOTE: unclosed delimiter
| - unclosed delimiter
LL | member: usize
LL | )
| ^ incorrect close delimiter

error: aborting due to previous error

11 changes: 4 additions & 7 deletions src/test/ui/parser-recovery-2.stderr
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
error: incorrect close delimiter: `)`
--> $DIR/parser-recovery-2.rs:18:5
|
LL | ) //~ ERROR incorrect close delimiter: `)`
| ^
|
note: unclosed delimiter
--> $DIR/parser-recovery-2.rs:16:14
|
LL | fn bar() {
| ^
| - unclosed delimiter
LL | let x = foo(); //~ ERROR cannot find function `foo` in this scope
LL | ) //~ ERROR incorrect close delimiter: `)`
| ^ incorrect close delimiter

error: unexpected token: `;`
--> $DIR/parser-recovery-2.rs:22:15
Expand Down
11 changes: 4 additions & 7 deletions src/test/ui/resolve/token-error-correct-2.stderr
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
error: incorrect close delimiter: `)`
--> $DIR/token-error-correct-2.rs:16:5
|
LL | ) //~ ERROR: incorrect close delimiter: `)`
| ^
|
note: unclosed delimiter
--> $DIR/token-error-correct-2.rs:14:12
|
LL | if foo {
| ^
| - unclosed delimiter
LL | //~^ ERROR: cannot find value `foo`
LL | ) //~ ERROR: incorrect close delimiter: `)`
| ^ incorrect close delimiter

error[E0425]: cannot find value `foo` in this scope
--> $DIR/token-error-correct-2.rs:14:8
Expand Down
11 changes: 4 additions & 7 deletions src/test/ui/resolve/token-error-correct-3.stderr
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
error: incorrect close delimiter: `}`
--> $DIR/token-error-correct-3.rs:30:9
|
LL | } else { //~ ERROR: incorrect close delimiter: `}`
| ^
|
note: unclosed delimiter
--> $DIR/token-error-correct-3.rs:24:21
|
LL | callback(path.as_ref(); //~ ERROR expected one of
| ^
| - unclosed delimiter
...
LL | } else { //~ ERROR: incorrect close delimiter: `}`
| ^ incorrect close delimiter

error: expected one of `)`, `,`, `.`, `?`, or an operator, found `;`
--> $DIR/token-error-correct-3.rs:24:35
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/resolve/token-error-correct.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,3 @@ fn main() {
//~^ ERROR: expected expression, found `;`
}
//~^ ERROR: incorrect close delimiter: `}`
//~| ERROR: incorrect close delimiter: `}`
23 changes: 4 additions & 19 deletions src/test/ui/resolve/token-error-correct.stderr
Original file line number Diff line number Diff line change
@@ -1,32 +1,17 @@
error: incorrect close delimiter: `}`
--> $DIR/token-error-correct.rs:16:1
|
LL | }
| ^
|
note: unclosed delimiter
--> $DIR/token-error-correct.rs:14:12
|
LL | foo(bar(;
| ^

error: incorrect close delimiter: `}`
--> $DIR/token-error-correct.rs:16:1
|
| - unclosed delimiter
LL | //~^ ERROR: expected expression, found `;`
LL | }
| ^
|
note: unclosed delimiter
--> $DIR/token-error-correct.rs:14:8
|
LL | foo(bar(;
| ^
| ^ incorrect close delimiter

error: expected expression, found `;`
--> $DIR/token-error-correct.rs:14:13
|
LL | foo(bar(;
| ^ expected expression

error: aborting due to 3 previous errors
error: aborting due to 2 previous errors

11 changes: 4 additions & 7 deletions src/test/ui/token/issue-10636-2.stderr
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
error: incorrect close delimiter: `}`
--> $DIR/issue-10636-2.rs:18:1
|
LL | } //~ ERROR: incorrect close delimiter
| ^
|
note: unclosed delimiter
--> $DIR/issue-10636-2.rs:15:15
|
LL | option.map(|some| 42;
| ^
| - unclosed delimiter
...
LL | } //~ ERROR: incorrect close delimiter
| ^ incorrect close delimiter

error: expected one of `)`, `,`, `.`, `?`, or an operator, found `;`
--> $DIR/issue-10636-2.rs:15:25
Expand Down