spoon-core-5.5.0

@surli surli released this Jan 11, 2017 · 44 commits to master since this release

Thanks to all contributors!

New features

  • New query architecture with support for Java8 queries. (PR: #1018)
  • Allow spoon to do static imports for methods and fields. (PR: #1040)
  • Interface to Exclude Compilation Units From CtModel. (PR: #1037)
  • API: Add CtTypeMember.getTopLevelType(). (PR: #1004)
  • CoreFactory
    • Add create(Class) so as to create elements by reflection. (PR: #949)
  • evaluation: Simplify classes based on static evaluation (first support). (PR: #1003)
  • filter: Compute filtered types by reflection from parameter of method matches. (PR: #1015)
  • getDeclaredOrInheritedField: Add CtTypeInformation.getDeclaredOrInheritedField(String fieldName). (PR: #967)
  • model: Add interface CtBodyHolder. (PR: #943)
  • position: Improve the element position. (PR: #984)
  • snippet:
    • Add support for compiling statements with return. (PR: #947)
    • Print Comment in CtSnippet. (PR: #1101)

Bug Fixes

  • DefaultJavaPrettyPrinted: Fix bug when printing implicit accesses to static fields in autoimport. (PR: #913)
  • JDTBasedSpoonCompiler: Fix annotation bug when templates are used. (PR: #934)
  • NPE: Fix NullPointerException resulting from variable accesses in constructors. (PR: #1098)
  • Fixed name of test class. (PR: #1037)
  • Generate expected EOL even on Windows. (PR: #977)
  • No exception when writing to log. (PR: #920)
  • Test: APITest.testSetterInNodes() was not testing anything . fix #972. (PR: #1022)
  • Close input stream after creating a compilation unit to prevent TooManyOpenFilesException. (PR: #1097)
  • Fix ReferenceBuilder#getLambdaExecutableReference to return the innermost lambda #1100. (PR: #1103)
  • Set the type of a parameter declared in a lambda to Object instead of ommitting them when unknown. (PR: #1108)
  • Fixed formatting. (PR: #1037)
  • Fix inconsistencies between interface contract and double implementations of getAllExecutables. (PR: #1019)
  • Removes unused imports. (PR: #988)
  • Clean exception when Spoon is given a wrong path for input resource. (PR: #1057)
  • SignaturePrinter: Overrides visitCtAnnotationMethod in SignaturePrinter. (PR: #1030)
  • ThisAccess
    • The type access associated to a this must be the type containing the this. (PR: #1008)
    • Shorter this access. (PR: #1031)
  • access path: Fix regression with type parameters in access paths. (PR: #1007)
  • annotations: Fix Dropwazrd regression by fixing substituteAnnotation. (PR: #1032)
  • array: The qualified name of an array is not java.lang.reflect.Array. (PR: #995)
  • clone: Clone preserves comments and implicitness. (PR: #1028)
  • comments
    • Fixes pretty-printing bug for inline arrays with comments. (PR: #912)
    • Fix bug in comments in array initialization. (PR: #1088)
    • Fix a bug concerning multiple comments before a catch block. (PR: #1074)
    • Handle stacked comments in package-info.java. (PR: #1011)
    • Add support of comments in snippets. (PR: #930)
  • enum: GetAllMethods also returns the methods of Enum. (PR: #1016)
  • equal
    • Regenerate EqualVisitor based on new Scanner, which fixes a number of bugs incl. #978. (PR: #993)
    • Actual type references must be part of equality. (PR: #997)
  • getTypeDeclaration
    • First lookup in sources, then in classpath. (PR: #962)
    • GetTypeDeclaration('?') should point to Object. (PR: #973)
  • imports
    • Correct interplay between fully-qualified types and variable names . (PR: #1026)
    • Fix regressions with static imports and inner classes or enums. (PR: #1048)
    • Fix a static import bug, ripple of adb2fd7. (PR: #1060)
  • importscanner: Fix regression in fuly-qualified mode. (PR: #1052)
  • isAssignableFrom: Deprecate isAssignableFrom that is totally confusing, and for which there is an alternative. (PR: #948)
  • isSubtypeOf: Spoon can resolve anonymous references. (PR: #953)
  • launcher: Easy way to parse a complete class with package. (PR: #982)
  • log: Filter out some JDT errors in noclasspath. (PR: #926)
  • model
    • Fix NPE when compilation units array contains null elements. (PR: #928)
    • Complex access paths for types with visibility are now correctly handled. (PR: #974)
  • newinstance: Forces usage of the newest version of the class. (PR: #909)
  • parent: Stops furious useless exceptions. (PR: #963)
  • performance
    • Improves performance of VirtualFolder.getAllFiles() and getSubFolders(). (PR: #915)
    • Keep shadow classes. (PR: #898)
  • position: Implicit elements do not have position. (PR: #1086)
  • precompile: Specifies and fixes precompile option. (PR: #923)
  • pretty-print
    • Fix pretty-printing of 'this' access for inner classes. (PR: #1061)
    • The annotation values are now pretty-printed in the original order. (PR: #1067)
    • Parentheses are missing when pretty-pretting some ternary expressions. (PR: #927)
  • reference: Fix reference in ctconstructor. (PR: #1095)
  • scanner
    • Add missing scan properties based on a new powerful specification. (PR: #966)
  • serialization: Fix serialization issue in Factory. (PR: #955)
  • shadow: No ClassNotFoundException when building shadow classes by reflection. (PR: #1012)
  • subtype: Removes CtTypeImpl#isSubtypeOf that is wrong and anyway overridden by all subclasses. (PR: #954)
  • template: Check that Template is on source path of builder. (PR: #976)
  • test
    • Much stronger contracts for setter spec and tests. (PR: #975)
    • Fixes OS-dependent path in LauncherTest. (PR: #919)

Documentation

  • Add --noclasspath for reducing first-usage friction.
  • Clarifies responsibility of CtNamedElement. (PR: #1062)
  • Adds adt poster and InDesign source. (PR: #1051)
  • Fix markdown issue in code_elements.md.
  • Improve readability and wording of doc/comments.md. (PR: #1079)
  • Fix broken link.
  • Improve navigability and first contact.
  • Update README.md (compiling, ecosystem, contributors). (PR: #1089)
  • Adds doc about constructor calls and the associated reference. (PR: #994)
  • Improve template documentation. (PR: #1068)
  • Adds documentation for explaining the code elements. (PR: #922)
  • SignaturePrinter: Improves doc of SignaturePrinter. (PR: #987)
  • info: Fix broken link to mailing list.
  • Fixes a typo in doc/gradle.md. (PR: #1078)
  • Fix issues related to javadoc in java 8. (PR: #1105)

Refactoring

  • Same algorithm for building sources, templates and snippet. (PR: #946)
  • Remove code duplication and fix inconsistencies of class Substitution. (PR: #992)
  • Removes dead code. (PR: #989)
  • Check everywhere that Template is on source path of builder. (PR: #979)
  • Removes old unseless code. (PR: #983)
  • Remove unused printer code of visitCtCatchVariable. (PR: #965)
  • JDTBatchCompiler arg.sources not needed. (PR: #958)
  • Regenerate files with short this for future clean diffs. (PR: #1039)
  • Avoid creation of JDT hacking TMP files. (PR: #944)
  • JDTBatchCompiler.getUnits() parameter not required anymore. (PR: #942)
  • Remove old unmaintained/broken code. (PR: #937)
  • All factory methods are also in main Factory for usability and discoverability. (PR: #1082)
  • Removes duplicated code. (PR: #936)
  • Remove unused imports. (PR: #935)
  • Reuse existing CU in JDTBatchCompiler.getUnits(). (PR: #933)
  • Introduce JDTBasedSpoonCompiler.buildModel to remove code duplication. (PR: #931)
  • Improves JDTCommentBuilder. (PR: #924)
  • classloader: Adds test for classloader. (PR: #897)
  • printerContext: Assure correct restore of state. (PR: #999)
  • processingmanager: Removes duplicated code, improves readability. (PR: #1054)
  • Deprecate reference filtering that is now handled by standard element filtering. (PR: #1013)
  • Renamed label from units to unitLoop. (PR: #1037)
  • Remove dependency to CompilationUnitDeclaration. (PR: #1037)
  • Use filter to exclude instead of accapt units. (PR: #1037)
  • We must always have a source + exception handling. (PR: #996)
  • Added an interface used to filter particular CompilationUnitDeclaraions. (PR: #1037)

Performance

  • Cache inputClassLoader corresponding to sourceClasspath. (PR: #990)
  • Improve performance of FindCommentParentScanner. (PR: #917)

Tests

  • ParentContractTest: Improves contract about setting parents. (PR: #956)
  • TemplateMatcher: Add tests for named template matchers (uncovered cases). (PR: #1092)
  • VisitorPartialEvaluator: Add tests for VisitorPartialEvaluator. (PR: #939)
  • metamodel: Enforce the package design of the metamodel. (PR: #945)
  • superClass: Adds test that verifies the compilation of complex superclass references that use access paths with tricky visibility. (PR: #971)
  • template: Add test for super interface templates. (PR: #1020)
  • templatematcher: Add a new Junit test and dynamic assertion for TemplateMatcher. (PR: #1034)
  • Add test for method parameter templating. (PR: #1064)
  • Add tests and doc for template engine. (PR: #1072)
  • Add a test to check if TemplateMatcher can match two equivalent snippets. (PR: #1059)
  • Reduces I/O footprint (and found two IO bugs on the way). (PR: #969)
  • Add coverage for templates (and unify API thanks to this). (PR: #1049)
  • Add missing @Test. (PR: #950)
  • One test was not named correctly, hence was not run by Maven in CI, hiding a bug. (PR: #1036)
  • Update CompilationTest to match latest compiler changes. (PR: #940)
  • Remove unused imports. (PR: #941)
  • replacevisitor: Add a strong test and fix many bugs accordingly. (PR: #957)
  • Added a test for new compilation unit filter. (PR: #1037)

Other

  • changelog: Improve the changelog generator. (PR: #1087)
  • jenkins: Purge local repository of all Spoon snapshots. (PR: #1065)
  • Change eclipse jdt core dependency now depends on Maven central only. (PR: #1063)
  • Update version of spoon-maven-plugin. (PR: #906)
  • build.sh: Update minimum version to fix problem with repo.eclipse.org.
  • coverage: Update coveralls version. (PR: #1001)
  • release: Update version number in documentation. (PR: #907)
  • Added license note to CompilationUnitFilter. (PR: #1037)

Authors

Name Nb Commit
Martin Monperrus 52
Pavel Vojtechovsky 36
Simon Urli 21
Thomas Durieux 13
Marcel Steinbeck 11
Benjamin DANGLOT 3
Дмитрий 1
Artur Bosch 1
Scott Dickerson 1
arno_b 1
Gérard Paligot 1
Lionel Seinturier 1
aveuiller 1

Downloads