diff options
author | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2016-03-30 17:07:11 +0200 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2016-04-18 14:46:57 +0200 |
commit | 2c370bdec8d2a8a2c4b339d4e7f18e6215b03244 (patch) | |
tree | daafa0a8a4d5e4b60e1a0ae80cdfa2fc30f3698f | |
parent | 3fc2b6e022a9ca38f93aa778999516d8e67576cf (diff) | |
download | dotty-2c370bdec8d2a8a2c4b339d4e7f18e6215b03244.tar.gz dotty-2c370bdec8d2a8a2c4b339d4e7f18e6215b03244.tar.bz2 dotty-2c370bdec8d2a8a2c4b339d4e7f18e6215b03244.zip |
make tpd.JavaSeqLiteral return JavaSeqLiteral
-rw-r--r-- | src/dotty/tools/dotc/ast/tpd.scala | 5 | ||||
-rw-r--r-- | src/dotty/tools/dotc/transform/ArrayConstructors.scala | 2 |
2 files changed, 4 insertions, 3 deletions
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 { |