Enhancements
- Load Java 17 (This does not yet support Java 17 language features) parser in a classloader that avoids module security. #1797
- Adding file attributes to
SourceFile
. (fixes #1810). #1819 - Add
RemoteArchive
andRemoteFile
. #1829 #1808 - Adding adhoc taint tracking support for local flow by @JLLeitschuh in #1853
- Improvements to DataFlow Analysis
ChangeDependencyGroupIdAndArtifactId
should allow thenewVersion
to be expressed as a semver selector. #1751- Support template replacement of identifiers #1796
- RewriteTest supports asserting on the presence of new files c7f0354
- New Recipe: Add an Xml comment #1809
- New Recipe: Add a property to a maven pom. by @murdos in #1799
- New Recipe: Lowercase package names. #1831 #1830
- New Recipe: Set file permissions attributes #1835
- New Recipe: Recipe to transform calls to
Objects.isNull
andObjects.nonNull
with a simple null check #154
Fixes
RemoveRedundantTypeCast
removes necessaryObject[]
cast. #1784NameCaseConvention
The camel case conversion converts all caps acronyms to all lowercase. 1fe0996SimplifyBooleanExpress
Fix spacing when simplifying boolean expressions where the literal is on the left side. fbe5d67DeclarativeRecipe
does not preserve recipe list order for recipes which must be assembled from multiple ResourceLoaders #1789- Updated
TypeUtils
with model changes from type mapping enhancements. #1791 - Fix #1793
Recipe.causesAnotherCycle()
does not take recipent list into account. #1794 - Update ProtoBuf Parser to support reserved ranges having a single Integer Range (fixes #1790). #1806
- Add a variety of dataflow analysis tests by @JLLeitschuh in #1795
- RemoveUnusedImports removes used imports on Apache James #1798
- Fix: The ability to use a
J.MethodInvocation
as a flow source by @JLLeitschuh in #1811 - Allow declarative recipes to cause another recipe execution cycle #1814
- Fix #1815, Groovy fails to support shell shebangs #1816
- Remove unused code in
MethodMatcher
by @JLLeitschuh in #1812 - Fix #1821,
JavaTemplate
fails to template assignments that are not part of a variable declaration #1822 - Fix #1828
JavaTemplate
can fail when operating on an AST element not contained within elements accessible via Cursor #1827 ExplicitLambdaArgumentTypes
should create correctly-formed type expressions. #1839- Detect method overrides of parameterized types with generic bounds. #1840
- Fix DataFlow so it works correctly by @JLLeitschuh in #1818
- Additional DataFlow Improvements by @JLLeitschuh in #1842
- Fix #1847,
YamlResourceLoader.listRecipes()
silently hides some recipe deserialization problems. #1848 - Close #1846,
RewriteTest
should assert that the recipe under test passes its own validation. #1849 - Fix #1845,
Recipe.validate()
does not validaterecipeList
contents. #1850 UseLambdaForFunctionalInterface
should remove unused imports afterward by @nmck257 in #1851- Guard against NPE from a null type in
Symbol.MethodSymbol
in theTypeSignatureBuilders
. #1855 - Fix #1861
MavenArtifactDownloader.downloadArtifact()
fails loading from maven local on Windows. #1862 - Fix
FindMissingTypes
bug where chained method invocations each having unknown types only generated a single result. #1867 - Completed visitors in
SemanticallyEqual
. #1863 - Maven resolution should use initial repos if defined. #1864
- Check for
JavaType.Unknown
in type utils. #1869 - Compare the invoked method when possible in
SemanticallyEqual
. #1871 - fix: bump connect timeout from 1 second to 3 seconds for gradle wrapper validation call. by @natedanner in #1874
- Fix
RemoteArchive.getInputStream()
to work with both Unix and Window style file paths - UseLambdaForFunctionalInterface does not type attribute generated lambdas correctly. #1823
- ReplaceLambdaWithMethodReference should replace methods other than System.out#println #1836
- JavaTemplate can take a fully qualified name that has no package 64037e7
- Parsing Enums having more than one value adds non-whitespace characters inside of whitespace. #1807
- ExplicitLambdaArgumentTypes should create correctly-formed type expressions #1839
UseLambdaForFunctionalInterface
Don't convert anonymous classes to lambdas when they usethis
. f085326UseLambdaForFunctionalInterface
Don't replace anonymous classes that shadow local variables. 2e22456- Results should correctly handle adding/deleting files when generating diff #1854
CategoryTree.getRecipes()
not showing recipes from subcategories, a behavior inconsistent withgetRecipeCount()
and its other methods 544a1ef- TypeUtils.isOfType should return true after all of the parameters have been evaluated. #1857
New Contributors
- @nmck257 made their first contribution in #1851
- @natedanner made their first contribution in #1874
Full Changelog: v7.23.0...v7.24.0