Skip to content

Releases: INRIA/spoon

Spoon 10.3.0

13 Mar 05:36
c3e2139
Compare
Choose a tag to compare

Changelog #5135

Spoon 10.2.0

21 Oct 17:14
ee73f43
Compare
Choose a tag to compare

Changelog: #4946

Spoon 10.1.0

12 Apr 07:32
17e000b
Compare
Choose a tag to compare

Changelog

New features

  • Support shift left and right operation inside VisitorPartialEvaluator. (PR: #4237)
  • Add support for first class resource in try-with-resource. (PR: #4371)
  • Add support for type parameters on method references. (PR: #4343)

Bug fixes

  • ImportCleaner: Resolve imports of parent types. (PR: #4353)
  • Launcher: NPE in Launcher.prettyprint(). (PR: #4303)
  • MavenLauncher: Maximum recovery from missing libraries. (PR: #4336)
  • record: Valid assignments in record compact constructors. (PR: #4389)
  • Backward compatible modeling of try-with-resource. (PR: #4625)
  • Fix incorrect import. (PR: #4610)
  • Fix qodana warning with proper call to Array.toString(). (PR: #4536)
  • No parentheses for single lambda parameters. (PR: #4448)
  • Escape sequences in text-blocks are kept. (PR: #4409)
  • Fix square bracket printing in array field declarations. (PR: #4436)
  • Correct type reference for ClassLiteralAccess. (PR: #4383)
  • Do not strip super class from qualified name. (PR: #4359)
  • Handle spaces in classpath paths. (PR: #4358)
  • Print square brackets in array initalisation. (PR: #4341)
  • Clone metadata for elements created via template. (PR: #4396)
  • Fix testcases for windows CI. (PR: #4385)
  • Add junit extension for line endings. (PR: #4349)
  • Fix pretty-printing ordering for record parameters. (PR: #4366)
  • Prevent stackoverflow when visiting of cyclic annotation/package structures. (PR: #4356)
  • Prevent removal of static field import. (PR: #4331)
  • Prevent importing classes which are already imported via *. (PR: #4320)
  • Print each resource in CtTryWithResource exactly once and retain separator. (PR: #4309)
  • Lookup absolute path to maven executable. (PR: #4298)
  • Ensure sniper pretty-printer prints modifiers and type separated by a space. (PR: #4296)
  • Removed annotation should not appear in sniper mode. (PR: #4284)
  • Add missing space after modifiers in sniper mode. (PR: #4279)
  • Fix flaky test TestModule.testModuleNames(). (PR: #4286)
  • Correctly print type parameters of generic records. (PR: #4283)

Migration to JUnit5

  • Migrate SMPL tests to JUnit5. (PR: #4598)
  • Migrate dataflow to Junit 5. (PR: #4618)
  • Migrate spoon-control-flow tests to JUnit 5. (PR: #4615)
  • Migrate decompiler to JUnit 5. (PR: #4599)
  • Migrate OneCanCallSetterWithNullParameterizedTest to JUnit 5. (PR: #4555)
  • Migrate InterfaceTest to JUnit 5. (PR: #4556)
  • Migrate TestInterfaceWithoutSetup to JUnit 5. (PR: #4557)
  • Migrate ImportBuilderTest to JUnit 5. (PR: #4562)
  • Migrate TestLabels to JUnit 5. (PR: #4563)
  • Migrate AnonymousInLambdaTest to JUnit 5. (PR: #4564)
  • Migrate SetParentTest to JUnit 5. (PR: #4567)
  • Migrate Maintest to JUnit 5. (PR: #4570)
  • Migrate ContractOnSettersParametrizedTest to JUnit 5. (PR: #4569)
  • Migrate InvocationTest to JUnit 5. (PR: #4558)
  • Migrate AnnotationPositionTest to JUnit 5. (PR: #4559)
  • Migrate SniperPrettyPrinterJavaxTest to JUnit 5. (PR: #4560)
  • Migrate JarTest to JUnit 5. (PR: #4561)
  • Migrate LambdaTest to JUnit 5. (PR: #4565)
  • Migrate InternalTest to JUnit 5. (PR: #4566)
  • Move test Java source to ./src/test/resources/. (PR: #4568)
  • Migrate MethodOverriddingTest to JUnit 5. (PR: #4550)
  • Migrate MethodTest to JUnit 5. (PR: #4551)
  • Migrate LoopTest to JUnit 5. (PR: #4552)
  • Migrate UnicodeBugTest to JUnit 5. (PR: #4553)
  • Migrate LiteralTest to JUnit 5. (PR: #4554)
  • Migrate ReplaceParametrizedTest. (PR: #4542)
  • Migrate ParallelProcessorTest to JUnit 5. (PR: #4543)
  • Migrate TestModule to JUnit 5. (PR: #4544)
  • Migrate ModifiersTest to JUnit 5. (PR: #4545)
  • Migrate TypeTest to JUnit 5. (PR: #4546)
  • Migrate BlockTest to JUnit 5. (PR: #4547)
  • Migrate MethodReferenceTest to JUnit 5. (PR: #4549)
  • Migrate FactoryTest to JUnit 5. (PR: #4530)
  • Migrate CUFilterTest to JUnit 5. (PR: #4531)
  • Migrate TypeFactoryTest to JUnit 5. (PR: #4532)
  • Migrate NameScopeTest to JUnit 5. (PR: #4533)
  • Migrate IntercessionTest to JUnit 5. (PR: #4534)
  • Migrate InsertMethodsTest to JUnit 5. (PR: #4535)
  • Migrate InitializerTest to JUnit 5. (PR: #4527)
  • Migrate ConstructorFactoryTest to JUnit 5. (PR: #4513)
  • Migrate CodeFactoryTest to JUnit 5. (PR: #4514)
  • Migrate ClassFactoryTest to JUnit 5. (PR: #4515)
  • Migrate AnnotationFactoryTest to JUnit 5. (PR: #4516)
  • Migrate to ExecutableTest to JUnit 5. (PR: #4517)
  • Migrate ExecutableRefTest to JUnit 5. (PR: #4518)
  • Migrate to ExceptionTest to JUnit 5. (PR: #4519)
  • Migrate EnumsTypeTest to JUnit 5. (PR: #4520)
  • Migrate FluentLauncherTest to JUnit 5. (PR: #4521)
  • Migrate ExecutableFactoryTest to JUnit 5. (PR: #4522)
  • Migrate FieldFactoryTest to JUnit 5. (PR: #4523)
  • Migrate FieldAccessTest to JUnit 5. (PR: #4524)
  • Migrate GenericsTest to JUnit 5. (PR: #4525)
  • Migrate StaticNoOrdered to JUnit 5. (PR: #4526)
  • Migrate RemoveTest to JUnit 5. (PR: #4528)
  • Migrate TopLevelTypeTest to JUnit 5. (PR: #4505)
  • Migrate PackageTest JUnit 5. (PR: #4504)
  • Migrate PositionTest to JUnit 5. (PR: #4503)
  • Migrate TestSourceFragment to JUnit 5. (PR: #4502)
  • Migrate LinesTest to JUnit 5. (PR: #4501)
  • Migrate LoopSniperJavaPrettyPrinterTest to JUnit 5. (PR: #4500)
  • Migrate PrinterTest JUnit 5. (PR: #4499)
  • Migrate VariableReferencesTest to JUnit 5. (PR: #4497)
  • Migrate TestCtBlock to JUnit 5. (PR: #4491)
  • Migrate QualifiedThisRefTest. (PR: #4498)
  • Migrate EvalTest to JUnit 5. (PR: #4495)
  • Migrate DeleteTest to JUnit 5. (PR: #4494)
  • Migrate CtBodyHolderTest to JUnit 5. (PR: #4493)
  • Migrate CtClassTest to JUnit 5. (PR: #4492)
  • Migrate GetBinaryFilesTest to JUnit 5. (PR: #4486)
  • Migrate NewClassTest to JUnit 5. (PR: #4490)
  • Migrate ControlTest to JUnit 5. (PR: #4489)
  • Migrate ConstructorCallTest to JUnit 5. (PR: #4488)
  • Migrate ConditionalTest to JUnit 5. (PR: #4487)
  • Migrate EqualTest to JUnit 5. (PR: #4485)
  • Migrate ParentTest to JUnit 5. (PR: #4506)
  • Migrate NullParentTest to JUnit 5. (PR: #4507)
  • Migrate ParameterTest to JUnit 5. (PR: #4508)
  • Migrate ClassesTest to JUnit 5. (PR: #4465)
  • Migrate ModelStreamerTest to JUnit 5. (PR: #4464)
  • Migrate SerializableTest to JUnit 5. (PR: #4463)
  • Migrate SignatureTest to Junit 5. (PR: #4462)
  • Migrate SnippetTest to JUnit 5. (PR: #4461)
  • Migrate TypeTest to Junit 5. (PR: #4460)
  • Migrate TestCtRole to JUnit 5. (PR: #4466)
  • Migrate VariableAccessTest to Junit 5. (PR: #4469)
  • Migrate ExecutableReferenceTest to Junit 5. (PR: #4471)
  • Migrate CtInheritanceScannerTest to JUnit 5. (PR: #4482)
  • Migrate PathTest to JUnit 5. (PR: #4479)
  • Migrate VariableReferencesModelTest to JUnit 5. (PR: #4476)
  • Migrate TypeReferenceTest to Junit 5. (PR: #4470)
  • Migrate ReferenceQueryTest to Junit 5. (PR: #4468)
  • Migrate ReplaceTest to Junit 5. (PR: #4467)
  • Migrate ProcessingTest to JUnit 5. (PR: #4478)
  • Migrate PropertiesTest to JUnit 5. (PR: #4477)
  • Migrate AnnotationFieldReferenceTest to JUnit 5. (PR: #4475)
  • Migrate CloneReferenceTest to JUnit 5. (PR: #4474)
  • Migrate ElasticsearchStackoverflowTest to JUnit 5. (PR: #4473)
  • Migrate ExecutableReferenceGenericTest to JUnit 5. (PR: #4472)
  • Migrate AnnotationTest to junit 5. (PR: #4415)
  • Migrate AccessTest to Junit 5. (PR: #4438)
  • Migrate AccessFullyQualifiedFieldTest to JUnit 5. (PR: #4439)
  • Migrate SourcePositionTest to JUnit 5. (PR: #4447)
  • Migrate VarArgsTest to JUnit 5. (PR: #4440)
  • Migrate TryCatchTest to JUnit 5. (PR: #4441)
  • Migrate TargetedExpressionTest to JUnit 5. (PR: #4442)
  • Migrate ResourceTest to JUnit 5. (PR: #4443)
  • Migrate ImplicitStaticFieldReferenceTest to JUnit 5. (PR: #4444)
  • Migrate StaticAccessTest to JUnit 5. (PR: #4445)
  • Migrate SpoonifierTest to JUnit 5. (PR: #4446)
  • Migrate AssignmentsEqualsTest to junit 5. (PR: #4424)
  • Migrate ToStringBugTest to Junit 5. (PR: #4422)
  • Migrate VisitorTest to Junit 5. (PR: #4423)
  • Migrate VisibilityTest to Junit 5. (PR: #4425)
  • Migrate ChangeCollectorTest to Junit 5. (PR: #4432)
  • Migrate CompilationTest to Junit 5. (PR: #4433)
  • Migrate TestCompilationUnit to Junit 5. (PR: #4434)
  • Migrate SpoonArchitectureEnforcerTest to Junit 5. (PR: #4430)
  • Migrate NoClasspathTest to Junit 5. (PR: #4431)
  • Migrate LauncherTest to Junit 5. (PR: #4428)
  • Migrate MetamodelTest to Junit 5. (PR: #4429)
  • Migrate ConstructorTest to JUnit 5. (PR: #4435)
  • Migrate CtScannerTest to junit 5. (PR: #4411)
  • Migrate MavenLauncherTest to Junit 5. (PR: #4416)
  • Migrate AnnotationValuesTest to Junit 5. (PR: #4418)
  • Migrate APITest to Junit 5. (PR: #4420)
  • Migrate FileSystemFolderTest to junit 5. (PR: #4419)
  • Migrate OutputTypeTest to Junit 5. (PR: #4417)
  • Migrate AnnotationLoopTest to junit 5. (PR: #4414)
  • Migrate TreeBuilderCompilerTest to junit 5. (PR: #4413)
  • Migrate CtVisitorTest to junit 5. (PR: #4412)
  • Migrate CloneTest to Junit 5. (PR: #4401)
  • Migrate CtTypeInformationTest to Junit 5. (PR: #4402)
  • Migrate GenerateParentlessPackageTest to junit 5. (PR: #4403)
  • Migrate CtBFSIteratorTest to junit 5. (PR: #4404)
  • Migrate CtInheritanceScannerMethodsTest to junit 5. (PR: #4405)
  • Migrate CtIteratorTest to junit 5. (PR: #4406)
  • Migrate to junit 5. (PR: #4398)
  • Migrate CompilationUnitPrintTest to junit 5. (PR: #4400)
  • Refactor StringLiteralTest to Junit 5. (PR: #4390)
  • Migrate UnknownDeclarationTest to junit 5. (PR: #4392)

Dependencies

  • Update dependency com.fasterxml.jackson.core:jackson-databind to v2.13.2. (PR: #4632)
  • Update dependency org.bitbucket.mstrobel:procyon-compilertools to v0.6.0. (PR: #4620)
  • Update dependency org.slf4j:slf4j-api to v1.7.36. (PR: #4592)
  • Update dependency through2 to v4. (PR: #4459)
  • Update dependency org.slf4j:slf4j-api to v1.7.35. (PR: #4574)
  • Update dependency org.apache.maven.plugins:maven-dependency-plugin to v3.3.0. (PR: #4639)
  • Update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.10.1. (PR: #4638)
  • Upd...
Read more

Spoon 10.0.0

27 Oct 12:45
f89b693
Compare
Choose a tag to compare

Changelog: #4254

Release Spoon 9.1.0

15 Sep 13:38
eccfec9
Compare
Choose a tag to compare

Spoon 9.0.0

18 Mar 14:24
5cd5fa1
Compare
Choose a tag to compare

Changelog #3845

Spoon 8.3.0

26 Oct 15:43
0270983
Compare
Choose a tag to compare

Changelog: #3647

Release of 8.2.0

29 Jul 07:27
7e9b1f3
Compare
Choose a tag to compare

Changelog: #3501

Release 8.1.0

23 Mar 16:10
10be860
Compare
Choose a tag to compare

Changelog: #3310

Release 8.0.0

06 Nov 15:07
Compare
Choose a tag to compare

New features

  • Add new variable refactoring class. (PR: #3162)
  • Add role EMODIFIER for extended modifier. (PR: #3098)
  • CtImportVisitor#visitUnresolvedImport. (PR: #3086)
  • DecompiledResource: Add a SpoonResource that can be used in any launcher. (PR: #3124)
  • SpoonifierVisitor: A visitor that generates the spoon code to recreate a spoon model. (PR: #3105)
  • decompiler: Add support for procyon. (PR: #3123)
  • visualisation
    • Panel added to show Spoon objects' properties. (PR: #3107)
    • Spoon visualiser improvement for accessing JavaDoc. (PR: #3101)
  • spoon-visualisation: Spoon AST visualisation tool. (PR: #3072)

Bug Fixes

  • CreateVariableAssignment now creates a CtVariableWrite. (PR: #3157)
  • Fixes the toString() call on an array. (PR: #3134)
  • CtCompilationUnitImpl: Fix regression after auto-import refactoring. (PR: #3131)
  • Fix regression when rewriting static field access. (PR: #3115)
  • The type of string concatenation is not null. (PR: #3075)
  • (ParentExiter.java): set position for implicit loop body block. (PR: #3084)
  • Fix regression in field accesses of static fields. (PR: #3139)
  • Improve backward compatibility of toString and add toDebugString. (PR: #3099)
  • Don't check modifiers in CtVariable#getDeclaringType. (PR: #3066)
  • Fix regression in pretty printer (default DJPP is fully qualified). (PR: #3132)
  • Fix incorrect model for empty for loop. (PR: #3108)
  • Fix more regressions after auto-import refactoring. (PR: #3127)
  • ToStringWithImports works even with no position. (PR: #3110)
  • Fix regression in auto-import. (PR: #3125)
  • Indeed call the preprocessors in toString/autoimports. (PR: #3103)
  • CtElementImpl#toString: Fix toString for SniperPrinter. (PR: #3147)
  • DefaultJavaPrettyPrinter: Support for inline else if. (PR: #3088)
  • ImportCleaner: Import must be kept when they are used in Javadoc. (PR: #3160)
  • Iterators: Next() first checks hasNext and throws the correct error. (PR: #3164)
  • PositionBuilder: Fix lambda parameters position. (PR: #3137)
  • SourceFragmentContext: Visit field reference in import as well. (PR: #3161)
  • SourceOptions: Close the output stream in SourceOptions. (PR: #3089)
  • TypeNameScope: Order of processing LexicalScope elements of Type. (PR: #3085)
  • core: Parsing a one-line class produces correct line numbers. (PR: #3069)
  • import: Fix regression after import refactoring. (PR: #3149)
  • pom: Update/add license header in poms. (PR: #3143)

Documentation

  • Add API documentation to public methods. (PR: #3152)
  • Add archunit to related work in architecture enforcement. (PR: #3146)
  • Improve documentation while preparing the MadridJUG meetup. (PR: #3141)
  • Improve landing page. (PR: #3128)
  • Minor improvement to example page. (PR: #3100)
  • Add example for snippet filtering. (PR: #3062)
  • ROADMAP.md: Roadmap 100% points to issues. (PR: #3119)
  • launcher.md: Improve decompilation doc. (PR: #3130)
  • visualisation: Mention the visualisation tool on the website. (PR: #3102)

Refactoring

  • Use .equals() when comparing Strings and Boxed types. (PR: #3165)
  • Rename internal method with particularly confusing name. (PR: #3109)
  • Handling of imports in pretty printer. (PR: #2683)
  • Decompiler: Update interface (in preparation for DecompiledResource). (PR: #3122)
  • NoSourcePosition: Applies the null design pattern to compilation units. (PR: #3151)

Authors

Name Nb Commit
Martin Monperrus 30
Nicolas Harrand 14
arno 5
Haris Adzemovic 3
Pavel Vojtechovsky 3
Egor Bredikhin 2
Rhys Compton 1
Muhammet Ali AKBAY 1
Simon Urli 1
Thomas Durieux 1
HectorSM 1
Lionel Seinturier 1