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.
Currently, making a test case requires a lot of work - a separate
Language
+FileType
+ParserDefinition
+ParsingTestCase
, all of which are virtually identical between tests. This PR creates generic versions of each of these, so test cases can be defined just by:There's some complication around dynamically creating
Language
s, since IntelliJ enforces that each language uses a unique class & has a unique identifier. I use the shadowedorg.jetbrains.org.objectweb.asm
to generate a trivial subclass per grammar, which I think is fine to use for testing, but it might be worth shadowing it ourselves, or finding another way about it -ParsingTestCase
does a lot of heavy lifting that would need to be redone though.