   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;35m33[0m|    for _İ in 'А'..='Я' { /* Я */ }
                      ^32                ^32
   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|       |}

