From 2c370bdec8d2a8a2c4b339d4e7f18e6215b03244 Mon Sep 17 00:00:00 2001 From: Dmitry Petrashko Date: Wed, 30 Mar 2016 17:07:11 +0200 Subject: make tpd.JavaSeqLiteral return JavaSeqLiteral --- src/dotty/tools/dotc/ast/tpd.scala | 5 +++-- src/dotty/tools/dotc/transform/ArrayConstructors.scala | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/dotty/tools/dotc/ast/tpd.scala b/src/dotty/tools/dotc/ast/tpd.scala index 01b1919c9..de9d2165c 100644 --- a/src/dotty/tools/dotc/ast/tpd.scala +++ b/src/dotty/tools/dotc/ast/tpd.scala @@ -125,8 +125,8 @@ object tpd extends Trees.Instance[Type] with TypedTreeInfo { def SeqLiteral(elems: List[Tree], elemtpt: Tree)(implicit ctx: Context): SeqLiteral = ta.assignType(untpd.SeqLiteral(elems, elemtpt), elems, elemtpt) - def JavaSeqLiteral(elems: List[Tree], elemtpt: Tree)(implicit ctx: Context): SeqLiteral = - ta.assignType(new untpd.JavaSeqLiteral(elems, elemtpt), elems, elemtpt) + def JavaSeqLiteral(elems: List[Tree], elemtpt: Tree)(implicit ctx: Context): JavaSeqLiteral = + ta.assignType(new untpd.JavaSeqLiteral(elems, elemtpt), elems, elemtpt).asInstanceOf[JavaSeqLiteral] def TypeTree(original: Tree)(implicit ctx: Context): TypeTree = TypeTree(original.tpe, original) @@ -371,6 +371,7 @@ object tpd extends Trees.Instance[Type] with TypedTreeInfo { if (TypeErasure.isUnboundedGeneric(elemTpe)) { //exists only before erasure assert(dims.elems.tail.isEmpty) + assert(!ctx.isAfterTyper) // needs to infer an implicit newArr(defn.newGenericArrayMethod).appliedToType(elemTpe).appliedTo(dims.elems.head) } else diff --git a/src/dotty/tools/dotc/transform/ArrayConstructors.scala b/src/dotty/tools/dotc/transform/ArrayConstructors.scala index e9541fce0..fbb5bb9d7 100644 --- a/src/dotty/tools/dotc/transform/ArrayConstructors.scala +++ b/src/dotty/tools/dotc/transform/ArrayConstructors.scala @@ -34,7 +34,7 @@ class ArrayConstructors extends MiniPhaseTransform { thisTransform => override def transformApply(tree: tpd.Apply)(implicit ctx: Context, info: TransformerInfo): tpd.Tree = { def rewrite(elemType: Type, dims: List[Tree]) = - tpd.newArray(elemType, tree.tpe, tree.pos, JavaSeqLiteral(dims, TypeTree(defn.IntClass.typeRef)).asInstanceOf[JavaSeqLiteral]) + tpd.newArray(elemType, tree.tpe, tree.pos, JavaSeqLiteral(dims, TypeTree(defn.IntClass.typeRef))) if (tree.fun.symbol eq defn.ArrayConstructor) { tree.fun match { -- cgit v1.2.3