-
-
Notifications
You must be signed in to change notification settings - Fork 15k
Stack overflow? in parser in some code with syntax errors #80447
Copy link
Copy link
Closed
Labels
A-parserArea: The lexing & parsing of Rust source code to an ASTArea: The lexing & parsing of Rust source code to an ASTA-proc-macrosArea: Procedural macrosArea: Procedural macrosC-bugCategory: This is a bug.Category: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.glacierICE tracked in rust-lang/glacier.ICE tracked in rust-lang/glacier.
Metadata
Metadata
Assignees
Labels
A-parserArea: The lexing & parsing of Rust source code to an ASTArea: The lexing & parsing of Rust source code to an ASTA-proc-macrosArea: Procedural macrosArea: Procedural macrosC-bugCategory: This is a bug.Category: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.glacierICE tracked in rust-lang/glacier.ICE tracked in rust-lang/glacier.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Steps to reproduce
I'm afraid I haven't minimised this test case.
This doesn't seem to be a very serious problem as the compiler has correctly pointed out syntax errors; fixing those syntax errors makes the ICE go away. But since it suggested filing a bug I repro'd with today's nightly and have done so.
Meta
rustc --version --verbose:Error output
Backtrace
The panic message in full
Details
thread 'rustc' panicked at 'Stack should be empty: final_buf=FrameData { open: wdriver/../wdriver.rs:156:11: 156:12 (#0), inner: [(Token(Token { kind: BinOp(And), span: wdriver/../wdriver.rs:156:12: 156:13 (#0) }), Alone), (Token(Token { kind: Ident("self", false), span: wdriver/../wdriver.rs:156:13: 156:17 (#0) }), Joint), (Token(Token { kind: Comma, span: wdriver/../wdriver.rs:156:17: 156:18 (#0) }), Alone), (Token(Token { kind: Ident("s", false), span: wdriver/../wdriver.rs:156:19: 156:20 (#0) }), Joint), (Token(Token { kind: Colon, span: wdriver/../wdriver.rs:156:20: 156:21 (#0) }), Alone), (Token(Token { kind: BinOp(And), span: wdriver/../wdriver.rs:156:22: 156:23 (#0) }), Alone), (Token(Token { kind: Ident("dyn", false), span: wdriver/../wdriver.rs:156:23: 156:26 (#0) }), Alone), (Token(Token { kind: Ident("AsRef", false), span: wdriver/../wdriver.rs:156:27: 156:32 (#0) }), Joint), (Token(Token { kind: Lt, span: wdriver/../wdriver.rs:156:32: 156:33 (#0) }), Alone), (Token(Token { kind: Ident("str", false), span: wdriver/../wdriver.rs:156:33: 156:36 (#0) }), Joint), (Token(Token { kind: Gt, span: wdriver/../wdriver.rs:156:36: 156:37 (#0) }), Alone), (Token(Token { kind: RArrow, span: wdriver/../wdriver.rs:156:38: 156:40 (#0) }), Alone), (Token(Token { kind: Ident("String", false), span: wdriver/../wdriver.rs:156:41: 156:47 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:156:48: 156:49 (#0), close: wdriver/../wdriver.rs:178:3: 178:4 (#0) }, Brace, TokenStream([(Token(Token { kind: Pound, span: wdriver/../wdriver.rs:157:5: 157:6 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:157:6: 157:7 (#0), close: wdriver/../wdriver.rs:157:17: 157:18 (#0) }, Bracket, TokenStream([(Token(Token { kind: Ident("throws", false), span: wdriver/../wdriver.rs:157:7: 157:13 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:157:13: 157:14 (#0), close: wdriver/../wdriver.rs:157:16: 157:17 (#0) }, Paren, TokenStream([(Token(Token { kind: Ident("AE", false), span: wdriver/../wdriver.rs:157:14: 157:16 (#0) }), Alone)])), Alone)])), Alone), (Token(Token { kind: Ident("fn", false), span: wdriver/../wdriver.rs:158:5: 158:7 (#0) }), Alone), (Token(Token { kind: Ident("inner", false), span: wdriver/../wdriver.rs:158:8: 158:13 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:158:13: 158:14 (#0), close: wdriver/../wdriver.rs:178:3: 178:4 (#0) }, Paren, TokenStream([(Token(Token { kind: Ident("self_", false), span: wdriver/../wdriver.rs:158:14: 158:19 (#0) }), Joint), (Token(Token { kind: Colon, span: wdriver/../wdriver.rs:158:19: 158:20 (#0) }), Alone), (Token(Token { kind: BinOp(And), span: wdriver/../wdriver.rs:158:21: 158:22 (#0) }), Alone), (Token(Token { kind: Ident("Self", false), span: wdriver/../wdriver.rs:158:22: 158:26 (#0) }), Joint), (Token(Token { kind: Comma, span: wdriver/../wdriver.rs:158:26: 158:27 (#0) }), Alone), (Token(Token { kind: Ident("s", false), span: wdriver/../wdriver.rs:158:28: 158:29 (#0) }), Joint), (Token(Token { kind: Colon, span: wdriver/../wdriver.rs:158:29: 158:30 (#0) }), Alone), (Token(Token { kind: BinOp(And), span: wdriver/../wdriver.rs:158:31: 158:32 (#0) }), Alone), (Token(Token { kind: Ident("dyn", false), span: wdriver/../wdriver.rs:158:32: 158:35 (#0) }), Alone), (Token(Token { kind: Ident("AsRef", false), span: wdriver/../wdriver.rs:158:36: 158:41 (#0) }), Joint), (Token(Token { kind: Lt, span: wdriver/../wdriver.rs:158:41: 158:42 (#0) }), Alone), (Token(Token { kind: Ident("str", false), span: wdriver/../wdriver.rs:158:42: 158:45 (#0) }), Joint), (Token(Token { kind: Gt, span: wdriver/../wdriver.rs:158:45: 158:46 (#0) }), Alone), (Token(Token { kind: RArrow, span: wdriver/../wdriver.rs:158:47: 158:49 (#0) }), Alone), (Token(Token { kind: Ident("String", false), span: wdriver/../wdriver.rs:158:50: 158:56 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:158:57: 158:58 (#0), close: wdriver/../wdriver.rs:176:5: 176:6 (#0) }, Brace, TokenStream([(Token(Token { kind: Ident("let", false), span: wdriver/../wdriver.rs:159:7: 159:10 (#0) }), Alone), (Token(Token { kind: Ident("s", false), span: wdriver/../wdriver.rs:159:11: 159:12 (#0) }), Alone), (Token(Token { kind: Eq, span: wdriver/../wdriver.rs:159:13: 159:14 (#0) }), Alone), (Token(Token { kind: Ident("s", false), span: wdriver/../wdriver.rs:159:15: 159:16 (#0) }), Joint), (Token(Token { kind: Dot, span: wdriver/../wdriver.rs:159:16: 159:17 (#0) }), Alone), (Token(Token { kind: Ident("as_ref", false), span: wdriver/../wdriver.rs:159:17: 159:23 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:159:23: 159:24 (#0), close: wdriver/../wdriver.rs:159:24: 159:25 (#0) }, Paren, TokenStream([])), Alone), (Token(Token { kind: Semi, span: wdriver/../wdriver.rs:159:25: 159:26 (#0) }), Alone), (Token(Token { kind: Ident("let", false), span: wdriver/../wdriver.rs:160:7: 160:10 (#0) }), Alone), (Token(Token { kind: Ident("re", false), span: wdriver/../wdriver.rs:160:11: 160:13 (#0) }), Alone), (Token(Token { kind: Eq, span: wdriver/../wdriver.rs:160:14: 160:15 (#0) }), Alone), (Token(Token { kind: Ident("Regex", false), span: wdriver/../wdriver.rs:160:16: 160:21 (#0) }), Joint), (Token(Token { kind: ModSep, span: wdriver/../wdriver.rs:160:21: 160:23 (#0) }), Alone), (Token(Token { kind: Ident("new", false), span: wdriver/../wdriver.rs:160:23: 160:26 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:160:26: 160:27 (#0), close: wdriver/../wdriver.rs:160:37: 160:38 (#0) }, Paren, TokenStream([(Token(Token { kind: Literal(Lit { kind: StrRaw(0), symbol: "@(\\w+)@", suffix: None }), span: wdriver/../wdriver.rs:160:27: 160:37 (#0) }), Alone)])), Alone), (Token(Token { kind: Dot, span: wdriver/../wdriver.rs:160:38: 160:39 (#0) }), Alone), (Token(Token { kind: Ident("expect", false), span: wdriver/../wdriver.rs:160:39: 160:45 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:160:45: 160:46 (#0), close: wdriver/../wdriver.rs:160:55: 160:56 (#0) }, Paren, TokenStream([(Token(Token { kind: Literal(Lit { kind: Str, symbol: "bad re!", suffix: None }), span: wdriver/../wdriver.rs:160:46: 160:55 (#0) }), Alone)])), Alone), (Token(Token { kind: Semi, span: wdriver/../wdriver.rs:160:56: 160:57 (#0) }), Alone), (Token(Token { kind: Ident("let", false), span: wdriver/../wdriver.rs:161:7: 161:10 (#0) }), Alone), (Token(Token { kind: Ident("mut", false), span: wdriver/../wdriver.rs:161:11: 161:14 (#0) }), Alone), (Token(Token { kind: Ident("errs", false), span: wdriver/../wdriver.rs:161:15: 161:19 (#0) }), Alone), (Token(Token { kind: Eq, span: wdriver/../wdriver.rs:161:20: 161:21 (#0) }), Alone), (Token(Token { kind: Ident("vec", false), span: wdriver/../wdriver.rs:161:22: 161:25 (#0) }), Joint), (Token(Token { kind: Not, span: wdriver/../wdriver.rs:161:25: 161:26 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:161:26: 161:27 (#0), close: wdriver/../wdriver.rs:161:27: 161:28 (#0) }, Bracket, TokenStream([])), Alone), (Token(Token { kind: Semi, span: wdriver/../wdriver.rs:161:28: 161:29 (#0) }), Alone), (Token(Token { kind: Ident("let", false), span: wdriver/../wdriver.rs:162:7: 162:10 (#0) }), Alone), (Token(Token { kind: Ident("out", false), span: wdriver/../wdriver.rs:162:11: 162:14 (#0) }), Alone), (Token(Token { kind: Eq, span: wdriver/../wdriver.rs:162:15: 162:16 (#0) }), Alone), (Token(Token { kind: Ident("re", false), span: wdriver/../wdriver.rs:162:17: 162:19 (#0) }), Joint), (Token(Token { kind: Dot, span: wdriver/../wdriver.rs:162:19: 162:20 (#0) }), Alone), (Token(Token { kind: Ident("replace_all", false), span: wdriver/../wdriver.rs:162:20: 162:31 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:162:31: 162:32 (#0), close: wdriver/../wdriver.rs:170:8: 170:9 (#0) }, Paren, TokenStream([(Token(Token { kind: Ident("s", false), span: wdriver/../wdriver.rs:162:32: 162:33 (#0) }), Joint), (Token(Token { kind: Comma, span: wdriver/../wdriver.rs:162:33: 162:34 (#0) }), Alone), (Token(Token { kind: BinOp(Or), span: wdriver/../wdriver.rs:162:35: 162:36 (#0) }), Alone), (Token(Token { kind: Ident("caps", false), span: wdriver/../wdriver.rs:162:36: 162:40 (#0) }), Joint), (Token(Token { kind: Colon, span: wdriver/../wdriver.rs:162:40: 162:41 (#0) }), Alone), (Token(Token { kind: BinOp(And), span: wdriver/../wdriver.rs:162:42: 162:43 (#0) }), Alone), (Token(Token { kind: Ident("regex", false), span: wdriver/../wdriver.rs:162:43: 162:48 (#0) }), Joint), (Token(Token { kind: ModSep, span: wdriver/../wdriver.rs:162:48: 162:50 (#0) }), Alone), (Token(Token { kind: Ident("Captures", false), span: wdriver/../wdriver.rs:162:50: 162:58 (#0) }), Joint), (Token(Token { kind: BinOp(Or), span: wdriver/../wdriver.rs:162:58: 162:59 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:162:60: 162:61 (#0), close: wdriver/../wdriver.rs:170:7: 170:8 (#0) }, Brace, TokenStream([(Token(Token { kind: Ident("let", false), span: wdriver/../wdriver.rs:163:9: 163:12 (#0) }), Alone), (Token(Token { kind: Ident("kw", false), span: wdriver/../wdriver.rs:163:13: 163:15 (#0) }), Alone), (Token(Token { kind: Eq, span: wdriver/../wdriver.rs:163:16: 163:17 (#0) }), Alone), (Token(Token { kind: Ident("caps", false), span: wdriver/../wdriver.rs:163:18: 163:22 (#0) }), Joint), (Token(Token { kind: Dot, span: wdriver/../wdriver.rs:163:22: 163:23 (#0) }), Alone), (Token(Token { kind: Ident("get", false), span: wdriver/../wdriver.rs:163:23: 163:26 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:163:26: 163:27 (#0), close: wdriver/../wdriver.rs:163:28: 163:29 (#0) }, Paren, TokenStream([(Token(Token { kind: Literal(Lit { kind: Integer, symbol: "1", suffix: None }), span: wdriver/../wdriver.rs:163:27: 163:28 (#0) }), Alone)])), Alone), (Token(Token { kind: Dot, span: wdriver/../wdriver.rs:163:29: 163:30 (#0) }), Alone), (Token(Token { kind: Ident("expect", false), span: wdriver/../wdriver.rs:163:30: 163:36 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:163:36: 163:37 (#0), close: wdriver/../wdriver.rs:163:50: 163:51 (#0) }, Paren, TokenStream([(Token(Token { kind: Literal(Lit { kind: Str, symbol: "$1 missing!", suffix: None }), span: wdriver/../wdriver.rs:163:37: 163:50 (#0) }), Alone)])), Alone), (Token(Token { kind: Dot, span: wdriver/../wdriver.rs:163:51: 163:52 (#0) }), Alone), (Token(Token { kind: Ident("as_str", false), span: wdriver/../wdriver.rs:163:52: 163:58 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:163:58: 163:59 (#0), close: wdriver/../wdriver.rs:163:59: 163:60 (#0) }, Paren, TokenStream([])), Alone), (Token(Token { kind: Semi, span: wdriver/../wdriver.rs:163:60: 163:61 (#0) }), Alone), (Token(Token { kind: Ident("if", false), span: wdriver/../wdriver.rs:164:9: 164:11 (#0) }), Alone), (Token(Token { kind: Ident("kw", false), span: wdriver/../wdriver.rs:164:12: 164:14 (#0) }), Alone), (Token(Token { kind: EqEq, span: wdriver/../wdriver.rs:164:15: 164:17 (#0) }), Alone), (Token(Token { kind: Literal(Lit { kind: Str, symbol: "", suffix: None }), span: wdriver/../wdriver.rs:164:18: 164:20 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:164:21: 164:22 (#0), close: wdriver/../wdriver.rs:164:44: 164:45 (#0) }, Brace, TokenStream([(Token(Token { kind: Ident("return", false), span: wdriver/../wdriver.rs:164:23: 164:29 (#0) }), Alone), (Token(Token { kind: Literal(Lit { kind: Str, symbol: "", suffix: None }), span: wdriver/../wdriver.rs:164:30: 164:32 (#0) }), Joint), (Token(Token { kind: Dot, span: wdriver/../wdriver.rs:164:32: 164:33 (#0) }), Alone), (Token(Token { kind: Ident("to_owned", false), span: wdriver/../wdriver.rs:164:33: 164:41 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:164:41: 164:42 (#0), close: wdriver/../wdriver.rs:164:42: 164:43 (#0) }, Paren, TokenStream([])), Alone)])), Alone), (Token(Token { kind: Ident("let", false), span: wdriver/../wdriver.rs:165:9: 165:12 (#0) }), Alone), (Token(Token { kind: Ident("v", false), span: wdriver/../wdriver.rs:165:13: 165:14 (#0) }), Alone), (Token(Token { kind: Eq, span: wdriver/../wdriver.rs:165:15: 165:16 (#0) }), Alone), (Token(Token { kind: Ident("self", false), span: wdriver/../wdriver.rs:165:17: 165:21 (#0) }), Joint), (Token(Token { kind: Dot, span: wdriver/../wdriver.rs:165:21: 165:22 (#0) }), Alone), (Token(Token { kind: Ident("get", false), span: wdriver/../wdriver.rs:165:22: 165:25 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:165:25: 165:26 (#0), close: wdriver/../wdriver.rs:165:28: 165:29 (#0) }, Paren, TokenStream([(Token(Token { kind: Ident("kw", false), span: wdriver/../wdriver.rs:165:26: 165:28 (#0) }), Alone)])), Alone), (Token(Token { kind: Semi, span: wdriver/../wdriver.rs:165:29: 165:30 (#0) }), Alone), (Token(Token { kind: Ident("v", false), span: wdriver/../wdriver.rs:166:9: 166:10 (#0) }), Joint), (Token(Token { kind: Dot, span: wdriver/../wdriver.rs:166:10: 166:11 (#0) }), Alone), (Token(Token { kind: Ident("unwrap_or_else", false), span: wdriver/../wdriver.rs:166:11: 166:25 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:166:25: 166:26 (#0), close: wdriver/../wdriver.rs:169:10: 169:11 (#0) }, Paren, TokenStream([(Token(Token { kind: OrOr, span: wdriver/../wdriver.rs:166:26: 166:28 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:166:28: 166:29 (#0), close: wdriver/../wdriver.rs:169:9: 169:10 (#0) }, Brace, TokenStream([(Token(Token { kind: Ident("errs", false), span: wdriver/../wdriver.rs:167:11: 167:15 (#0) }), Joint), (Token(Token { kind: Dot, span: wdriver/../wdriver.rs:167:15: 167:16 (#0) }), Alone), (Token(Token { kind: Ident("push", false), span: wdriver/../wdriver.rs:167:16: 167:20 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:167:20: 167:21 (#0), close: wdriver/../wdriver.rs:167:34: 167:35 (#0) }, Paren, TokenStream([(Token(Token { kind: Ident("kw", false), span: wdriver/../wdriver.rs:167:21: 167:23 (#0) }), Joint), (Token(Token { kind: Dot, span: wdriver/../wdriver.rs:167:23: 167:24 (#0) }), Alone), (Token(Token { kind: Ident("to_owned", false), span: wdriver/../wdriver.rs:167:24: 167:32 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:167:32: 167:33 (#0), close: wdriver/../wdriver.rs:167:33: 167:34 (#0) }, Paren, TokenStream([])), Alone)])), Alone), (Token(Token { kind: Semi, span: wdriver/../wdriver.rs:167:35: 167:36 (#0) }), Alone), (Token(Token { kind: Literal(Lit { kind: Str, symbol: "", suffix: None }), span: wdriver/../wdriver.rs:168:11: 168:13 (#0) }), Joint), (Token(Token { kind: Dot, span: wdriver/../wdriver.rs:168:13: 168:14 (#0) }), Alone), (Token(Token { kind: Ident("to_owned", false), span: wdriver/../wdriver.rs:168:14: 168:22 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:168:22: 168:23 (#0), close: wdriver/../wdriver.rs:168:23: 168:24 (#0) }, Paren, TokenStream([])), Alone)])), Alone)])), Alone)])), Alone)])), Alone), (Token(Token { kind: Semi, span: wdriver/../wdriver.rs:170:9: 170:10 (#0) }), Alone), (Token(Token { kind: Ident("if", false), span: wdriver/../wdriver.rs:171:7: 171:9 (#0) }), Alone), (Token(Token { kind: Not, span: wdriver/../wdriver.rs:171:10: 171:11 (#0) }), Alone), (Token(Token { kind: Ident("errs", false), span: wdriver/../wdriver.rs:171:12: 171:16 (#0) }), Joint), (Token(Token { kind: Dot, span: wdriver/../wdriver.rs:171:16: 171:17 (#0) }), Alone), (Token(Token { kind: Ident("is_empty", false), span: wdriver/../wdriver.rs:171:17: 171:25 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:171:25: 171:26 (#0), close: wdriver/../wdriver.rs:171:26: 171:27 (#0) }, Paren, TokenStream([])), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:171:28: 171:29 (#0), close: wdriver/../wdriver.rs:174:7: 174:8 (#0) }, Brace, TokenStream([(Token(Token { kind: Ident("throw", false), span: wdriver/../wdriver.rs:172:9: 172:14 (#0) }), Joint), (Token(Token { kind: Not, span: wdriver/../wdriver.rs:172:14: 172:15 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:172:15: 172:16 (#0), close: wdriver/../wdriver.rs:173:33: 173:34 (#0) }, Paren, TokenStream([(Token(Token { kind: Ident("anyhow", false), span: wdriver/../wdriver.rs:172:16: 172:22 (#0) }), Joint), (Token(Token { kind: Not, span: wdriver/../wdriver.rs:172:22: 172:23 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:172:23: 172:24 (#0), close: wdriver/../wdriver.rs:173:32: 173:33 (#0) }, Paren, TokenStream([(Token(Token { kind: Literal(Lit { kind: Str, symbol: "bad substitution(s) {:?} in {:?}", suffix: None }), span: wdriver/../wdriver.rs:172:24: 172:58 (#0) }), Joint), (Token(Token { kind: Comma, span: wdriver/../wdriver.rs:172:58: 172:59 (#0) }), Alone), (Token(Token { kind: BinOp(And), span: wdriver/../wdriver.rs:173:24: 173:25 (#0) }), Alone), (Token(Token { kind: Ident("errs", false), span: wdriver/../wdriver.rs:173:25: 173:29 (#0) }), Joint), (Token(Token { kind: Comma, span: wdriver/../wdriver.rs:173:29: 173:30 (#0) }), Alone), (Token(Token { kind: Ident("s", false), span: wdriver/../wdriver.rs:173:31: 173:32 (#0) }), Alone)])), Alone)])), Alone), (Token(Token { kind: Semi, span: wdriver/../wdriver.rs:173:34: 173:35 (#0) }), Alone)])), Alone), (Token(Token { kind: Ident("out", false), span: wdriver/../wdriver.rs:175:7: 175:10 (#0) }), Joint), (Token(Token { kind: Dot, span: wdriver/../wdriver.rs:175:10: 175:11 (#0) }), Alone), (Token(Token { kind: Ident("into", false), span: wdriver/../wdriver.rs:175:11: 175:15 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:175:15: 175:16 (#0), close: wdriver/../wdriver.rs:175:16: 175:17 (#0) }, Paren, TokenStream([])), Alone)])), Alone), (Token(Token { kind: Ident("inner", false), span: wdriver/../wdriver.rs:177:5: 177:10 (#0) }), Alone), (Delimited(DelimSpan { open: wdriver/../wdriver.rs:177:10: 177:11 (#0), close: wdriver/../wdriver.rs:177:18: 177:19 (#0) }, Paren, TokenStream([(Token(Token { kind: Ident("self", false), span: wdriver/../wdriver.rs:177:11: 177:15 (#0) }), Joint), (Token(Token { kind: Comma, span: wdriver/../wdriver.rs:177:15: 177:16 (#0) }), Alone), (Token(Token { kind: Ident("s", false), span: wdriver/../wdriver.rs:177:17: 177:18 (#0) }), Alone)])), Alone), (Token(Token { kind: Question, span: wdriver/../wdriver.rs:177:19: 177:20 (#0) }), Alone)])), Alone)])), Alone)] } stack=[FrameData { open: wdriver/../wdriver.rs:1:1: 1:1 (#0), inner: [(Token(Token { kind: Ident("fn", false), span: wdriver/../wdriver.rs:156:3: 156:5 (#0) }), Alone), (Token(Token { kind: Ident("subst", false), span: wdriver/../wdriver.rs:156:6: 156:11 (#0) }), Alone)] }]', compiler/rustc_parse/src/parser/mod.rs:1409:5