blob: 84c5f05a8c4e2007dc7587b3ea8b306b1a6ba8c9 (
plain)
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 |    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|        fn $名 () $体 [0;41mfn 他 () {}[0m
   LL|       |    }
   LL|       |}
   LL|       |
   LL|       |macro_that_defines_a_function! {
   LL|       |    fn サビ() {}
   LL|       |}
 |