Add some tests for the join method
diff --git a/tests/test.rs b/tests/test.rs
index 06c8116..248ead2 100644
--- a/tests/test.rs
+++ b/tests/test.rs
@@ -127,3 +127,27 @@
assert!(!source_file.is_real());
}
+#[test]
+fn span_join() {
+ let source1 =
+ "aaa\nbbb".parse::<TokenStream>().unwrap().into_iter().collect::<Vec<_>>();
+ let source2 =
+ "ccc\nddd".parse::<TokenStream>().unwrap().into_iter().collect::<Vec<_>>();
+
+ assert!(source1[0].span.source_file() != source2[0].span.source_file());
+ assert_eq!(source1[0].span.source_file(), source1[1].span.source_file());
+
+ let joined1 = source1[0].span.join(source1[1].span);
+ let joined2 = source1[0].span.join(source2[0].span);
+ assert!(joined1.is_some());
+ assert!(joined2.is_none());
+
+ let start = joined1.unwrap().start();
+ let end = joined1.unwrap().end();
+ assert_eq!(start.line, 1);
+ assert_eq!(start.column, 0);
+ assert_eq!(end.line, 2);
+ assert_eq!(end.column, 3);
+
+ assert_eq!(joined1.unwrap().source_file(), source1[0].span.source_file());
+}