Skip to content

Commit

Permalink
Merge pull request #1626 from dtolnay/peektest
Browse files Browse the repository at this point in the history
Add tests of peeking None-delimited group with AnyDelimiter
  • Loading branch information
dtolnay committed Apr 17, 2024
2 parents 7029b22 + 5bc106d commit 6a28926
Showing 1 changed file with 22 additions and 10 deletions.
32 changes: 22 additions & 10 deletions tests/test_parse_stream.rs
Expand Up @@ -3,6 +3,7 @@
use proc_macro2::{Delimiter, Group, Punct, Spacing, Span, TokenStream, TokenTree};
use quote::quote;
use syn::ext::IdentExt as _;
use syn::parse::discouraged::AnyDelimiter;
use syn::parse::{ParseStream, Parser as _, Result};
use syn::{parenthesized, token, Ident, Lifetime, Token};

Expand Down Expand Up @@ -158,16 +159,27 @@ fn test_peek_groups() {
assert!(input.peek3(Token![static]));
assert!(!input.peek2(Token![static]));

let _: Token![!] = input.parse()?;

assert!(input.peek(Token![=]));
assert!(input.peek2(Token![static]));

let _: Token![=] = input.parse()?;

assert!(input.peek(Token![static]));

let _: Token![static] = input.parse()?;
let implicit = input.fork();
let explicit = input.fork();

let _: Token![!] = implicit.parse()?;
assert!(implicit.peek(Token![=]));
assert!(implicit.peek2(Token![static]));
let _: Token![=] = implicit.parse()?;
assert!(implicit.peek(Token![static]));

let (delimiter, _span, grouped) = explicit.parse_any_delimiter()?;
assert_eq!(delimiter, Delimiter::None);
assert!(grouped.peek(Token![!]));
assert!(grouped.peek2(Token![=]));
assert!(!grouped.peek3(Token![static]));
let _: Token![!] = grouped.parse()?;
assert!(grouped.peek(Token![=]));
assert!(!grouped.peek2(Token![static]));
let _: Token![=] = grouped.parse()?;
assert!(!grouped.peek(Token![static]));

let _: TokenStream = input.parse()?;
Ok(())
}

Expand Down

0 comments on commit 6a28926

Please sign in to comment.