Skip to content

Commit d05f69d

Browse files
committed
Also normalize array elements used as arguments of annotations
1 parent 592bd94 commit d05f69d

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ class DottyBackendInterface(outputDirectory: AbstractFile, val superCallsMap: Ma
268268
}
269269
case t: SeqLiteral =>
270270
val arrAnnotV: AnnotationVisitor = av.visitArray(name)
271-
for(arg <- t.elems) { emitArgument(arrAnnotV, null, arg, bcodeStore)(innerClasesStore) }
271+
for (arg <- t.elems) { emitArgument(arrAnnotV, null, arg, bcodeStore)(innerClasesStore) }
272272
arrAnnotV.visitEnd()
273273

274274
case Apply(fun, args) if fun.symbol == defn.ArrayClass.primaryConstructor ||
@@ -280,11 +280,15 @@ class DottyBackendInterface(outputDirectory: AbstractFile, val superCallsMap: Ma
280280
fun.asInstanceOf[Apply].args
281281
} else args
282282

283-
val flatArgs = actualArgs.flatMap {
284-
case t: tpd.SeqLiteral => t.elems
285-
case e => List(e)
283+
val flatArgs = actualArgs.flatMap { arg =>
284+
normalizeArgument(arg) match {
285+
case t: tpd.SeqLiteral => t.elems
286+
case e => List(e)
287+
}
288+
}
289+
for(arg <- flatArgs) {
290+
emitArgument(arrAnnotV, null, arg, bcodeStore)(innerClasesStore)
286291
}
287-
for(arg <- flatArgs) { emitArgument(arrAnnotV, null, arg, bcodeStore)(innerClasesStore) }
288292
arrAnnotV.visitEnd()
289293
/*
290294
case sb @ ScalaSigBytes(bytes) =>

0 commit comments

Comments
 (0)