Skip to content

Commit 3e36134

Browse files
committed
Factor out compilingArray
1 parent 5385a82 commit 3e36134

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

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

+7-3
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ trait BCodeHelpers extends BCodeIdiomatic with BytecodeWriters {
231231

232232
private def assertClassNotArray(sym: Symbol): Unit = {
233233
assert(sym.isClass, sym)
234-
assert(sym != defn.ArrayClass || ctx.compilationUnit.source.file.name == "Array.scala", sym)
234+
assert(sym != defn.ArrayClass || compilingArray, sym)
235235
}
236236

237237
private def assertClassNotArrayNotPrimitive(sym: Symbol): Unit = {
@@ -795,7 +795,7 @@ trait BCodeHelpers extends BCodeIdiomatic with BytecodeWriters {
795795
*/
796796
def primitiveOrClassToBType(sym: Symbol): BType = {
797797
assert(sym.isClass, sym)
798-
assert(sym != defn.ArrayClass || ctx.compilationUnit.source.file.name == "Array.scala", sym)
798+
assert(sym != defn.ArrayClass || compilingArray, sym)
799799
primitiveTypeMap.getOrElse(sym,
800800
storage.getClassBTypeAndRegisterInnerClass(sym)).asInstanceOf[BType]
801801
}
@@ -805,7 +805,7 @@ trait BCodeHelpers extends BCodeIdiomatic with BytecodeWriters {
805805
* signatures, e.g. `def apply(i: Int): T`. A TyperRef to T is replaced by ObjectReference.
806806
*/
807807
def nonClassTypeRefToBType(sym: Symbol): ClassBType = {
808-
assert(sym.isType && ctx.compilationUnit.source.file.name == "Array.scala", sym)
808+
assert(sym.isType && compilingArray, sym)
809809
ObjectReference.asInstanceOf[ct.bTypes.ClassBType]
810810
}
811811

@@ -937,6 +937,9 @@ trait BCodeHelpers extends BCodeIdiomatic with BytecodeWriters {
937937
ctx.error(msg)
938938
throw new RuntimeException(msg)
939939
}
940+
941+
private def compilingArray(using ctx: Context) =
942+
ctx.compilationUnit.source.file.name == "Array.scala"
940943
}
941944

942945
object BCodeHelpers {
@@ -957,4 +960,5 @@ object BCodeHelpers {
957960
val Special = new InvokeStyle(2) // InvokeSpecial (private methods, constructors)
958961
val Super = new InvokeStyle(3) // InvokeSpecial (super calls)
959962
}
963+
960964
}

0 commit comments

Comments
 (0)