Skip to content

v0.17.0 - More flexibility in SearchTerminals and many bugfixes

Pre-release
Pre-release
Compare
Choose a tag to compare
@douira douira released this 08 Feb 01:47
· 794 commits to main since this release
73e457c
  • 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 with DynamicParseTreeWalker 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 or Transformation#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