rust/tests/coverage/unicode.coverage
Zalathar cd9021e8cb coverage: Discard spans that fill the entire function body
When we try to extract coverage-relevant spans from MIR, sometimes we see MIR
statements/terminators whose spans cover the entire function body. Those spans
tend to be unhelpful for coverage purposes, because they often represent
compiler-inserted code, e.g. the implicit return value of `()`.
2024-02-16 10:57:03 +11:00

40 lines
1.7 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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| 33| for _İ in 'А'..='Я' { /* Я */ }
^32 ^32
LL| |
LL| 1| if 申し訳ございません() && 申し訳ございません() {
^0
LL| 0| println!("true");
LL| 1| }
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 $名 () $体 fn 他 () {}
LL| | }
LL| |}
LL| |
LL| |macro_that_defines_a_function! {
LL| | fn サビ() {}
LL| |}