summaryrefslogtreecommitdiffstats
path: root/tests/ui/proc-macro/span-absolute-posititions.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/proc-macro/span-absolute-posititions.rs')
-rw-r--r--tests/ui/proc-macro/span-absolute-posititions.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/ui/proc-macro/span-absolute-posititions.rs b/tests/ui/proc-macro/span-absolute-posititions.rs
new file mode 100644
index 000000000..6d70fe611
--- /dev/null
+++ b/tests/ui/proc-macro/span-absolute-posititions.rs
@@ -0,0 +1,24 @@
+// aux-build:assert-span-pos.rs
+// ignore-tidy-tab
+extern crate assert_span_pos;
+
+assert_span_pos::assert_span_pos!(5, 35);
+
+// Test space indentation
+ assert_span_pos::assert_span_pos!(8, 39);
+// Test tab indentation
+ assert_span_pos::assert_span_pos!(10, 36);
+
+// Two tests to ensure the promise of the docs that the column is the number
+// of UTF-8 bytes instead of some other number like number of code points.
+
+// Test that multi byte UTF-8 characters indeed count as multiple bytes
+/*🌈*/assert_span_pos::assert_span_pos!(16, 40);
+// Test with a complete grapheme cluster
+/*🏳️‍🌈*/assert_span_pos::assert_span_pos!(18, 43);
+
+// Test that the macro actually emits an error on a mismatch:
+assert_span_pos::assert_span_pos!(0, 35); //~ ERROR line/column mismatch: (0, 35) != (21, 35)
+assert_span_pos::assert_span_pos!(22, 0); //~ ERROR line/column mismatch: (22, 0) != (22, 35)
+
+fn main() {}