@@ -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
942945object 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