@@ -231,7 +231,7 @@ trait BCodeHelpers extends BCodeIdiomatic with BytecodeWriters {
231
231
232
232
private def assertClassNotArray (sym : Symbol ): Unit = {
233
233
assert(sym.isClass, sym)
234
- assert(sym != defn.ArrayClass || ctx.compilationUnit.source.file.name == " Array.scala " , sym)
234
+ assert(sym != defn.ArrayClass || compilingArray , sym)
235
235
}
236
236
237
237
private def assertClassNotArrayNotPrimitive (sym : Symbol ): Unit = {
@@ -795,7 +795,7 @@ trait BCodeHelpers extends BCodeIdiomatic with BytecodeWriters {
795
795
*/
796
796
def primitiveOrClassToBType (sym : Symbol ): BType = {
797
797
assert(sym.isClass, sym)
798
- assert(sym != defn.ArrayClass || ctx.compilationUnit.source.file.name == " Array.scala " , sym)
798
+ assert(sym != defn.ArrayClass || compilingArray , sym)
799
799
primitiveTypeMap.getOrElse(sym,
800
800
storage.getClassBTypeAndRegisterInnerClass(sym)).asInstanceOf [BType ]
801
801
}
@@ -805,7 +805,7 @@ trait BCodeHelpers extends BCodeIdiomatic with BytecodeWriters {
805
805
* signatures, e.g. `def apply(i: Int): T`. A TyperRef to T is replaced by ObjectReference.
806
806
*/
807
807
def nonClassTypeRefToBType (sym : Symbol ): ClassBType = {
808
- assert(sym.isType && ctx.compilationUnit.source.file.name == " Array.scala " , sym)
808
+ assert(sym.isType && compilingArray , sym)
809
809
ObjectReference .asInstanceOf [ct.bTypes.ClassBType ]
810
810
}
811
811
@@ -937,6 +937,9 @@ trait BCodeHelpers extends BCodeIdiomatic with BytecodeWriters {
937
937
ctx.error(msg)
938
938
throw new RuntimeException (msg)
939
939
}
940
+
941
+ private def compilingArray (using ctx : Context ) =
942
+ ctx.compilationUnit.source.file.name == " Array.scala"
940
943
}
941
944
942
945
object BCodeHelpers {
@@ -957,4 +960,5 @@ object BCodeHelpers {
957
960
val Special = new InvokeStyle (2 ) // InvokeSpecial (private methods, constructors)
958
961
val Super = new InvokeStyle (3 ) // InvokeSpecial (super calls)
959
962
}
963
+
960
964
}
0 commit comments