Fix malformed error annotations in a UI test #136403
Open
+2
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The compiletest DSL still features a historical remnant from the time when its directives were merely prefixed with
//
instead of//@
when unknown directive names weren't rejected since they could just as well be part of prose:As an "optimization", it stops looking for directives once it stumbles upon a line which starts with either
fn
ormod
. This allowed a malformed error annotation of the form//@[…]~^^^
to go undetected & unexercised (as it's placed belowfn main() {
).Obviously a character other than
@
would've mangled the error annotation, too (but it might've caught the reviewer's eye). I specifically found this file because I ranrg '^(fn|mod)[\s\S]*?//@' tests/ui --multiline -trust
to check how footgun-y that "special feature" of compiletest is.