compiletest: when there are revisions, `|` (bar, pipe, vertical line) error annotation logic seems to ignore other revisions
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 119k
- Forks
- 16.1k
- PR merge metrics
- PR metrics pending
Description
For a test with many revisions...
//@ revisions: x64 x64_win i686 aarch64 arm riscv32 riscv64
... one currently has to write annotations like this:
extern "aapcs" fn aapcs() {}
//[x64]~^ ERROR is not a supported ABI
//[i686]~^^ ERROR is not a supported ABI
//[aarch64]~^^^ ERROR is not a supported ABI
//[riscv32]~^^^^ ERROR is not a supported ABI
//[riscv64]~^^^^^ ERROR is not a supported ABI
//[x64_win]~^^^^^^ ERROR is not a supported ABI
That is quite painful to write and maintain. It would be much nicer if I could write this:
extern "aapcs" fn aapcs() {}
//[x64]~^ ERROR is not a supported ABI
//[i686]~| ERROR is not a supported ABI
//[aarch64]~| ERROR is not a supported ABI
//[riscv32]~| ERROR is not a supported ABI
//[riscv64]~| ERROR is not a supported ABI
//[x64_win]~| ERROR is not a supported ABI
However, that does not work: the filtering of revisions seems to happen before the | logic for "same line as previous annotation" is applied. Would be nice if that could be changed. :)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in compiletest by tracing how revision filtering is applied relative to the | annotation logic. Verify the behavior with a test using the listed revisions and annotations; done means | can reuse the previous annotation position independently for each revision without requiring manually increasing carets.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers, testing-qa
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100