Skip to content

Commit 733b8bb

Browse files
committed
Use BoxesRunTime.equalsNumChar instead of BoxesRunTime.equalsNumObject for boxed Char universal equality checks
1 parent e6242ca commit 733b8bb

File tree

4 files changed

+6
-6
lines changed

4 files changed

+6
-6
lines changed

compiler/src/dotty/tools/backend/jvm/BCodeBodyBuilder.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1684,7 +1684,7 @@ trait BCodeBodyBuilder extends BCodeSkelBuilder {
16841684
val equalsMethod: Symbol = {
16851685
if (l.tpe <:< defn.BoxedNumberClass.info) {
16861686
if (r.tpe <:< defn.BoxedNumberClass.info) defn.BoxesRunTimeModule.requiredMethod(nme.equalsNumNum)
1687-
else if (r.tpe <:< defn.BoxedCharClass.info) NoSymbol // ctx.requiredMethod(BoxesRunTimeTypeRef, nme.equalsNumChar) // this method is private
1687+
else if (r.tpe <:< defn.BoxedCharClass.info) defn.BoxesRunTimeModule.requiredMethod(nme.equalsNumChar)
16881688
else defn.BoxesRunTimeModule.requiredMethod(nme.equalsNumObject)
16891689
} else defn.BoxesRunTimeModule_externalEquals
16901690
}

compiler/src/dotty/tools/backend/sjs/JSCodeGen.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -2845,7 +2845,7 @@ class JSCodeGen()(using genCtx: Context) {
28452845
private lazy val externalEqualsNumNum: Symbol =
28462846
defn.BoxesRunTimeModule.requiredMethod(nme.equalsNumNum)
28472847
private lazy val externalEqualsNumChar: Symbol =
2848-
NoSymbol // requiredMethod(BoxesRunTimeTypeRef, nme.equalsNumChar) // this method is private
2848+
defn.BoxesRunTimeModule.requiredMethod(nme.equalsNumChar)
28492849
private lazy val externalEqualsNumObject: Symbol =
28502850
defn.BoxesRunTimeModule.requiredMethod(nme.equalsNumObject)
28512851
private lazy val externalEquals: Symbol =
@@ -2885,7 +2885,7 @@ class JSCodeGen()(using genCtx: Context) {
28852885
val ptfm = ctx.platform
28862886
if (lsym.derivesFrom(defn.BoxedNumberClass)) {
28872887
if (rsym.derivesFrom(defn.BoxedNumberClass)) externalEqualsNumNum
2888-
else if (rsym.derivesFrom(defn.BoxedCharClass)) externalEqualsNumObject // will be externalEqualsNumChar in 2.12, SI-9030
2888+
else if (rsym.derivesFrom(defn.BoxedCharClass)) externalEqualsNumChar
28892889
else externalEqualsNumObject
28902890
} else externalEquals
28912891
}

tests/pos-with-compiler-cc/backend/jvm/BCodeBodyBuilder.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1622,7 +1622,7 @@ trait BCodeBodyBuilder extends BCodeSkelBuilder {
16221622
val equalsMethod: Symbol = {
16231623
if (l.tpe <:< defn.BoxedNumberClass.info) {
16241624
if (r.tpe <:< defn.BoxedNumberClass.info) defn.BoxesRunTimeModule.requiredMethod(nme.equalsNumNum)
1625-
else if (r.tpe <:< defn.BoxedCharClass.info) NoSymbol // ctx.requiredMethod(BoxesRunTimeTypeRef, nme.equalsNumChar) // this method is private
1625+
else if (r.tpe <:< defn.BoxedCharClass.info) defn.BoxesRunTimeModule.requiredMethod(nme.equalsNumChar)
16261626
else defn.BoxesRunTimeModule.requiredMethod(nme.equalsNumObject)
16271627
} else defn.BoxesRunTimeModule_externalEquals
16281628
}

tests/pos-with-compiler-cc/backend/sjs/JSCodeGen.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -2846,7 +2846,7 @@ class JSCodeGen()(using genCtx: DetachedContext) {
28462846
private lazy val externalEqualsNumNum: Symbol =
28472847
defn.BoxesRunTimeModule.requiredMethod(nme.equalsNumNum)
28482848
private lazy val externalEqualsNumChar: Symbol =
2849-
NoSymbol // requiredMethod(BoxesRunTimeTypeRef, nme.equalsNumChar) // this method is private
2849+
defn.BoxesRunTimeModule.requiredMethod(nme.equalsNumChar)
28502850
private lazy val externalEqualsNumObject: Symbol =
28512851
defn.BoxesRunTimeModule.requiredMethod(nme.equalsNumObject)
28522852
private lazy val externalEquals: Symbol =
@@ -2886,7 +2886,7 @@ class JSCodeGen()(using genCtx: DetachedContext) {
28862886
val ptfm = ctx.platform
28872887
if (lsym.derivesFrom(defn.BoxedNumberClass)) {
28882888
if (rsym.derivesFrom(defn.BoxedNumberClass)) externalEqualsNumNum
2889-
else if (rsym.derivesFrom(defn.BoxedCharClass)) externalEqualsNumObject // will be externalEqualsNumChar in 2.12, SI-9030
2889+
else if (rsym.derivesFrom(defn.BoxedCharClass)) externalEqualsNumChar
28902890
else externalEqualsNumObject
28912891
} else externalEquals
28922892
}

0 commit comments

Comments
 (0)