PLC-lang/rusty
Improve reporting multiple issues for the exact same location
Open
#962 opened on Sep 6, 2023
enhancementgood first issuelow-priority
Repository metrics
- Stars
- (351 stars)
- PR merge metrics
- (PR metrics pending)
Description
Some situations report multiple issues for the exact same location. They get reported as independant issues and it is hard to see that th e last three are probably just follow up errors of the first one:
error: Unexpected token: expected DataTypeDefinition but found KeywordAbstract
┌─ test.st:1:30
│
1 │ CLASS TestClass METHOD foo : ABSTRACT END_METHOD END_CLASS
│ ^^^^^^^^ Unexpected token: expected DataTypeDefinition but found KeywordAbstract
error: Unexpected token: expected Datatype but found ABSTRACT
┌─ test.st:1:30
│
1 │ CLASS TestClass METHOD foo : ABSTRACT END_METHOD END_CLASS
│ ^^^^^^^^ Unexpected token: expected Datatype but found ABSTRACT
error: Unexpected token: expected Literal but found ABSTRACT
┌─ test.st:1:30
│
1 │ CLASS TestClass METHOD foo : ABSTRACT END_METHOD END_CLASS
│ ^^^^^^^^ Unexpected token: expected Literal but found ABSTRACT
error: Unexpected token: expected KeywordSemicolon but found 'ABSTRACT'
┌─ test.st:1:30
│
1 │ CLASS TestClass METHOD foo : ABSTRACT END_METHOD END_CLASS
│ ^^^^^^^^ Unexpected token: expected KeywordSemicolon but found 'ABSTRACT'
We should try to group diagnostics by their location before we report them. Something like this:
error: Unexpected token: expected DataTypeDefinition but found KeywordAbstract (+ 3 additional)
┌─ test.st:1:30
│
1 │ CLASS TestClass METHOD foo : ABSTRACT END_METHOD END_CLASS
│ ^^^^^^^^ 1. Unexpected token: expected DataTypeDefinition but found KeywordAbstract
│ 2. Unexpected token: expected Datatype but found ABSTRACT
│ 3. Unexpected token: expected Literal but found ABSTRACT
│ 4. Unexpected token: expected KeywordSemicolon but found ABSTRACT