@@ -48,10 +48,11 @@ fn expand(input: TokenStream, contains_paste: &mut bool) -> Result<TokenStream>
48
48
let ( mut prev_colon, mut colon) = ( false , false ) ;
49
49
let mut prev_none_group = None :: < Group > ;
50
50
let mut tokens = input. into_iter ( ) . peekable ( ) ;
51
- while let Some ( token) = tokens. next ( ) {
51
+ loop {
52
+ let token = tokens. next ( ) ;
52
53
if let Some ( group) = prev_none_group. take ( ) {
53
54
if match ( & token, tokens. peek ( ) ) {
54
- ( TokenTree :: Punct ( fst) , Some ( TokenTree :: Punct ( snd) ) ) => {
55
+ ( Some ( TokenTree :: Punct ( fst) ) , Some ( TokenTree :: Punct ( snd) ) ) => {
55
56
fst. as_char ( ) == ':' && snd. as_char ( ) == ':' && fst. spacing ( ) == Spacing :: Joint
56
57
}
57
58
_ => false ,
@@ -63,7 +64,7 @@ fn expand(input: TokenStream, contains_paste: &mut bool) -> Result<TokenStream>
63
64
}
64
65
}
65
66
match token {
66
- TokenTree :: Group ( group) => {
67
+ Some ( TokenTree :: Group ( group) ) => {
67
68
let delimiter = group. delimiter ( ) ;
68
69
let content = group. stream ( ) ;
69
70
let span = group. span ( ) ;
@@ -98,7 +99,7 @@ fn expand(input: TokenStream, contains_paste: &mut bool) -> Result<TokenStream>
98
99
prev_colon = false ;
99
100
colon = false ;
100
101
}
101
- other => {
102
+ Some ( other) => {
102
103
match & other {
103
104
TokenTree :: Punct ( punct) if punct. as_char ( ) == ':' => {
104
105
prev_colon = colon;
@@ -111,9 +112,9 @@ fn expand(input: TokenStream, contains_paste: &mut bool) -> Result<TokenStream>
111
112
}
112
113
expanded. extend ( iter:: once ( other) ) ;
113
114
}
115
+ None => return Ok ( expanded) ,
114
116
}
115
117
}
116
- Ok ( expanded)
117
118
}
118
119
119
120
// https://github.com/dtolnay/paste/issues/26
0 commit comments