Skip to content

Commit 09ecc7e

Browse files
committed
remove eq_unspanned from TokenStream
1 parent 6b5b97a commit 09ecc7e

File tree

3 files changed

+12
-10
lines changed

3 files changed

+12
-10
lines changed

compiler/rustc_ast/src/tokenstream.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,9 @@ impl TokenTree {
5757
match (self, other) {
5858
(TokenTree::Token(token, _), TokenTree::Token(token2, _)) => token.kind == token2.kind,
5959
(TokenTree::Delimited(.., delim, tts), TokenTree::Delimited(.., delim2, tts2)) => {
60-
delim == delim2 && tts.eq_unspanned(tts2)
60+
delim == delim2
61+
&& tts.len() == tts2.len()
62+
&& tts.iter().zip(tts2.iter()).all(|(a, b)| a.eq_unspanned(b))
6163
}
6264
_ => false,
6365
}
@@ -694,12 +696,6 @@ impl TokenStream {
694696
TokenStreamIter::new(self)
695697
}
696698

697-
/// Compares two `TokenStream`s, checking equality without regarding span information.
698-
pub fn eq_unspanned(&self, other: &TokenStream) -> bool {
699-
self.len() == other.len()
700-
&& self.iter().zip(other.iter()).all(|(tt1, tt2)| tt1.eq_unspanned(tt2))
701-
}
702-
703699
/// Create a token stream containing a single token with alone spacing. The
704700
/// spacing used for the final token in a constructed stream doesn't matter
705701
/// because it's never used. In practice we arbitrarily use

compiler/rustc_parse/src/parser/tokenstream/tests.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#![allow(rustc::symbol_intern_string_literal)]
22

3+
use std::cmp;
4+
35
use rustc_ast::token::{self, IdentIsRaw};
46
use rustc_ast::tokenstream::{TokenStream, TokenTree};
57
use rustc_span::{BytePos, Span, Symbol, create_default_session_globals_then};
@@ -14,6 +16,10 @@ fn sp(a: u32, b: u32) -> Span {
1416
Span::with_root_ctxt(BytePos(a), BytePos(b))
1517
}
1618

19+
fn cmp_token_steam(a: &TokenStream, b: &TokenStream) -> bool {
20+
a.len() == b.len() && a.iter().zip(b.iter()).all(|(x, y)| x.eq_unspanned(y))
21+
}
22+
1723
#[test]
1824
fn test_concat() {
1925
create_default_session_globals_then(|| {
@@ -25,7 +31,7 @@ fn test_concat() {
2531
eq_res.push_stream(test_snd);
2632
assert_eq!(test_res.iter().count(), 5);
2733
assert_eq!(eq_res.iter().count(), 5);
28-
assert_eq!(test_res.eq_unspanned(&eq_res), true);
34+
assert_eq!(cmp_token_steam(&test_res, &eq_res), true);
2935
})
3036
}
3137

@@ -104,7 +110,7 @@ fn test_dotdotdot() {
104110
stream.push_tree(TokenTree::token_joint(token::Dot, sp(0, 1)));
105111
stream.push_tree(TokenTree::token_joint(token::Dot, sp(1, 2)));
106112
stream.push_tree(TokenTree::token_alone(token::Dot, sp(2, 3)));
107-
assert!(stream.eq_unspanned(&string_to_ts("...")));
113+
assert!(cmp_token_steam(&stream, &string_to_ts("...")));
108114
assert_eq!(stream.iter().count(), 1);
109115
})
110116
}

src/tools/clippy/clippy_utils/src/ast_utils/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -960,5 +960,5 @@ pub fn eq_attr_args(l: &AttrArgs, r: &AttrArgs) -> bool {
960960
}
961961

962962
pub fn eq_delim_args(l: &DelimArgs, r: &DelimArgs) -> bool {
963-
l.delim == r.delim && l.tokens.eq_unspanned(&r.tokens)
963+
l.delim == r.delim && l.len() == r.len() && l.iter().zip(r.iter()).all(|(a, b)| a.eq_unspanned(b))
964964
}

0 commit comments

Comments
 (0)