v0.17.0 - More flexibility in SearchTerminals and many bugfixes
Pre-release
Pre-release
- Made
SearchTerminals
dynamic meaning it can be used in contexts where the targets aren't known at transformation init-time. SearchTerminals
will now test all terminal tokens if the invalid token type is set as the token type to test- Moved most of the specific search terminals stuff to
SearchTerminalsImpl
- Added constructor that only takes a terminal token type to
SearchTerminalsImpl
- Added
SearchTerminalsDynamic
for using it dynamically with caching - Made all custom node types implement
MoveCheckable
which fixes a bug withDynamicParseTreeWalker
getting into an infinite loop while searching for a replaced node - Fixed another bug with
DynamicParseTreeWalker
that resulted in an NPE if a child array was null - Improved
MoveCheckable
to also check deeply nested replacements - Introduced the concept of child transformations which allows transformations indirectly added to a phase collector through
Transformation#append
orTransformation#merge
to also receive job parameters - Simplified
EmptyTerminalNode
since all nodes may receive a previous node now - Added tests for the fixed bugs (hopefully making sure they won't regress)
Full Changelog: v0.16.1...v0.17.0