Skip to content

Commit 77bb43f

Browse files
Rewrite JavaConversions => JavaConverters (fix #92)
1 parent e6ba9c9 commit 77bb43f

File tree

9 files changed

+798
-3
lines changed

9 files changed

+798
-3
lines changed

build.sbt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,14 @@ lazy val sharedScalafixSettings = Seq(
8787
)
8888
)
8989

90+
// common part between input/output
91+
lazy val scalafixData = project
92+
.in(file("scalafix/data"))
93+
.settings(sharedScalafixSettings)
94+
.settings(dontPublish)
95+
.settings(scalaVersion := scalafixScala212)
96+
.dependsOn(compatJVM)
97+
9098
lazy val scalafixInput = project
9199
.in(file("scalafix/input"))
92100
.settings(sharedScalafixSettings)
@@ -95,14 +103,14 @@ lazy val scalafixInput = project
95103
scalaVersion := scalafixScala212,
96104
scalafixSourceroot := sourceDirectory.in(Compile).value
97105
)
98-
.dependsOn(compatJVM)
106+
.dependsOn(compatJVM, scalafixData)
99107

100108
lazy val scalafixOutput212 = project
101109
.in(file("scalafix/output212"))
102110
.settings(sharedScalafixSettings)
103111
.settings(scalaVersion := scalafixScala212)
104112
.settings(dontPublish)
105-
.dependsOn(compatJVM)
113+
.dependsOn(compatJVM, scalafixData)
106114

