]> git.proxmox.com Git - rustc.git/blobdiff - vendor/const_fn/src/iter.rs
Merge tag 'debian/1.52.1+dfsg1-1_exp2' into proxmox/buster
[rustc.git] / vendor / const_fn / src / iter.rs
diff --git a/vendor/const_fn/src/iter.rs b/vendor/const_fn/src/iter.rs
deleted file mode 100644 (file)
index f998dce..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// Based on https://github.com/dtolnay/proc-macro-hack/blob/0.5.18/src/iter.rs
-
-use proc_macro::{token_stream, Delimiter, TokenStream, TokenTree};
-
-pub(crate) struct TokenIter {
-    stack: Vec<token_stream::IntoIter>,
-    peeked: Option<TokenTree>,
-}
-
-impl TokenIter {
-    pub(crate) fn new(tokens: TokenStream) -> Self {
-        Self { stack: vec![tokens.into_iter()], peeked: None }
-    }
-
-    pub(crate) fn peek(&mut self) -> Option<&TokenTree> {
-        self.peeked = self.next();
-        self.peeked.as_ref()
-    }
-}
-
-impl Iterator for TokenIter {
-    type Item = TokenTree;
-
-    fn next(&mut self) -> Option<Self::Item> {
-        if let Some(tt) = self.peeked.take() {
-            return Some(tt);
-        }
-        loop {
-            let top = self.stack.last_mut()?;
-            match top.next() {
-                None => drop(self.stack.pop()),
-                Some(TokenTree::Group(ref group)) if group.delimiter() == Delimiter::None => {
-                    self.stack.push(group.stream().into_iter());
-                }
-                Some(tt) => return Some(tt),
-            }
-        }
-    }
-}