@@ -17,7 +17,8 @@ import reporting._
17
17
import Checking .{checkNoPrivateLeaks , checkNoWildcard }
18
18
19
19
trait TypeAssigner {
20
- import tpd ._
20
+ import tpd .*
21
+ import TypeAssigner .*
21
22
22
23
/** The qualifying class of a this or super with prefix `qual` (which might be empty).
23
24
* @param packageOk The qualifier may refer to a package.
@@ -435,13 +436,8 @@ trait TypeAssigner {
435
436
if (cases.isEmpty) tree.withType(expr.tpe)
436
437
else tree.withType(TypeComparer .lub(expr.tpe :: cases.tpes))
437
438
438
- def assignType (tree : untpd.SeqLiteral , elems : List [Tree ], elemtpt : Tree )(using Context ): SeqLiteral = {
439
- val ownType = tree match {
440
- case tree : untpd.JavaSeqLiteral => defn.ArrayOf (elemtpt.tpe)
441
- case _ => if (ctx.erasedTypes) defn.SeqType else defn.SeqType .appliedTo(elemtpt.tpe)
442
- }
443
- tree.withType(ownType)
444
- }
439
+ def assignType (tree : untpd.SeqLiteral , elems : List [Tree ], elemtpt : Tree )(using Context ): SeqLiteral =
440
+ tree.withType(seqLitType(tree, elemtpt.tpe))
445
441
446
442
def assignType (tree : untpd.SingletonTypeTree , ref : Tree )(using Context ): SingletonTypeTree =
447
443
tree.withType(ref.tpe)
@@ -527,5 +523,9 @@ trait TypeAssigner {
527
523
tree.withType(pid.symbol.termRef)
528
524
}
529
525
526
+ object TypeAssigner extends TypeAssigner :
527
+ def seqLitType (tree : untpd.SeqLiteral , elemType : Type )(using Context ) = tree match
528
+ case tree : untpd.JavaSeqLiteral => defn.ArrayOf (elemType)
529
+ case _ => if ctx.erasedTypes then defn.SeqType else defn.SeqType .appliedTo(elemType)
530
+
530
531
531
- object TypeAssigner extends TypeAssigner
0 commit comments