@@ -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
@@ -957,4 +957,7 @@ object BCodeHelpers {
957
957
val Special = new InvokeStyle (2 ) // InvokeSpecial (private methods, constructors)
958
958
val Super = new InvokeStyle (3 ) // InvokeSpecial (super calls)
959
959
}
960
+
961
+ private def compilingArray (using qctx : Context ) =
962
+ ctx.compilationUnit.source.file.name == " Array.scala"
960
963
}
0 commit comments