   LL|       |//@ edition: 2021
   LL|       |//@ ignore-windows - we can't force `llvm-cov` to use ANSI escapes on Windows
   LL|       |//@ llvm-cov-flags: --use-color
   LL|       |
   LL|       |// Check that column numbers are denoted in bytes, so that they don't cause
   LL|       |// `llvm-cov` to fail or emit malformed output.
   LL|       |//
   LL|       |// Note that when `llvm-cov` prints ^ arrows on a subsequent line, it simply
   LL|       |// inserts one space character for each "column", with no understanding of
   LL|       |// Unicode or character widths. So those arrows will tend to be misaligned
   LL|       |// for non-ASCII source code, regardless of whether column numbers are code
   LL|       |// points or bytes.
   LL|       |
   LL|      1|fn main() {
   LL|     [0;35m32[0m|    for _İ in 'А'..='Я' { /* Я */ }
                             ^1
   LL|       |
   LL|      [0;35m1[0m|    if 申し訳ございません() && [0;41m申し訳ございません[0m() [0;41m{[0m
                                                      ^0
   LL|      0|[0;41m        println!("true");[0m
   LL|      1|[0;41m    [0m}
   LL|       |
   LL|      1|    サビ();
   LL|      1|}
   LL|       |
   LL|      1|fn 申し訳ございません() -> bool {
   LL|      1|    std::hint::black_box(false)
   LL|      1|}
   LL|       |
   LL|       |macro_rules! macro_that_defines_a_function {
   LL|       |    (fn $名:ident () $体:tt) => {
   LL|      [0;35m0[0m|        fn $名 () $体 [0;41mfn 他 ()[0m {[0;41m}[0m
   LL|       |    }
   LL|       |}
   LL|       |
   LL|       |macro_that_defines_a_function! {
   LL|       |    fn サビ() {}
   LL|       |}

