diff --git a/.circleci/config.yml b/.circleci/config.yml index 77a036b..287f770 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,8 +1,8 @@ version: 2.1 orbs: - codacy: codacy/base@12.2.0 - codacy_plugins_test: codacy/plugins-test@1.1.1 + codacy: codacy/base@13.1.1 + codacy_plugins_test: codacy/plugins-test@2.1.2 workflows: version: 2 diff --git a/build.sbt b/build.sbt index 8737a78..50fd7f7 100644 --- a/build.sbt +++ b/build.sbt @@ -104,7 +104,7 @@ val dockerUser = "docker" daemonUser in Docker := dockerUser -dockerBaseImage := "amazoncorretto:8-alpine3.14-jre" +dockerBaseImage := "amazoncorretto:8-alpine3.24-jre" dockerCommands := dockerCommands.value.flatMap { case cmd @ Cmd("ADD", _) => diff --git a/patterns-base/src/main/scala/codacy/patterns/Custom_Scala_LowerCasePatternMatching.scala b/patterns-base/src/main/scala/codacy/patterns/Custom_Scala_LowerCasePatternMatching.scala index aa5f8aa..6e46c62 100644 --- a/patterns-base/src/main/scala/codacy/patterns/Custom_Scala_LowerCasePatternMatching.scala +++ b/patterns-base/src/main/scala/codacy/patterns/Custom_Scala_LowerCasePatternMatching.scala @@ -14,11 +14,15 @@ case object Custom_Scala_LowerCasePatternMatching extends Pattern { } private[this] def isOffender(tree: Tree, pat: Pat) = { - !hasDeclaredType(pat) && !isCaseFromCollect(tree) && !isCaseFromPartialFunction(tree) && isLowerCase(pat) + !hasDeclaredType(pat) && + !isCaseFromCollect(tree) && + !isCaseFromPartialFunction(tree) && + !isCaseFromCatch(tree) && + isLowerCase(pat) } private[this] def isPartialApplication(tpe: Term.Name) = tpe.toString match { - case "orElse" | "andThen" => true + case "orElse" | "andThen" | "recover" | "recoverWith" => true case _ => false } @@ -55,5 +59,12 @@ case object Custom_Scala_LowerCasePatternMatching extends Pattern { pat.collect { case t @ p"$expr: $tpe" => t }.nonEmpty } + private[this] def isCaseFromCatch(tree: Tree): Boolean = { + tree.parent.exists { + case t: Term.Try => t.catchp.exists(_ == tree) + case _ => false + } +} + private[this] def message(tree: Tree) = Message("Lower case pattern matching.") } diff --git a/project/Dependencies.scala b/project/Dependencies.scala index eb51daa..a6c9c71 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -4,7 +4,7 @@ object Dependencies { val scalaV = "2.12.20" val betterFiles = "com.github.pathikrit" %% "better-files" % "3.8.0" - val codacyEngine = "com.codacy" %% "codacy-engine-scala-seed" % "5.0.2" + val codacyEngine = "com.codacy" %% "codacy-engine-scala-seed" % "6.1.4" val scalaReflect = "org.scala-lang" % "scala-reflect" % scalaV }