Skip to content

Spoon 5.2.0

Compare
Choose a tag to compare
@spoon-bot spoon-bot released this 30 Jun 08:57
· 3409 commits to master since this release

Metamodel

  • Clean reset of collections in intercession methods. (PR: #712)
  • All setters allow null parameters. (PR: #694)
  • Introduces CtModel (Issue: #584) (PR: #589)
  • Creates factory methods for primitives. (Issue: #651) (PR: #700)
  • Remove CtImplicitTypeRef and CtImplicitArrayTypeRef. (PR: #667)

New features

  • shadow : Build shadow elements using Reflection API. (PR: #569)
  • checks : Disable AST checks. (Issue: #649) (PR: #684)
  • comment
    • All comments are handled by the same option (-c). (Issue: #666) (PR: #676)
    • Adds comment support. (PR: #554)
  • filter : Adds LineFilter to reason about statements in blocks. (PR: #678)
  • clone : Adds the handy CtElement#clone (and deprecates CoreFactory#clone). (PR: #677)
  • Refactoring of CtElement.equals for performance. (PR: #674)
  • A faster implementation of 'replace' based on code generation. (PR: #632)

Fixes

  • annot : Reference to an annotation field as an invocation. (Issue: #578) (PR: #660)
  • ast : Align CtNewClass with CtConstructorCall. (PR: #595)
  • cache : Invalidate cache of the compiler. (Issue: #575) (PR: #577)
  • clone
    • Scan declaring executable of CtParameterRef (closes #729). (Issue: #729) (PR: #730)
    • Fix bug (modifiers not deep copied). (PR: #727)
  • comment
    • Fix bug in the usage of the new flag (closes #721). (Issue: #721) (PR: #723)
    • Handles comments in CtNewArray and in CtConditional. (Issue: #588) (PR: #590)
  • compiler : Add class generated to compilation unit. (PR: #564)
  • conditional : Puts parenthesis when it is necessary. (PR: #669)
  • factory : Gets inner type from Class/InterfaceFactory. (closes #640). (Issue: #640) (PR: #682)
  • filter : Fixes NPE in VariableAccessFilter when the getVariable() is null (e.g. super). (PR: #641)
  • getparent : GetParent(Filter) does not return the current element when it matches the filter. (PR: #638)
  • lambda : Builds executable ref from a lambda. (PR: #665)
  • noclasspath : NPE in a scope usage. (Issue: #574) (PR: #576)
  • parent
    • Avoid NPE with CtElement#hasParent(CtElement) (Closes #679). (Issue: #679) (PR: #685)
    • HasParent should not always return false. (PR: #686)
  • performance : Rewrite CtExecutableReference#isOverriding. (Issue: #586) (PR: #592)
  • printer : Protects each getParent invocation in DefaultJavaPrettyPrinter. (PR: #704)
  • ref : Scan declaring type for CtExecutableReference. (PR: #715)
  • unbox : Don't throw a SCNFException with #unbox(). (PR: #620)
  • Declaring type OR package should be set for a reference, not both. (PR: #613)
  • Annotation values traversal should be delegated to scan(), fixes #603. (Issue: #603) (PR: #614)
  • Fix bugs in ImportScannerImpl. (PR: #596)
  • Fix a number of bugs related to handling of unnamed packages. (PR: #705)
  • Fix bug introduced in #689 (order to iterate with a Deque and Stack are different). (Issue: #689) (PR: #710)
  • Fix nullpointer in hasTypeInImports. (PR: #672)
  • Use CtTypeParameterRef for formal ops. (PR: #620)
  • Fix bugs in ClassFactory.create() methods. (PR: #610)
  • Fix many small bugs with double usage of AST nodes in different subtrees,. (PR: #645)
  • Doesn't warn for implicit source code. (PR: #696)
  • Fix a bug in CodeFactory.createThisAccess() (target was not set). (PR: #612)
  • Fix bugs with creating CtTypeAccess without cloning reference, that leads to problems with replace() in graph. (PR: #611)