Skip to content

Commit 58c6f7c

Browse files
Map.retain handle functions and partial functions
1 parent e738da5 commit 58c6f7c

File tree

4 files changed

+24
-11
lines changed

4 files changed

+24
-11
lines changed

scalafix/input/src/main/scala/fix/MethodRenames.scala renamed to scalafix/input/src/main/scala/fix/RetainSrc.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package fix
55

66
import scala.collection.mutable.Map
77

8-
object MethodRenames {
9-
Map(1 -> 1).retain{ case (x, y) => true }
8+
class MethodRenames(xs: Map[Int, Int]) {
9+
xs.retain((_, _) => true)
10+
xs.retain{case (x, y) => true}
1011
}

scalafix/output/src/main/scala/fix/MethodRenames.scala

Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package fix
2+
3+
import scala.collection.mutable.Map
4+
5+
class MethodRenames(xs: Map[Int, Int]) {
6+
xs.filterInPlace{case (_, _) => true}
7+
xs.filterInPlace{case (x, y) => true}
8+
}

scalafix/rules/src/main/scala/fix/Scalacollectioncompat_NewCollections.scala

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,19 @@ case class Scalacollectioncompat_NewCollections(index: SemanticdbIndex)
3737

3838
def replaceMutableMap(ctx: RuleCtx) =
3939
ctx.tree.collect {
40-
case retain(t: Name) =>
41-
ctx.replaceTree(t, "filterInPlace")
40+
case Term.Apply(Term.Select(_, retain(n: Name)), List(_: Term.PartialFunction)) =>
41+
ctx.replaceTree(n, "filterInPlace")
42+
43+
case Term.Apply(Term.Select(_, retain(n: Name)), List(_: Term.Function)) =>
44+
(for {
45+
name <- n.tokens.lastOption
46+
open <- ctx.tokenList.find(name)(t => t.is[Token.LeftParen])
47+
close <- ctx.matchingParens.close(open.asInstanceOf[Token.LeftParen])
48+
} yield
49+
ctx.replaceToken(open, "{case ") +
50+
ctx.replaceToken(close, "}") +
51+
ctx.replaceTree(n, "filterInPlace")
52+
).asPatch
4253
}.asPatch
4354

4455
def replaceToList(ctx: RuleCtx) =

0 commit comments

Comments
 (0)