Skip to content

Commit d4ea411

Browse files
olafurpgjulienrf
authored andcommitted
WIP
1 parent 632d1dc commit d4ea411

File tree

5 files changed

+52
-56
lines changed

5 files changed

+52
-56
lines changed

build.sbt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@ lazy val input = project.settings(
1717
scalafixSourceroot := sourceDirectory.in(Compile).value
1818
)
1919

20-
val collections = ProjectRef(file(".."), "collections")
21-
20+
//val collections = ProjectRef(file(".."), "collections")
21+
//
2222
lazy val output = project
2323
.settings(
24-
resolvers := resolvers.in(collections).value,
25-
libraryDependencies := libraryDependencies.in(collections).value,
26-
scalaVersion := scalaVersion.in(collections).value,
27-
scalaBinaryVersion := scalaBinaryVersion.in(collections).value
24+
// resolvers := resolvers.in(collections).value,
25+
// libraryDependencies := libraryDependencies.in(collections).value,
26+
// scalaVersion := scalaVersion.in(collections).value,
27+
// scalaBinaryVersion := scalaBinaryVersion.in(collections).value
2828
)
29-
.dependsOn(collections) // collections/publishLocal is still necessary.
29+
// .dependsOn(collections) // collections/publishLocal is still necessary.
3030

3131
lazy val tests = project
3232
.settings(

input/src/main/scala/fix/Collectionstrawman_v0.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*
1+
/* ONLY
22
rewrite = "scala:fix.Collectionstrawman_v0"
33
*/
44
package fix

input/src/main/scala/fix/ListTest.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* ONLY
1+
/*
22
rewrite = "scala:fix.Collectionstrawman_v0"
33
*/
44
package fix

output/src/main/scala/fix/Collectionstrawman_v0.scala

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package fix
22

3-
import scala.{ #:: => _, :: => _, List => _, Seq => _, Vector => _ }
4-
import scala.Predef.{ Map => _ }
5-
import strawman.collection.immutable.{ HashMap, LazyList, List, Map, Nil, Vector }
6-
import strawman.collection.immutable.LazyList.#::
3+
import strawman.collection.{ arrayToArrayOps, stringToStringOps }
4+
import strawman.collection.immutable.{ #::, ::, HashMap, LazyList, List, Map, Nil, Vector }
75
import strawman.collection.mutable.ArrayBuffer
86
object Collectionstrawman_v0_List {
97
List(1, 2, 3)
Lines changed: 41 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,65 @@
11
package fix
22
// scalafmt: { maxColumn = 120 }
33

4+
import scala.collection.JavaConverters._
45
import scalafix._
56
import scalafix.syntax._
67
import scalafix.internal.util.SymbolOps
78
import scala.meta._
9+
import org.scalameta.logger
810

911
case class Collectionstrawman_v0(mirror: SemanticCtx) extends SemanticRewrite(mirror) {
1012
val immutableListSymbol = Symbol("_root_.scala.collection.immutable.List.")
11-
val unimports = Set(
12-
Symbol("_root_.scala.List."),
13-
Symbol("_root_.scala.Seq."),
14-
Symbol("_root_.scala.Vector."),
15-
Symbol("_root_.scala.`::`."),
16-
Symbol("_root_.scala.`#::`."),
17-
Symbol("_root_.scala.Predef.Map."),
18-
Symbol("_root_.scala.Predef.augmentStrugming."),
19-
Symbol("_root_.scala.Predef.intArrayOps.")
13+
val unimports = Map(
14+
Symbol("_root_.scala.Predef.augmentString.") ->
15+
Symbol("_root_.strawman.collection.stringToStringOps."),
16+
Symbol("_root_.scala.Predef.intArrayOps.") ->
17+
Symbol("_root_.strawman.collection.arrayToArrayOps.")
2018
)
2119

2220
def ifSymbolFound(ctx: RewriteCtx): Patch = {
23-
val toUnimport = ctx.mirror.database.names.flatMap { r =>
24-
val norm = r.sym.normalized
25-
if (unimports.contains(norm)) norm :: Nil
26-
else Nil
27-
}
28-
val unimportss = toUnimport.toList.distinct.flatMap { sym =>
29-
SymbolOps.toImporter(sym).toList.collect {
30-
case Importer(qual, Importee.Name(n) :: Nil) =>
31-
Importer(qual, Importee.Unimport(n) :: Nil)
32-
}
33-
}
34-
val grouped = unimportss.groupBy(_.ref.syntax).collect {
35-
case (qual, iss @ is :: _) =>
36-
val names = iss.collect { case Importer(_, name :: Nil) => name }
37-
Importer(is.ref, names)
38-
}
39-
grouped.map(ctx.addGlobalImport(_)).asPatch
21+
logger.elem(ctx.mirror.names)
22+
val toImport = ctx.mirror.names
23+
.flatMap(r =>
24+
unimports.get {
25+
val x = r.sym.normalized
26+
logger.elem(x)
27+
x
28+
})
29+
.map(ctx.addGlobalImport)
30+
toImport.asPatch
4031
}
4132

4233
def rewrite(ctx: RewriteCtx): Patch = {
4334
def p(name: String) =
4435
s"scala.Predef.$name" -> s"strawman.collection.immutable.$name"
45-
def s(name: String) =
46-
s"scala.$name" -> s"strawman.collection.immutable.$name"
36+
def s(name: String, rename: Option[String] = None) =
37+
s"scala.$name" -> s"strawman.collection.immutable.${rename.getOrElse(name)}"
4738
def i(name: String) =
4839
s"scala.collection.immutable.$name" -> s"strawman.collection.immutable.$name"
4940
def m(name: String) =
5041
s"scala.collection.mutable.$name" -> s"strawman.collection.mutable.$name"
51-
// ifSymbolFound(ctx) +
52-
ctx.replaceSymbols(
53-
i("HashMap"),
54-
i("Map"),
55-
p("Map"),
56-
s("List"),
57-
i("List"),
58-
s("Nil"),
59-
i("Nil"),
60-
s("Stream"),
61-
s("`#::`"),
62-
s("Vector"),
63-
i("Vector"),
64-
m("ArrayBuffer")
65-
)
42+
ifSymbolFound(ctx) +
43+
ctx.replaceSymbols(
44+
i("HashMap"),
45+
i("Map"),
46+
p("Map"),
47+
s("List"),
48+
i("List"),
49+
s("Nil"),
50+
i("Nil"),
51+
s("`::`"),
52+
i("`::`"),
53+
s("`+:`"),
54+
i("`+:`"),
55+
s("`:+`"),
56+
i("`:+`"),
57+
s("Stream", Some("LazyList")),
58+
s("`#::`"),
59+
s("`#::`"),
60+
s("Vector"),
61+
i("Vector"),
62+
m("ArrayBuffer")
63+
)
6664
}
6765
}

0 commit comments

Comments
 (0)