aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/tasty
diff options
context:
space:
mode:
authorodersky <odersky@gmail.com>2016-03-18 11:54:33 +0100
committerodersky <odersky@gmail.com>2016-03-18 11:54:33 +0100
commite73ef776e1754f5e207a631d4c1750743b3d4a9b (patch)
treee3ab0183a36550465063d736313e5df68ddfe7b5 /src/dotty/tools/dotc/core/tasty
parentbd8a6dc79bf53193af617d08cd1b4fdef0ee0bb2 (diff)
parent208c91a3749910ff23ae65f7ff36d7b3cf8d62db (diff)
downloaddotty-e73ef776e1754f5e207a631d4c1750743b3d4a9b.tar.gz
dotty-e73ef776e1754f5e207a631d4c1750743b3d4a9b.tar.bz2
dotty-e73ef776e1754f5e207a631d4c1750743b3d4a9b.zip
Merge pull request #1166 from dotty-staging/fix-#1136
Fix typing of SeqLiterals
Diffstat (limited to 'src/dotty/tools/dotc/core/tasty')
-rw-r--r--src/dotty/tools/dotc/core/tasty/TreePickler.scala4
-rw-r--r--src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala5
2 files changed, 5 insertions, 4 deletions
diff --git a/src/dotty/tools/dotc/core/tasty/TreePickler.scala b/src/dotty/tools/dotc/core/tasty/TreePickler.scala
index 7f8e5cef3..f8f9c993f 100644
--- a/src/dotty/tools/dotc/core/tasty/TreePickler.scala
+++ b/src/dotty/tools/dotc/core/tasty/TreePickler.scala
@@ -418,9 +418,9 @@ class TreePickler(pickler: TastyPickler) {
case Try(block, cases, finalizer) =>
writeByte(TRY)
withLength { pickleTree(block); cases.foreach(pickleTree); pickleTreeUnlessEmpty(finalizer) }
- case SeqLiteral(elems) =>
+ case SeqLiteral(elems, elemtpt) =>
writeByte(REPEATED)
- withLength { elems.foreach(pickleTree) }
+ withLength { pickleTree(elemtpt); elems.foreach(pickleTree) }
case TypeTree(original) =>
pickleTpt(tree)
case Bind(name, body) =>
diff --git a/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala b/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala
index 016aa41de..eb3369184 100644
--- a/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala
+++ b/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala
@@ -805,7 +805,7 @@ class TreeUnpickler(reader: TastyReader, tastyName: TastyName.Table) {
val fn = readTerm()
val isJava = fn.tpe.isInstanceOf[JavaMethodType]
def readArg() = readTerm() match {
- case SeqLiteral(elems) if isJava => JavaSeqLiteral(elems)
+ case SeqLiteral(elems, elemtpt) if isJava => JavaSeqLiteral(elems, elemtpt)
case arg => arg
}
tpd.Apply(fn, until(end)(readArg()))
@@ -841,7 +841,8 @@ class TreeUnpickler(reader: TastyReader, tastyName: TastyName.Table) {
case TRY =>
Try(readTerm(), readCases(end), ifBefore(end)(readTerm(), EmptyTree))
case REPEATED =>
- SeqLiteral(until(end)(readTerm()))
+ val elemtpt = readTpt()
+ SeqLiteral(until(end)(readTerm()), elemtpt)
case BIND =>
val name = readName()
val info = readType()