Spoon v8.0.0 Release Notes
Release Date: 2019-11-06 // over 4 years ago-
🚀 this PR will trigger the official release of Spoon 8.0.0
🆕 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
- 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)
- 0️⃣ 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