Skip to content

Commit aaa6ec1

Browse files
committed
Rename scala.runtime.{Tuple => Tuples}
To avoid confusion with scala.Tuple. Part of #10602.
1 parent 1405778 commit aaa6ec1

File tree

18 files changed

+872
-69
lines changed

18 files changed

+872
-69
lines changed

bench-run/src/main/scala/dotty/tools/benchmarks/tuples/Apply.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class Apply {
2121

2222
@Benchmark
2323
def tupleApply(): Any = {
24-
runtime.Tuple.apply(tuple, index)
24+
runtime.Tuples.apply(tuple, index)
2525
}
2626

2727
@Benchmark

bench-run/src/main/scala/dotty/tools/benchmarks/tuples/Concat.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,6 @@ class Concat {
2727

2828
@Benchmark
2929
def tupleConcat(): Tuple = {
30-
runtime.Tuple.concat(tuple1, tuple2)
30+
runtime.Tuples.concat(tuple1, tuple2)
3131
}
3232
}

bench-run/src/main/scala/dotty/tools/benchmarks/tuples/Cons.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class Cons {
2323

2424
@Benchmark
2525
def tupleCons(): Tuple = {
26-
runtime.Tuple.cons("elem", tuple)
26+
runtime.Tuples.cons("elem", tuple)
2727
}
2828

2929
@Benchmark

bench-run/src/main/scala/dotty/tools/benchmarks/tuples/Conversions.scala

+5-5
Original file line numberDiff line numberDiff line change
@@ -23,27 +23,27 @@ class Conversions {
2323

2424
@Benchmark
2525
def tupleToArray(): Array[Object] = {
26-
runtime.Tuple.toArray(tuple)
26+
runtime.Tuples.toArray(tuple)
2727
}
2828

2929
@Benchmark
3030
def tupleToIArray(): IArray[Object] = {
31-
runtime.Tuple.toIArray(tuple)
31+
runtime.Tuples.toIArray(tuple)
3232
}
3333

3434
@Benchmark
3535
def tupleFromArray(): Tuple = {
36-
runtime.Tuple.fromArray(array)
36+
runtime.Tuples.fromArray(array)
3737
}
3838

3939
@Benchmark
4040
def tupleFromIArray(): Tuple = {
41-
runtime.Tuple.fromIArray(iarray)
41+
runtime.Tuples.fromIArray(iarray)
4242
}
4343

4444
@Benchmark
4545
def productToArray(): Array[Object] = {
46-
runtime.Tuple.productToArray(tuple.asInstanceOf[Product])
46+
runtime.Tuples.productToArray(tuple.asInstanceOf[Product])
4747
}
4848

4949
@Benchmark

bench-run/src/main/scala/dotty/tools/benchmarks/tuples/Map.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class Map {
2929

3030
@Benchmark
3131
def tupleMap(): Tuple = {
32-
runtime.Tuple.map[Id](tuple, [T] => (x:T) => x.asInstanceOf[String].updated(0, 'a').asInstanceOf[T])
32+
runtime.Tuples.map[Id](tuple, [T] => (x:T) => x.asInstanceOf[String].updated(0, 'a').asInstanceOf[T])
3333
}
3434

3535
@Benchmark

bench-run/src/main/scala/dotty/tools/benchmarks/tuples/Tail.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class Tail {
2121

2222
@Benchmark
2323
def tupleTail(): Tuple = {
24-
runtime.Tuple.tail(tuple)
24+
runtime.Tuples.tail(tuple)
2525
}
2626

2727
@Benchmark

bench-run/src/main/scala/dotty/tools/benchmarks/tuples/Zip.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class Zip {
2727

2828
@Benchmark
2929
def tupleZip(): Tuple = {
30-
runtime.Tuple.zip(tuple1, tuple2)
30+
runtime.Tuples.zip(tuple1, tuple2)
3131
}
3232

3333
@Benchmark

bench-run/src/main/scala/tuples/Drop.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class Drop {
2323

2424
@Benchmark
2525
def tupleDrop(): Tuple = {
26-
runtime.Tuple.drop(tuple, half)
26+
runtime.Tuples.drop(tuple, half)
2727
}
2828

2929
@Benchmark

bench-run/src/main/scala/tuples/Split.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class Split {
2323

2424
@Benchmark
2525
def tupleSplit(): (Tuple, Tuple) = {
26-
runtime.Tuple.splitAt(tuple, half)
26+
runtime.Tuples.splitAt(tuple, half)
2727
}
2828

2929
@Benchmark

bench-run/src/main/scala/tuples/Take.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class Take {
2323

2424
@Benchmark
2525
def tupleTake(): Tuple = {
26-
runtime.Tuple.take(tuple, half)
26+
runtime.Tuples.take(tuple, half)
2727
}
2828

2929
@Benchmark

compiler/src/dotty/tools/dotc/core/Definitions.scala

+14-14
Original file line numberDiff line numberDiff line change
@@ -867,20 +867,20 @@ class Definitions {
867867

868868
def TupleXXL_fromIterator(using Context): Symbol = TupleXXLModule.requiredMethod("fromIterator")
869869

870-
@tu lazy val RuntimeTupleModule: Symbol = requiredModule("scala.runtime.Tuple")
871-
@tu lazy val RuntimeTupleModuleClass: Symbol = RuntimeTupleModule.moduleClass
872-
lazy val RuntimeTuple_consIterator: Symbol = RuntimeTupleModule.requiredMethod("consIterator")
873-
lazy val RuntimeTuple_concatIterator: Symbol = RuntimeTupleModule.requiredMethod("concatIterator")
874-
lazy val RuntimeTuple_apply: Symbol = RuntimeTupleModule.requiredMethod("apply")
875-
lazy val RuntimeTuple_cons: Symbol = RuntimeTupleModule.requiredMethod("cons")
876-
lazy val RuntimeTuple_size: Symbol = RuntimeTupleModule.requiredMethod("size")
877-
lazy val RuntimeTuple_tail: Symbol = RuntimeTupleModule.requiredMethod("tail")
878-
lazy val RuntimeTuple_concat: Symbol = RuntimeTupleModule.requiredMethod("concat")
879-
lazy val RuntimeTuple_toArray: Symbol = RuntimeTupleModule.requiredMethod("toArray")
880-
lazy val RuntimeTuple_productToArray: Symbol = RuntimeTupleModule.requiredMethod("productToArray")
881-
lazy val RuntimeTuple_isInstanceOfTuple: Symbol = RuntimeTupleModule.requiredMethod("isInstanceOfTuple")
882-
lazy val RuntimeTuple_isInstanceOfEmptyTuple: Symbol = RuntimeTupleModule.requiredMethod("isInstanceOfEmptyTuple")
883-
lazy val RuntimeTuple_isInstanceOfNonEmptyTuple: Symbol = RuntimeTupleModule.requiredMethod("isInstanceOfNonEmptyTuple")
870+
@tu lazy val RuntimeTuplesModule: Symbol = requiredModule("scala.runtime.Tuples")
871+
@tu lazy val RuntimeTuplesModuleClass: Symbol = RuntimeTuplesModule.moduleClass
872+
lazy val RuntimeTuples_consIterator: Symbol = RuntimeTuplesModule.requiredMethod("consIterator")
873+
lazy val RuntimeTuples_concatIterator: Symbol = RuntimeTuplesModule.requiredMethod("concatIterator")
874+
lazy val RuntimeTuples_apply: Symbol = RuntimeTuplesModule.requiredMethod("apply")
875+
lazy val RuntimeTuples_cons: Symbol = RuntimeTuplesModule.requiredMethod("cons")
876+
lazy val RuntimeTuples_size: Symbol = RuntimeTuplesModule.requiredMethod("size")
877+
lazy val RuntimeTuples_tail: Symbol = RuntimeTuplesModule.requiredMethod("tail")
878+
lazy val RuntimeTuples_concat: Symbol = RuntimeTuplesModule.requiredMethod("concat")
879+
lazy val RuntimeTuples_toArray: Symbol = RuntimeTuplesModule.requiredMethod("toArray")
880+
lazy val RuntimeTuples_productToArray: Symbol = RuntimeTuplesModule.requiredMethod("productToArray")
881+
lazy val RuntimeTuples_isInstanceOfTuple: Symbol = RuntimeTuplesModule.requiredMethod("isInstanceOfTuple")
882+
lazy val RuntimeTuples_isInstanceOfEmptyTuple: Symbol = RuntimeTuplesModule.requiredMethod("isInstanceOfEmptyTuple")
883+
lazy val RuntimeTuples_isInstanceOfNonEmptyTuple: Symbol = RuntimeTuplesModule.requiredMethod("isInstanceOfNonEmptyTuple")
884884

885885
// Annotation base classes
886886
@tu lazy val AnnotationClass: ClassSymbol = requiredClass("scala.annotation.Annotation")

compiler/src/dotty/tools/dotc/transform/TupleOptimizations.scala

+16-16
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ class TupleOptimizations extends MiniPhase with IdentityDenotTransformer {
2424
def phaseName: String = "genericTuples"
2525

2626
override def transformApply(tree: tpd.Apply)(using Context): tpd.Tree =
27-
if (!tree.symbol.exists || tree.symbol.owner != defn.RuntimeTupleModuleClass) tree
28-
else if (tree.symbol == defn.RuntimeTuple_cons) transformTupleCons(tree)
29-
else if (tree.symbol == defn.RuntimeTuple_tail) transformTupleTail(tree)
30-
else if (tree.symbol == defn.RuntimeTuple_size) transformTupleSize(tree)
31-
else if (tree.symbol == defn.RuntimeTuple_concat) transformTupleConcat(tree)
32-
else if (tree.symbol == defn.RuntimeTuple_apply) transformTupleApply(tree)
33-
else if (tree.symbol == defn.RuntimeTuple_toArray) transformTupleToArray(tree)
27+
if (!tree.symbol.exists || tree.symbol.owner != defn.RuntimeTuplesModuleClass) tree
28+
else if (tree.symbol == defn.RuntimeTuples_cons) transformTupleCons(tree)
29+
else if (tree.symbol == defn.RuntimeTuples_tail) transformTupleTail(tree)
30+
else if (tree.symbol == defn.RuntimeTuples_size) transformTupleSize(tree)
31+
else if (tree.symbol == defn.RuntimeTuples_concat) transformTupleConcat(tree)
32+
else if (tree.symbol == defn.RuntimeTuples_apply) transformTupleApply(tree)
33+
else if (tree.symbol == defn.RuntimeTuples_toArray) transformTupleToArray(tree)
3434
else tree
3535

3636
private def transformTupleCons(tree: tpd.Apply)(using Context): Tree = {
@@ -49,14 +49,14 @@ class TupleOptimizations extends MiniPhase with IdentityDenotTransformer {
4949
else {
5050
// val it = Iterator.single(head) ++ tail.asInstanceOf[Product].productIterator
5151
// TupleN+1(it.next(), ..., it.next())
52-
val fullIterator = ref(defn.RuntimeTuple_consIterator).appliedToArgs(head :: tail :: Nil)
52+
val fullIterator = ref(defn.RuntimeTuples_consIterator).appliedToArgs(head :: tail :: Nil)
5353
evalOnce(fullIterator) { it =>
5454
knownTupleFromIterator(tpes.length, it).asInstance(tree.tpe)
5555
}
5656
}
5757
case _ =>
5858
// No optimization, keep:
59-
// scala.runtime.Tuple.cons(tail, head)
59+
// scala.runtime.Tuples.cons(tail, head)
6060
tree
6161
}
6262
}
@@ -93,7 +93,7 @@ class TupleOptimizations extends MiniPhase with IdentityDenotTransformer {
9393
tup.asInstance(defn.TupleXXLClass.typeRef).select("tailXXL".toTermName)
9494
case None =>
9595
// No optimization, keep:
96-
// scala.runtime.Tuple.tail(tup)
96+
// scala.runtime.Tuples.tail(tup)
9797
tree
9898
}
9999
}
@@ -127,14 +127,14 @@ class TupleOptimizations extends MiniPhase with IdentityDenotTransformer {
127127
else {
128128
// val it = self.asInstanceOf[Product].productIterator ++ that.asInstanceOf[Product].productIterator
129129
// TupleN+M(it.next(), ..., it.next())
130-
val fullIterator = ref(defn.RuntimeTuple_concatIterator).appliedToArgs(tree.args)
130+
val fullIterator = ref(defn.RuntimeTuples_concatIterator).appliedToArgs(tree.args)
131131
evalOnce(fullIterator) { it =>
132132
knownTupleFromIterator(n + m, it).asInstance(tree.tpe)
133133
}
134134
}
135135
case _ =>
136136
// No optimization, keep:
137-
// scala.runtime.Tuple.cons(self, that)
137+
// scala.runtime.Tuples.cons(self, that)
138138
tree
139139
}
140140
}
@@ -161,7 +161,7 @@ class TupleOptimizations extends MiniPhase with IdentityDenotTransformer {
161161
tree
162162
case _ =>
163163
// No optimization, keep:
164-
// scala.runtime.Tuple.apply(tup, n)
164+
// scala.runtime.Tuples.apply(tup, n)
165165
tree
166166
}
167167
}
@@ -175,14 +175,14 @@ class TupleOptimizations extends MiniPhase with IdentityDenotTransformer {
175175
// Array.emptyObjectArray
176176
ref(defn.ArrayModule).select("emptyObjectArray".toTermName).ensureApplied
177177
else if (size <= MaxTupleArity)
178-
// scala.runtime.Tuple.productToArray(tup.asInstanceOf[Product])
179-
ref(defn.RuntimeTuple_productToArray).appliedTo(tup.asInstance(defn.ProductClass.typeRef))
178+
// scala.runtime.Tuples.productToArray(tup.asInstanceOf[Product])
179+
ref(defn.RuntimeTuples_productToArray).appliedTo(tup.asInstance(defn.ProductClass.typeRef))
180180
else
181181
// tup.asInstanceOf[TupleXXL].elems.clone()
182182
tup.asInstance(defn.TupleXXLClass.typeRef).select(nme.toArray)
183183
case None =>
184184
// No optimization, keep:
185-
// scala.runtime.Tuple.toArray(tup)
185+
// scala.runtime.Tuples.toArray(tup)
186186
tree
187187
}
188188
}

compiler/src/dotty/tools/dotc/transform/TypeTestsCasts.scala

+8-8
Original file line numberDiff line numberDiff line change
@@ -311,17 +311,17 @@ object TypeTestsCasts {
311311
*
312312
* expr.isInstanceOf[A | B] ~~> expr.isInstanceOf[A] | expr.isInstanceOf[B]
313313
* expr.isInstanceOf[A & B] ~~> expr.isInstanceOf[A] & expr.isInstanceOf[B]
314-
* expr.isInstanceOf[Tuple] ~~> scala.runtime.Tuple.isInstanceOfTuple(expr)
315-
* expr.isInstanceOf[EmptyTuple] ~~> scala.runtime.Tuple.isInstanceOfEmptyTuple(expr)
316-
* expr.isInstanceOf[NonEmptyTuple] ~~> scala.runtime.Tuple.isInstanceOfNonEmptyTuple(expr)
317-
* expr.isInstanceOf[*:[_, _]] ~~> scala.runtime.Tuple.isInstanceOfNonEmptyTuple(expr)
314+
* expr.isInstanceOf[Tuple] ~~> scala.runtime.Tuples.isInstanceOfTuple(expr)
315+
* expr.isInstanceOf[EmptyTuple] ~~> scala.runtime.Tuples.isInstanceOfEmptyTuple(expr)
316+
* expr.isInstanceOf[NonEmptyTuple] ~~> scala.runtime.Tuples.isInstanceOfNonEmptyTuple(expr)
317+
* expr.isInstanceOf[*:[_, _]] ~~> scala.runtime.Tuples.isInstanceOfNonEmptyTuple(expr)
318318
*
319319
* The transform happens before erasure of `testType`, thus cannot be merged
320320
* with `transformIsInstanceOf`, which depends on erased type of `testType`.
321321
*/
322322
def transformTypeTest(expr: Tree, testType: Type, flagUnrelated: Boolean): Tree = testType.dealias match {
323323
case tref: TermRef if tref.symbol == defn.EmptyTupleModule =>
324-
ref(defn.RuntimeTuple_isInstanceOfEmptyTuple).appliedTo(expr)
324+
ref(defn.RuntimeTuples_isInstanceOfEmptyTuple).appliedTo(expr)
325325
case _: SingletonType =>
326326
expr.isInstance(testType).withSpan(tree.span)
327327
case OrType(tp1, tp2) =>
@@ -343,11 +343,11 @@ object TypeTestsCasts {
343343
.and(isArrayTest(e))
344344
}
345345
case tref: TypeRef if tref.symbol == defn.TupleClass =>
346-
ref(defn.RuntimeTuple_isInstanceOfTuple).appliedTo(expr)
346+
ref(defn.RuntimeTuples_isInstanceOfTuple).appliedTo(expr)
347347
case tref: TypeRef if tref.symbol == defn.NonEmptyTupleClass =>
348-
ref(defn.RuntimeTuple_isInstanceOfNonEmptyTuple).appliedTo(expr)
348+
ref(defn.RuntimeTuples_isInstanceOfNonEmptyTuple).appliedTo(expr)
349349
case AppliedType(tref: TypeRef, _) if tref.symbol == defn.PairClass =>
350-
ref(defn.RuntimeTuple_isInstanceOfNonEmptyTuple).appliedTo(expr)
350+
ref(defn.RuntimeTuples_isInstanceOfNonEmptyTuple).appliedTo(expr)
351351
case _ =>
352352
val erasedTestType = erasure(testType)
353353
transformIsInstanceOf(expr, erasedTestType, erasedTestType, flagUnrelated)

0 commit comments

Comments
 (0)