A lot of definitions in the grammar are similar to
id:Identifier __ params:("(" __ InformalParameterList? __ ")")?
Notice that the first whitespace directive __ should exist inside params rather than before it. here, it exists before it. This means in a code construct like
contract Foo is bar, baz {
}
the end position of the Modifier baz actually covers al the whitespace after baz instead of just covering till z. This is a problem with lot of node definitions where everything after the whitespace __ is optional.
A lot of definitions in the grammar are similar to
Notice that the first whitespace directive
__should exist inside params rather than before it. here, it exists before it. This means in a code construct likethe
endposition of the Modifierbazactually covers al the whitespace after baz instead of just covering tillz. This is a problem with lot of node definitions where everything after the whitespace__is optional.