| 328 | |
| 329 | #[test] |
| 330 | fn test_lexer_iterator_clone() { |
| 331 | let source = "foo bar baz"; |
| 332 | let mut lexer = Lexer::new(&EmptyAtomSet::ATOMS, source); |
| 333 | |
| 334 | let first = lexer.next(); |
| 335 | assert!(first.is_some()); |
| 336 | assert_eq!(first.unwrap(), Kind::Ident); |
| 337 | |
| 338 | let lexer_clone = lexer.clone(); |
| 339 | |
| 340 | let cursors1: Vec<_> = lexer.collect(); |
| 341 | let cursors2: Vec<_> = lexer_clone.collect(); |
| 342 | |
| 343 | assert_eq!(cursors1.len(), cursors2.len()); |
| 344 | for (c1, c2) in cursors1.iter().zip(cursors2.iter()) { |
| 345 | assert_eq!(c1.token().kind(), c2.token().kind()); |
| 346 | assert_eq!(c1.offset(), c2.offset()); |
| 347 | } |
| 348 | } |
| 349 | } |