Skip to content

Commit 018027c

Browse files
committed
Add explicit result type to some non-private methods
Add explicit result type to methods where Scala 2 and Scala 3 disagree with the inferred type. The aim is to have the same type in the Scala 2 pickles and the Scala 3 TASTy. These where identified in scala/scala3#17975
1 parent ebcee62 commit 018027c

File tree

10 files changed

+27
-27
lines changed

10 files changed

+27
-27
lines changed

src/library/scala/collection/View.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ object View extends IterableFactory[View] {
164164

165165
@SerialVersionUID(3L)
166166
class LeftPartitionMapped[A, A1, A2](underlying: SomeIterableOps[A], f: A => Either[A1, A2]) extends AbstractView[A1] {
167-
def iterator = new AbstractIterator[A1] {
167+
def iterator: AbstractIterator[A1] = new AbstractIterator[A1] {
168168
private[this] val self = underlying.iterator
169169
private[this] var hd: A1 = _
170170
private[this] var hdDefined: Boolean = false
@@ -189,7 +189,7 @@ object View extends IterableFactory[View] {
189189

190190
@SerialVersionUID(3L)
191191
class RightPartitionMapped[A, A1, A2](underlying: SomeIterableOps[A], f: A => Either[A1, A2]) extends AbstractView[A2] {
192-
def iterator = new AbstractIterator[A2] {
192+
def iterator: AbstractIterator[A2] = new AbstractIterator[A2] {
193193
private[this] val self = underlying.iterator
194194
private[this] var hd: A2 = _
195195
private[this] var hdDefined: Boolean = false

src/library/scala/collection/convert/JavaCollectionWrappers.scala

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
3333
def next() = underlying.next()
3434
def hasMoreElements = underlying.hasNext
3535
def nextElement() = underlying.next()
36-
override def remove() = throw new UnsupportedOperationException
36+
override def remove(): Nothing = throw new UnsupportedOperationException
3737
}
3838

3939
@SerialVersionUID(3L)
@@ -72,7 +72,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
7272
with StrictOptimizedIterableOps[A, Iterable, Iterable[A]]
7373
with Serializable {
7474
def iterator = underlying.iterator.asScala
75-
override def iterableFactory = mutable.ArrayBuffer
75+
override def iterableFactory: mutable.ArrayBuffer.type = mutable.ArrayBuffer
7676
override def isEmpty: Boolean = !underlying.iterator().hasNext
7777
}
7878

@@ -85,7 +85,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
8585
override def size = underlying.size
8686
override def knownSize: Int = if (underlying.isEmpty) 0 else super.knownSize
8787
override def isEmpty = underlying.isEmpty
88-
override def iterableFactory = mutable.ArrayBuffer
88+
override def iterableFactory: mutable.ArrayBuffer.type = mutable.ArrayBuffer
8989
}
9090

9191
@SerialVersionUID(3L)
@@ -142,7 +142,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
142142
this
143143
}
144144
def remove(from: Int, n: Int): Unit = underlying.subList(from, from+n).clear()
145-
override def iterableFactory = mutable.ArrayBuffer
145+
override def iterableFactory: mutable.ArrayBuffer.type = mutable.ArrayBuffer
146146
override def subtractOne(elem: A): this.type = { underlying.remove(elem.asInstanceOf[AnyRef]); this }
147147
}
148148

@@ -425,7 +425,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
425425

426426
override def isEmpty: Boolean = underlying.isEmpty
427427
override def knownSize: Int = if (underlying.isEmpty) 0 else super.knownSize
428-
override def empty = new JMapWrapper(new ju.HashMap[K, V])
428+
override def empty: JMapWrapper[K, V] = new JMapWrapper(new ju.HashMap[K, V])
429429
}
430430

431431
@SerialVersionUID(3L)
@@ -472,7 +472,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
472472

473473
override def isEmpty: Boolean = underlying.isEmpty
474474
override def knownSize: Int = if (underlying.isEmpty) 0 else super.knownSize
475-
override def empty = new JConcurrentMapWrapper(new juc.ConcurrentHashMap[K, V])
475+
override def empty: JConcurrentMapWrapper[K, V] = new JConcurrentMapWrapper(new juc.ConcurrentHashMap[K, V])
476476

477477
def putIfAbsent(k: K, v: V): Option[V] = Option(underlying.putIfAbsent(k, v))
478478

@@ -551,7 +551,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
551551

552552
override def clear() = iterator.foreach(entry => underlying.remove(entry._1))
553553

554-
override def mapFactory = mutable.HashMap
554+
override def mapFactory: mutable.HashMap.type = mutable.HashMap
555555
}
556556

557557
@SerialVersionUID(3L)
@@ -596,7 +596,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
596596

597597
override def clear() = underlying.clear()
598598

599-
override def empty = new JPropertiesWrapper(new ju.Properties)
599+
override def empty: JPropertiesWrapper = new JPropertiesWrapper(new ju.Properties)
600600

601601
def getProperty(key: String) = underlying.getProperty(key)
602602

@@ -606,7 +606,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
606606
def setProperty(key: String, value: String) =
607607
underlying.setProperty(key, value)
608608

609-
override def mapFactory = mutable.HashMap
609+
override def mapFactory: mutable.HashMap.type = mutable.HashMap
610610
}
611611

612612
/** Thrown when certain Map operations attempt to put a null value. */

src/library/scala/collection/immutable/TreeSet.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ final class TreeSet[A] private[immutable] (private[immutable] val tree: RB.Tree[
4848

4949
def this()(implicit ordering: Ordering[A]) = this(null)(ordering)
5050

51-
override def sortedIterableFactory = TreeSet
51+
override def sortedIterableFactory: TreeSet.type = TreeSet
5252

5353
private[this] def newSetOrSelf(t: RB.Tree[A, Any]) = if(t eq tree) this else new TreeSet[A](t)
5454

src/library/scala/collection/mutable/LinkedHashMap.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,7 @@ object LinkedHashMap extends MapFactory[LinkedHashMap] {
485485
newlhm
486486
}
487487

488-
def newBuilder[K, V] = new GrowableBuilder(empty[K, V])
488+
def newBuilder[K, V]: GrowableBuilder[(K, V), LinkedHashMap[K, V]] = new GrowableBuilder(empty[K, V])
489489

490490
/** Class for the linked hash map entry, used internally.
491491
*/

src/library/scala/collection/mutable/LinkedHashSet.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ object LinkedHashSet extends IterableFactory[LinkedHashSet] {
323323
newlhs
324324
}
325325

326-
def newBuilder[A] = new GrowableBuilder(empty[A])
326+
def newBuilder[A]: GrowableBuilder[A, LinkedHashSet[A]] = new GrowableBuilder(empty[A])
327327

328328
/** Class for the linked hash set entry, used internally.
329329
*/

src/library/scala/collection/mutable/TreeMap.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ sealed class TreeMap[K, V] private (tree: RB.Tree[K, V])(implicit val ordering:
3838
with SortedMapFactoryDefaults[K, V, TreeMap, Iterable, Map]
3939
with DefaultSerializable {
4040

41-
override def sortedMapFactory = TreeMap
41+
override def sortedMapFactory: TreeMap.type = TreeMap
4242

4343
/**
4444
* Creates an empty `TreeMap`.

src/library/scala/concurrent/duration/Duration.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -708,7 +708,7 @@ final class FiniteDuration(val length: Long, val unit: TimeUnit) extends Duratio
708708
*/
709709
def mul(factor: Long): FiniteDuration = this * factor
710710

711-
def unary_- = Duration(-length, unit)
711+
def unary_- : FiniteDuration = Duration(-length, unit)
712712

713713
final def isFinite = true
714714

src/library/scala/math/BigDecimal.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,7 @@ extends ScalaNumber with ScalaNumericConversions with Serializable with Ordered[
466466

467467
def isWhole = scale <= 0 || bigDecimal.stripTrailingZeros.scale <= 0
468468

469-
def underlying = bigDecimal
469+
def underlying: java.math.BigDecimal = bigDecimal
470470

471471

472472
/** Compares this BigDecimal with the specified BigDecimal for equality.

src/library/scala/math/Ordering.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ trait Ordering[T] extends Comparator[T] with PartialOrdering[T] with Serializabl
7676
/** Returns whether a comparison between `x` and `y` is defined, and if so
7777
* the result of `compare(x, y)`.
7878
*/
79-
def tryCompare(x: T, y: T) = Some(compare(x, y))
79+
def tryCompare(x: T, y: T): Some[Int] = Some(compare(x, y))
8080

8181
/** Returns an integer whose sign communicates how x compares to y.
8282
*

src/library/scala/sys/process/ProcessBuilderImpl.scala

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ private[process] trait ProcessBuilderImpl {
100100
}
101101

102102
private[scala] abstract class AbstractBuilder extends ProcessBuilder with Sink with Source {
103-
protected def toSource = this
104-
protected def toSink = this
103+
protected def toSource: AbstractBuilder = this
104+
protected def toSink: AbstractBuilder = this
105105

106106
private[this] val defaultStreamCapacity = 4096
107107

@@ -209,11 +209,11 @@ private[process] trait ProcessBuilderImpl {
209209
}
210210

211211
private[process] class URLImpl(url: URL) extends URLBuilder with Source {
212-
protected def toSource = new URLInput(url)
212+
protected def toSource: URLInput = new URLInput(url)
213213
}
214214
private[process] class FileImpl(base: File) extends FileBuilder with Sink with Source {
215-
protected def toSource = new FileInput(base)
216-
protected def toSink = new FileOutput(base, false)
215+
protected def toSource: FileInput = new FileInput(base)
216+
protected def toSink: FileOutput = new FileOutput(base, false)
217217

218218
def #<<(f: File): ProcessBuilder = #<<(new FileInput(f))
219219
def #<<(u: URL): ProcessBuilder = #<<(new URLInput(u))
@@ -248,27 +248,27 @@ private[process] trait ProcessBuilderImpl {
248248
toError: Boolean
249249
) extends SequentialBuilder(first, second, if (toError) "#|!" else "#|") {
250250

251-
override def createProcess(io: ProcessIO) = new PipedProcesses(first, second, io, toError)
251+
override def createProcess(io: ProcessIO): PipedProcesses = new PipedProcesses(first, second, io, toError)
252252
}
253253

254254
private[process] class AndBuilder(
255255
first: ProcessBuilder,
256256
second: ProcessBuilder
257257
) extends SequentialBuilder(first, second, "#&&") {
258-
override def createProcess(io: ProcessIO) = new AndProcess(first, second, io)
258+
override def createProcess(io: ProcessIO): AndProcess = new AndProcess(first, second, io)
259259
}
260260

261261
private[process] class OrBuilder(
262262
first: ProcessBuilder,
263263
second: ProcessBuilder
264264
) extends SequentialBuilder(first, second, "#||") {
265-
override def createProcess(io: ProcessIO) = new OrProcess(first, second, io)
265+
override def createProcess(io: ProcessIO): OrProcess = new OrProcess(first, second, io)
266266
}
267267

268268
private[process] class SequenceBuilder(
269269
first: ProcessBuilder,
270270
second: ProcessBuilder
271271
) extends SequentialBuilder(first, second, "###") {
272-
override def createProcess(io: ProcessIO) = new ProcessSequence(first, second, io)
272+
override def createProcess(io: ProcessIO): ProcessSequence = new ProcessSequence(first, second, io)
273273
}
274274
}

0 commit comments

Comments
 (0)