Skip to content

Commit 73bbcfe

Browse files
authored
Make Java defined functions nullary when we override them (#24461)
To preserve the same source compatibility, we mark `toString` and `hashCode` as methods with empty parameter lists in all the inherited files from Scala 2. Note that I checked for other java defined methods that would qualify for this change but I couldn't find any (reviewer should double check too since we cannot fix this after 3.8.0). Closes #19616 Supersedes #24452
2 parents 9a8746e + 8617d68 commit 73bbcfe

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+153
-143
lines changed

library/src/scala/Boolean.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ object Boolean extends AnyValCompanion {
136136
def unbox(x: java.lang.Object): Boolean = ???
137137

138138
/** The String representation of the scala.Boolean companion object. */
139-
override def toString = "object scala.Boolean"
139+
override def toString() = "object scala.Boolean"
140140

141141
}
142142

library/src/scala/Byte.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ object Byte extends AnyValCompanion {
477477
def unbox(x: java.lang.Object): Byte = ???
478478

479479
/** The String representation of the scala.Byte companion object. */
480-
override def toString = "object scala.Byte"
480+
override def toString() = "object scala.Byte"
481481
/** Language mandated coercions from Byte to "wider" types. */
482482
import scala.language.implicitConversions
483483
implicit def byte2short(x: Byte): Short = x.toShort

library/src/scala/Char.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ object Char extends AnyValCompanion {
477477
def unbox(x: java.lang.Object): Char = ???
478478

479479
/** The String representation of the scala.Char companion object. */
480-
override def toString = "object scala.Char"
480+
override def toString() = "object scala.Char"
481481
/** Language mandated coercions from Char to "wider" types. */
482482
import scala.language.implicitConversions
483483
implicit def char2int(x: Char): Int = x.toInt

library/src/scala/Double.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,6 @@ object Double extends AnyValCompanion {
252252
def unbox(x: java.lang.Object): Double = ???
253253

254254
/** The String representation of the scala.Double companion object. */
255-
override def toString = "object scala.Double"
255+
override def toString() = "object scala.Double"
256256
}
257257

library/src/scala/Enumeration.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,11 @@ abstract class Enumeration (initial: Int) extends Serializable {
9898

9999
/** The name of this enumeration.
100100
*/
101-
override def toString: String =
101+
override def toString(): String =
102102
getClass.getName
103103
.stripSuffix(MODULE_SUFFIX_STRING)
104104
.split('.')
105-
.last
105+
.last
106106
.split(Regex.quote(NAME_JOIN_STRING))
107107
.last
108108

@@ -241,7 +241,7 @@ abstract class Enumeration (initial: Int) extends Serializable {
241241
case that: Enumeration#Value => (outerEnum eq that.outerEnum) && (id == that.id)
242242
case _ => false
243243
}
244-
override def hashCode: Int = id.##
244+
override def hashCode(): Int = id.##
245245

246246
/** Create a ValueSet which contains this value and another one */
247247
def + (v: Value): ValueSet = ValueSet(this, v)

library/src/scala/Float.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ object Float extends AnyValCompanion {
252252
def unbox(x: java.lang.Object): Float = ???
253253

254254
/** The String representation of the scala.Float companion object. */
255-
override def toString = "object scala.Float"
255+
override def toString() = "object scala.Float"
256256
/** Language mandated coercions from Float to "wider" types. */
257257
import scala.language.implicitConversions
258258
implicit def float2double(x: Float): Double = x.toDouble

library/src/scala/Int.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ object Int extends AnyValCompanion {
477477
def unbox(x: java.lang.Object): Int = ???
478478

479479
/** The String representation of the scala.Int companion object. */
480-
override def toString = "object scala.Int"
480+
override def toString() = "object scala.Int"
481481
/** Language mandated coercions from Int to "wider" types. */
482482
import scala.language.implicitConversions
483483
@deprecated("Implicit conversion from Int to Float is dangerous because it loses precision. Write `.toFloat` instead.", "2.13.1")

library/src/scala/Long.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ object Long extends AnyValCompanion {
474474
def unbox(x: java.lang.Object): Long = ???
475475

476476
/** The String representation of the scala.Long companion object. */
477-
override def toString = "object scala.Long"
477+
override def toString() = "object scala.Long"
478478
/** Language mandated coercions from Long to "wider" types. */
479479
import scala.language.implicitConversions
480480
@deprecated("Implicit conversion from Long to Float is dangerous because it loses precision. Write `.toFloat` instead.", "2.13.1")

library/src/scala/Predef.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ object Predef extends LowPriorityImplicits {
442442
def length: Int = sequenceOfChars.length
443443
def charAt(index: Int): Char = sequenceOfChars(index)
444444
def subSequence(start: Int, end: Int): CharSequence = new SeqCharSequence(sequenceOfChars.slice(start, end))
445-
override def toString = sequenceOfChars.mkString
445+
override def toString() = sequenceOfChars.mkString
446446
}
447447

448448
/** @group char-sequence-wrappers */
@@ -453,7 +453,7 @@ object Predef extends LowPriorityImplicits {
453453
def length: Int = arrayOfChars.length
454454
def charAt(index: Int): Char = arrayOfChars(index)
455455
def subSequence(start: Int, end: Int): CharSequence = new runtime.ArrayCharSequence(arrayOfChars, start, end)
456-
override def toString = arrayOfChars.mkString
456+
override def toString() = arrayOfChars.mkString
457457
}
458458

459459
/** @group char-sequence-wrappers */

library/src/scala/Proxy.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ import scala.language.`2.13`
2929
trait Proxy extends Any {
3030
def self: Any
3131

32-
override def hashCode: Int = self.hashCode
32+
override def hashCode(): Int = self.hashCode
3333
override def equals(that: Any): Boolean = that match {
3434
case null => false
3535
case _ =>
3636
val x = that.asInstanceOf[AnyRef]
3737
(x eq this.asInstanceOf[AnyRef]) || (x eq self.asInstanceOf[AnyRef]) || (x.equals(self))
3838
}
39-
override def toString = "" + self
39+
override def toString() = "" + self
4040
}
4141

4242
@deprecated("All members of this object are deprecated.", "2.13.0")

0 commit comments

Comments
 (0)