Skip to content

Releases: openrewrite/rewrite-static-analysis

2.38.0

Choose a tag to compare

@greg-at-moderne greg-at-moderne released this 01 Jul 06:00
6ed9dfd

What's Changed

  • Fix UseTryWithResources moving resource out of scope for catch block by @timtebeek in #921
  • Fix MinimumSwitchCases crash on Java 21 sealed-interface pattern switch by @timtebeek in #922
  • Fix RemoveUnusedPrivateMethods deleting methods called with raw collection arguments by @habiibullahm in #898
  • Add UseStringCaseInsensitiveOrder by @steve-aom-elliott in #923
  • Add 7 cross-language code quality recipes by @jkschneider in #853
  • Fix RemoveRedundantTypeCast removing cast that gives a var lambda its target type by @timtebeek in #925
  • Tests for Kotlin, Groovy, TS for cross-language code quality recipes by @greg-at-moderne in #928
  • Add RemoveUnreachableMultiCatchAlternative by @steve-aom-elliott in #926
  • Use unnamed variable for unused try-with-resources resource on Java 21+ by @timtebeek in #930

New Contributors

Full Changelog: v2.37.0...v2.38.0

2.37.0

Choose a tag to compare

@greg-at-moderne greg-at-moderne released this 17 Jun 09:01
3d2b173

What's Changed

  • Preserve raw supertype cast on parameterized argument in RemoveRedundantTypeCast by @timtebeek in #915
  • Preserve space when InstanceOfPatternMatch replaces a cast after a keyword by @timtebeek in #913
  • InstanceOfPatternMatch not to remove double primitive cast by @greg-at-moderne in #918
  • Fix UseDiamondOperator throwing array index out of bounds when operating on a varargs method by @sambsnyd in #919
  • Fix false positive in AnnotateNullableParameters when parameter der… by @stefanodallapalma in #868

Full Changelog: v2.36.0...v2.37.0

2.36.0

Choose a tag to compare

@greg-at-moderne greg-at-moderne released this 03 Jun 13:47

What's Changed

  • Guard instanceof to Class::isInstance conversion on lambda arity by @timtebeek in #903
  • Preserve cast on argument to overloaded method in RemoveRedundantTypeCast by @timtebeek in #904
  • Preserve raw cast on parameterized expression in RemoveRedundantTypeCast by @timtebeek in #905
  • Skip Python sources in CombineSemanticallyEqualCatchBlocks by @timtebeek in #908
  • Use receiver type for unbound instance method reference in ReplaceLambdaWithMethodReference by @timtebeek in #909
  • Regenerate recipes.csv by @timtebeek in #910
  • Retain load-bearing type witness in select position in UnnecessaryExplicitTypeArguments by @knutwannheden in #911

Full Changelog: v2.35.0...v2.36.0

2.35.0

Choose a tag to compare

@timtebeek timtebeek released this 21 May 10:35
03d153e

What's Changed

  • Document identity-semantics caveat on PrimitiveWrapperClassConstructorToValueOf by @timtebeek in #883
  • Skip FinalClass when class has anonymous inner subclasses by @timtebeek in #886
  • Skip ReplaceLambdaWithMethodReference for parameterized types with multiple constructors by @timtebeek in #887
  • Preserve null cast at varargs position in RemoveRedundantTypeCast by @timtebeek in #888
  • Retain explicit type arguments on no-arg static methods in UnnecessaryExplicitTypeArguments by @timtebeek in #889
  • Detect overloads on parameterized receiver in hasMethodOverloading by @timtebeek in #890
  • Preserve cast on generic method invocation in overloaded outer call by @timtebeek in #891
  • Guard cast to JavaType.Annotation in ReorderAnnotations by @timtebeek in #894
  • Strip diamond operator from cast in UseLambdaForFunctionalInterface by @timtebeek in #893
  • Replace var with interface type in UseLambdaForFunctionalInterface by @timtebeek in #896

Full Changelog: v2.34.1...v2.35.0

v2.34.1

Choose a tag to compare

@sambsnyd sambsnyd released this 07 May 01:21
7ba220a

What's Changed

  • OpenRewrite v8.81.6
  • Preserve statement order in UseTryWithResources by @timtebeek in #866
  • Skip meta-annotated @Configuration in FinalClass and HideUtilityClassConstructor by @timtebeek in #867
  • OpenRewrite recipe best practices by @timtebeek in #869
  • Revert to using rewrite-java-21 for test runtime by @timtebeek in #870
  • Preserve casts pinning generic-method return type in lambdas by @timtebeek in #872
  • Preserve (Object) bridge cast for unchecked generic casts by @timtebeek in #876
  • Skip Objects::nonNull/isNull when lambda parameter does not match by @timtebeek in #875
  • Regression tests for ReplaceStackWithDeque ControlFlow crashes by @knutwannheden in #879
  • Skip SimplifyConsecutiveAssignments when initializer would self-reference by @timtebeek in #882

Full Changelog: v2.34.0...v2.34.1

2.34.0

Choose a tag to compare

@Jenson3210 Jenson3210 released this 27 Apr 09:38
90e4a60

What's Changed

Full Changelog: v2.33.0...v2.34.0

2.33.1

Choose a tag to compare

@Jenson3210 Jenson3210 released this 23 Apr 10:05

Full Changelog: v2.33.0...v2.33.1

2.33.0

Choose a tag to compare

@greg-at-moderne greg-at-moderne released this 21 Apr 07:52

What's Changed

New Contributors

Full Changelog: v2.32.0...v2.33.0

2.32.0

Choose a tag to compare

@timtebeek timtebeek released this 08 Apr 12:57

What's Changed

Full Changelog: v2.31.0...v2.32.0

2.31.0

Choose a tag to compare

@greg-at-moderne greg-at-moderne released this 25 Mar 09:46
c82f961

What's Changed

  • Add InterruptedExceptionHandling recipe (RSPEC-S2142) by @timtebeek in #838
  • Add ExplicitThis recipe to make this. prefix explicit. by @motlin in #791
  • SimplifyBooleanExpression: skip nullable boolean comparisons in Kotlin by @timtebeek in #839

Full Changelog: v2.30.1...v2.31.0