107115
lazy val scalafixOutput213 = project
108116
.in(file("scalafix/output213"))
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package fix.conversions
2+
3+
import scala.collection.{immutable => i, mutable => m, concurrent => conc}
4+
import java.{ lang => jl, util => ju }, java.util.{ concurrent => juc }
5+
6+
trait JavaConversionsDataSrc {
7+
val iterable = List(1).toIterable
8+
val concMap: conc.Map[Int, Int] = ???
9+
val juIterator : ju.Iterator[Int] = ???
10+
val juEnumeration : ju.Enumeration[Int] = ???
11+
val jlIterable : jl.Iterable[Int] = ???
12+
val juCollection : ju.Collection[Int] = ???
13+
val juList : ju.List[Int] = ???
14+
val juSet : ju.Set[Int] = ???
15+
val juMap : ju.Map[Int, Int] = ???
16+
val jucConcurrentMap : juc.ConcurrentMap[Int, Int] = ???
17+
val juDictionary : ju.Dictionary[Int, Int] = ???
18+
val juProperties : ju.Properties = ???
19+
}
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
/*
2+
rule = "scala:fix.CrossCompat"
3+
*/
4+
package fix.conversions
5+
6+
import scala.collection.{immutable => i, mutable => m, concurrent => conc}
7+
import java.{ lang => jl, util => ju }, java.util.{ concurrent => juc }
8+
import scala.collection.JavaConversions._
9+
10+
object JavaConversionsExplicitCallSrc extends JavaConversionsDataSrc {
11+
12+
// ### Scala => Java ###
13+
14+
// asJavaIterator
15+
asJavaIterator(Iterator(1)): ju.Iterator[Int]
16+
17+
// asJavaEnumeration
18+
asJavaEnumeration(Iterator(1)): ju.Enumeration[Int]
19+
20+
// asJavaIterable
21+
asJavaIterable(iterable): jl.Iterable[Int]
22+
23+
// asJavaCollection
24+
asJavaCollection(iterable): ju.Collection[Int]
25+
26+
// bufferAsJavaList
27+
bufferAsJavaList(m.Buffer(1)): ju.List[Int]
28+
29+
// mutableSeqAsJavaList
30+
mutableSeqAsJavaList(m.Seq(1)): ju.List[Int]
31+
32+
// seqAsJavaList
33+
seqAsJavaList(Seq(1)): ju.List[Int]
34+
35+
// mutableSetAsJavaSet
36+
mutableSetAsJavaSet(m.Set(1)): ju.Set[Int]
37+
38+
// setAsJavaSet
39+
setAsJavaSet(Set(1)): ju.Set[Int]
40+
41+
// mutableMapAsJavaMap
42+
mutableMapAsJavaMap(m.Map(1 -> 1)): ju.Map[Int, Int]
43+
44+
// asJavaDictionary
45+
asJavaDictionary(m.Map(1 -> 1)): ju.Dictionary[Int, Int]
46+
47+
// mapAsJavaMap
48+
mapAsJavaMap(m.Map(1 -> 1)): ju.Map[Int, Int]
49+
50+
// mapAsJavaConcurrentMap
51+
mapAsJavaConcurrentMap(concMap): juc.ConcurrentMap[Int, Int]
52+
53+
54+
// ### Java => Scala ###
55+
56+
// asScalaIterator
57+
asScalaIterator(juIterator): Iterator[Int]
58+
59+
// enumerationAsScalaIterator
60+
enumerationAsScalaIterator(juEnumeration): Iterator[Int]
61+
62+
// iterableAsScalaIterable
63+
iterableAsScalaIterable(jlIterable): Iterable[Int]
64+
65+
// collectionAsScalaIterable
66+
collectionAsScalaIterable(juCollection): Iterable[Int]
67+
68+
// asScalaBuffer
69+
asScalaBuffer(juList): m.Buffer[Int]
70+
71+
// asScalaSet
72+
asScalaSet(juSet): m.Set[Int]
73+
74+
// mapAsScalaMap
75+
mapAsScalaMap(juMap): m.Map[Int, Int]
76+
77+
// mapAsScalaConcurrentMap
78+
mapAsScalaConcurrentMap(jucConcurrentMap): conc.Map[Int, Int]
79+
80+
// dictionaryAsScalaMap
81+
dictionaryAsScalaMap(juDictionary): m.Map[Int, Int]
82+
83+
// propertiesAsScalaMap
84+
propertiesAsScalaMap(juProperties): m.Map[String, String]
85+
}
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
/*
2+
rule = "scala:fix.CrossCompat"
3+
*/
4+
package fix.conversions
5+
6+
import scala.collection.{immutable => i, mutable => m, concurrent => conc}
7+
import java.{ lang => jl, util => ju }, java.util.{ concurrent => juc }
8+
import scala.collection.JavaConversions._
9+
10+
object JavaConversionsGlobalImportSrc extends JavaConversionsDataSrc {
11+
12+
// ### Scala => Java ###
13+
14+
// asJavaIterator
15+
Iterator(1): ju.Iterator[Int]
16+
17+
// asJavaEnumeration
18+
Iterator(1): ju.Enumeration[Int]
19+
20+
// ambigous: asJavaIterable
21+
// iterable: jl.Iterable[Int]
22+
23+
// asJavaCollection
24+
iterable: ju.Collection[Int]
25+
26+
// bufferAsJavaList
27+
m.Buffer(1): ju.List[Int]
28+
29+
// mutableSeqAsJavaList
30+
m.Seq(1): ju.List[Int]
31+
32+
// seqAsJavaList
33+
Seq(1): ju.List[Int]
34+
35+
// mutableSetAsJavaSet
36+
m.Set(1): ju.Set[Int]
37+
38+
// setAsJavaSet
39+
Set(1): ju.Set[Int]
40+
41+
// mutableMapAsJavaMap
42+
m.Map(1 -> 1): ju.Map[Int, Int]
43+
44+
// asJavaDictionary
45+
m.Map(1 -> 1): ju.Dictionary[Int, Int]
46+
47+
// mapAsJavaMap
48+
m.Map(1 -> 1): ju.Map[Int, Int]
49+
50+
// mapAsJavaConcurrentMap
51+
concMap: juc.ConcurrentMap[Int, Int]
52+
53+
54+
// ### Java => Scala ###
55+
56+
// asScalaIterator
57+
juIterator: Iterator[Int]
58+
59+
// enumerationAsScalaIterator
60+
juEnumeration: Iterator[Int]
61+
62+
// iterableAsScalaIterable
63+
jlIterable: Iterable[Int]
64+
65+
// collectionAsScalaIterable
66+
juCollection: Iterable[Int]
67+
68+
// asScalaBuffer
69+
juList: m.Buffer[Int]
70+
71+
// asScalaSet
72+
juSet: m.Set[Int]
73+
74+
// mapAsScalaMap
75+
juMap: m.Map[Int, Int]
76+
77+
// mapAsScalaConcurrentMap
78+
jucConcurrentMap: conc.Map[Int, Int]
79+
80+
// dictionaryAsScalaMap
81+
juDictionary: m.Map[Int, Int]
82+
83+
// propertiesAsScalaMap
84+
juProperties: m.Map[String, String]
85+
}
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
/*
2+
rule = "scala:fix.CrossCompat"
3+
*/
4+
package fix.conversions
5+
6+
import scala.collection.{immutable => i, mutable => m, concurrent => conc}
7+
import java.{ lang => jl, util => ju }, java.util.{ concurrent => juc }
8+
import scala.collection.JavaConversions
9+
10+
object JavaConversionsSpecificImportSrc extends JavaConversionsDataSrc {
11+
12+
// ### Scala => Java ###
13+
14+
// asJavaIterator
15+
{
16+
import JavaConversions.asJavaIterator
17+
Iterator(1): ju.Iterator[Int]
18+
}
19+
20+
// asJavaEnumeration
21+
{
22+
import JavaConversions.asJavaEnumeration
23+
Iterator(1): ju.Enumeration[Int]
24+
}
25+
26+
// asJavaIterable
27+
{
28+
import JavaConversions.asJavaIterable
29+
iterable: jl.Iterable[Int]
30+
}
31+
32+
// asJavaCollection
33+
{
34+
import JavaConversions.asJavaCollection
35+
iterable: ju.Collection[Int]
36+
}
37+
38+
// bufferAsJavaList
39+
{
40+
import JavaConversions.bufferAsJavaList
41+
m.Buffer(1): ju.List[Int]
42+
}
43+
44+
// mutableSeqAsJavaList
45+
{
46+
import JavaConversions.mutableSeqAsJavaList
47+
m.Seq(1): ju.List[Int]
48+
}
49+
50+
// seqAsJavaList
51+
{
52+
import JavaConversions.seqAsJavaList
53+
Seq(1): ju.List[Int]
54+
}
55+
56+
// mutableSetAsJavaSet
57+
{
58+
import JavaConversions.mutableSetAsJavaSet
59+
m.Set(1): ju.Set[Int]
60+
}
61+
62+
// setAsJavaSet
63+
{
64+
import JavaConversions.setAsJavaSet
65+
Set(1): ju.Set[Int]
66+
}
67+
68+
// mutableMapAsJavaMap
69+
{
70+
import JavaConversions.mutableMapAsJavaMap
71+
m.Map(1 -> 1): ju.Map[Int, Int]
72+
}
73+
74+
// asJavaDictionary
75+
{
76+
import JavaConversions.asJavaDictionary
77+
m.Map(1 -> 1): ju.Dictionary[Int, Int]
78+
}
79+
80+
// mapAsJavaMap
81+
{
82+
import JavaConversions.mapAsJavaMap
83+
m.Map(1 -> 1): ju.Map[Int, Int]
84+
}
85+
86+
// mapAsJavaConcurrentMap
87+
{
88+
import JavaConversions.mapAsJavaConcurrentMap
89+
concMap: juc.ConcurrentMap[Int, Int]
90+
}
91+
92+
93+
// ### Java => Scala ###
94+
95+
// asScalaIterator
96+
{
97+
import JavaConversions.asScalaIterator
98+
juIterator: Iterator[Int]
99+
}
100+
101+
// enumerationAsScalaIterator
102+
{
103+
import JavaConversions.enumerationAsScalaIterator
104+
juEnumeration: Iterator[Int]
105+
}
106+
107+
// iterableAsScalaIterable
108+
{
109+
import JavaConversions.iterableAsScalaIterable
110+
jlIterable: Iterable[Int]
111+
}
112+
113+
// collectionAsScalaIterable
114+
{
115+
import JavaConversions.collectionAsScalaIterable
116+
juCollection: Iterable[Int]
117+
}
118+
119+
// asScalaBuffer
120+
{
121+
import JavaConversions.asScalaBuffer
122+
juList: m.Buffer[Int]
123+
}
124+
125+
// asScalaSet
126+
{
127+
import JavaConversions.asScalaSet
128+
juSet: m.Set[Int]
129+
}
130+
131+
// mapAsScalaMap
132+
{
133+
import JavaConversions.mapAsScalaMap
134+
juMap: m.Map[Int, Int]
135+
}
136+
137+
// mapAsScalaConcurrentMap
138+
{
139+
import JavaConversions.mapAsScalaConcurrentMap
140+
jucConcurrentMap: conc.Map[Int, Int]
141+
}
142+
143+
// dictionaryAsScalaMap
144+
{
145+
import JavaConversions.dictionaryAsScalaMap
146+
juDictionary: m.Map[Int, Int]
147+
}
148+
149+
// propertiesAsScalaMap
150+
{
151+
import JavaConversions.propertiesAsScalaMap
152+
juProperties: m.Map[String, String]
153+
}
154+
}

0 commit comments

Comments
 (0)