Skip to content

spoon-core-5.7.0

Compare
Choose a tag to compare
@surli surli released this 01 Jun 07:59
· 3149 commits to master since this release

New features

  • Add support for Java 8 receiver parameters. (PR: #1298)
  • Function to find all executables with the same signature. (PR: #1291)
  • Add new filter for finding lamdas (class LambdaFilter). (PR: #1315)
  • Add new function to collect subtypes (class SubInheritanceHierarchyFunction). (PR: #1290)
  • Add refactoring class CtParameterRemoveRefactoring. (PR: #1317)
  • Add SubInheritanceHierarchyResolver as helper for query mechanisms. (PR: #1309)
  • New filter ExecutableReferenceFilter. (PR: #1318)
  • Add public method MethodTypingContext#adaptMethod. (PR: #1288)
  • Add method GenericTypeAdapter#getAdaptationScope. (PR: #1287)
  • Add CtMethod#isOverriding(CtMethod). (PR: #1220)
  • Add support for typing analysis of generic types. (PR: #1218)
  • Add support for type erasure (CtType/CtTypeReference#getTypeErasure()). (PR: #1216)
  • Support for better analysis of generic type arguments (TypeReference#getTypeParameterReference() and TypeFactory#createReference(type,includingFormalTypeParams)). (PR: #1237)
  • SuperInheritanceHierarchyFunction supports references and listener. (PR: #1242)
  • Add support for renaming local variables. (PR: #1005)
  • comment: Add an AST node for the javadoc tags. (PR: #1310)
  • template: The template engine supports substitution of method names in method calls. (PR: #1325)

Bug Fixes

  • Fix bug in CtExecutableReference#getActualMethod when parameters are generically typed. (PR: #1277)
  • Fix bug in getActualMethod() due to missing information in CtTypeParameterReference. (PR: #1286)
  • Improve line preservation mode. (PR: #1335)
  • Auto-import works for compilation units with multiple classes in the same file. (PR: #1322)
  • Fix import bug with java.lang.subpackage. (PR: #1327)
  • Fix NPE in isTypeInCollision. (PR: #1326)
  • Improve ImportScanner to support variables called "java". (PR: #1321)
  • Fix bug in qualified names in a special case due to missing information in JDT. Fix #1307. (PR: #1312)
  • Fix bug in import inference (auto-import mode). Close #1306. (PR: #1308)
  • In noClasspath, a type without import should be considered in the same package as the current class. (PR: #1302)
  • Fix SuperInheritanceHierarchyFunction in noClassPath mode. (PR: #1281)
  • Fix AnnotationFactory#create. (PR: #1340)
  • Fix JDT error when input resource contains an entirely commented class. (PR: #1279)
  • Fix special case not handled in factory.Annotation().annotate(). (PR: #1278)
  • Fix a couple of bugs in recent feature "generic type adaptation". (PR: #1275)
  • Fix regression regarding actual type arguments resolving. (PR: #1273)
  • #setParent is not a normal metamodel setter, and is excluded from SpoonTestHelpers#getAllSetters. (PR: #1261)
  • TestFactorySubFactory must only check public factory methods. (PR: #1263)
  • CtBlock#getLastStatement is a @DerivedProperty. (PR: #1262)
  • Fix a bug in wrongly qualified type in executable references. (PR: #1259)
  • Fix issue #1246. (PR: #1251)
  • Fix NPE in CtElement#getMetadataKeys. Closes #1239. (PR: #1240)

Documentation

  • Add pointer to new Template example. (PR: #1343)
  • Document and refactor TemplateMatcher. (PR: #1319)
  • Update examples links from gforge.inria.fr to github.com. (PR: #1226)
  • Adds InspectorGuidget in ecosystem page. (PR: #1304)
  • Clarifies page on architectural rule checking with Spoon. (PR: #1301)
  • Fix link mix. (PR: #1297)
  • Fix javadoc of SuperInheritanceHierarchyFunction. (PR: #1289)
  • Update doc with release 5.6.0 information. (PR: #1227)

Refactoring

  • Remove or update deprecation related to queries & filters. (PR: #1300)
  • Improve ImportScanner design, add getAllImports. (PR: #1339)
  • Renamed confusing duplicate classes. (PR: #1333)
  • Improve PrinterHelper (less duplication, more encapsulation). (PR: #1332)
  • Handle some rare limit cases. (PR: #1331)
  • Remove call to deprecated File#toURL. (PR: #1313)
  • Change generic type bound. (PR: #1314)
  • Replace string literals by constants. (PR: #1316)
  • Remove deprecated method computeImports. (PR: #1311)
  • Remove useless 'final' modifier in interface methods. (PR: #1334)
  • MethodTypingContext#isOverriding/isSameSignature/isSubSignature moved to ClassTypingContext. (PR: #1299)
  • MethodTypingContext#adaptMethod moved to ClassTypingContext. (PR: #1296)
  • AllTypeMembersFunction accepts now CtTypeInformation as parameter. (PR: #1285)
  • Use new CtMethod#isOverriding in method overriding/overriden filters. (PR: #1276)
  • Refactor and test initProperties. (PR: #1260)
  • Remove unused field. (PR: #1253)
  • Adds an architural rule for helper classes with static methods. (PR: #1247)
  • CtFormalTypeDeclarer extends CtTypeMember. (PR: #1235)
  • Refactor *VariableReferenceFunction around LocalVariableReferenceFunction. (PR: #1193)

Performance

  • Use factory.Type().OBJECT to save memory. (PR: #1241)
  • Use TypeFactory#OBJECT. (PR: #1231)

Tests

  • Improve TemplateMatcher test. (PR: #1323)

Other

  • Checkstyle checks that the end of lines are consistent (unix-style \n only). (PR: #1344)
  • Fix broken revapi reports due to regression in revapi-reporter-text 0.8.0.
  • Revapi check should fail only for breaking changes. (PR: #1282)
  • Fix revapi bug. (PR: #1280)

Unknown

  • Add 'getBinaryFiles' to CompilationUnit. Fixes #1230. (PR: #1232)
  • Prepare for next development iteration.

Authors

Name Nb Commit
Pavel Vojtechovsky 38
Simon Urli 18
Martin Monperrus 17
Thomas Durieux 1
Marcel Steinbeck 1