From 5325b6d1711c1c9c6787cb6239b472b5f8b5daaf Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Sun, 10 Dec 2023 18:28:39 -0800 Subject: [PATCH] Add test of let expr surrounded in None-delimited group Currently fails with: ---- test_none_group stdout ---- thread 'test_none_group' panicked at tests/test_stmt.rs:87:52: called `Result::unwrap()` on an `Err` value: Error("expected `;`") --- tests/test_stmt.rs | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/tests/test_stmt.rs b/tests/test_stmt.rs index 6223a6dfaa..0edb8caad9 100644 --- a/tests/test_stmt.rs +++ b/tests/test_stmt.rs @@ -8,7 +8,7 @@ mod macros; use proc_macro2::{Delimiter, Group, Ident, Span, TokenStream, TokenTree}; -use quote::quote; +use quote::{quote, ToTokens as _}; use syn::parse::Parser as _; use syn::{Block, Stmt}; @@ -68,7 +68,6 @@ fn test_none_group() { TokenTree::Group(Group::new(Delimiter::Brace, TokenStream::new())), ]), ))]); - snapshot!(tokens as Stmt, @r###" Stmt::Item(Item::Fn { vis: Visibility::Inherited, @@ -83,6 +82,33 @@ fn test_none_group() { }, }) "###); + + let tokens = Group::new(Delimiter::None, quote!(let None = None)).to_token_stream(); + let stmts = Block::parse_within.parse2(tokens).unwrap(); + // FIXME + snapshot!(stmts, @r###" + [ + Stmt::Expr( + Expr::Group { + expr: Expr::Let { + pat: Pat::Ident { + ident: "None", + }, + expr: Expr::Path { + path: Path { + segments: [ + PathSegment { + ident: "None", + }, + ], + }, + }, + }, + }, + None, + ), + ] + "###); } #[test]