diff options
author | odersky <odersky@gmail.com> | 2016-03-18 11:54:33 +0100 |
---|---|---|
committer | odersky <odersky@gmail.com> | 2016-03-18 11:54:33 +0100 |
commit | e73ef776e1754f5e207a631d4c1750743b3d4a9b (patch) | |
tree | e3ab0183a36550465063d736313e5df68ddfe7b5 /src/dotty/tools/dotc/core/tasty | |
parent | bd8a6dc79bf53193af617d08cd1b4fdef0ee0bb2 (diff) | |
parent | 208c91a3749910ff23ae65f7ff36d7b3cf8d62db (diff) | |
download | dotty-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.scala | 4 | ||||
-rw-r--r-- | src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala | 5 |
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() |