aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillaume Martres <smarter@ubuntu.com>2017-03-13 21:43:13 +0100
committerGuillaume Martres <smarter@ubuntu.com>2017-03-13 21:43:14 +0100
commitbba147a4c38727ef2bae2769a85369cf11a8e6b5 (patch)
tree53ff023a3d4b2cb6928ebf9091c117c73fa7e373
parent8997bf17e2994a5b5e2edd06835f4cdc543e57ed (diff)
downloaddotty-bba147a4c38727ef2bae2769a85369cf11a8e6b5.tar.gz
dotty-bba147a4c38727ef2bae2769a85369cf11a8e6b5.tar.bz2
dotty-bba147a4c38727ef2bae2769a85369cf11a8e6b5.zip
Fix #2089: Error when compiling ParSetLike, ParSet, SetLike, in this order
This fix is inspired by 6c91684, but I couldn't tell you why it works exactly, it's just something I tried.
-rw-r--r--compiler/src/dotty/tools/dotc/typer/Typer.scala7
-rw-r--r--compiler/test/dotc/tests.scala4
2 files changed, 11 insertions, 0 deletions
diff --git a/compiler/src/dotty/tools/dotc/typer/Typer.scala b/compiler/src/dotty/tools/dotc/typer/Typer.scala
index ccfe218b3..fd0c7c73d 100644
--- a/compiler/src/dotty/tools/dotc/typer/Typer.scala
+++ b/compiler/src/dotty/tools/dotc/typer/Typer.scala
@@ -1080,6 +1080,13 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
(if (isVarPattern(arg)) desugar.patternVar(arg) else arg, tparam.paramBounds)
else
(arg, WildcardType)
+ if (tpt1.symbol.isClass)
+ tparam match {
+ case tparam: Symbol =>
+ // This is needed to get the test `compileParSetSubset` to work
+ tparam.ensureCompleted()
+ case _ =>
+ }
typed(desugaredArg, argPt)
}
args.zipWithConserve(tparams)(typedArg(_, _)).asInstanceOf[List[Tree]]
diff --git a/compiler/test/dotc/tests.scala b/compiler/test/dotc/tests.scala
index 78a8aefd5..01db2d9cc 100644
--- a/compiler/test/dotc/tests.scala
+++ b/compiler/test/dotc/tests.scala
@@ -225,6 +225,10 @@ class tests extends CompilerTest {
|../scala-scala/src/library/scala/collection/generic/GenSeqFactory.scala""".stripMargin)
@Test def compileIndexedSeq = compileLine("../scala-scala/src/library/scala/collection/immutable/IndexedSeq.scala")
@Test def compileParSetLike = compileLine("../scala-scala/src/library/scala/collection/parallel/mutable/ParSetLike.scala")
+ @Test def compileParSetSubset = compileLine(
+ """../scala-scala/src/library/scala/collection/parallel/mutable/ParSetLike.scala
+ |../scala-scala/src/library/scala/collection/parallel/mutable/ParSet.scala
+ |../scala-scala/src/library/scala/collection/mutable/SetLike.scala""".stripMargin)(scala2mode ++ defaultOptions)
@Test def dotty = {
dottyBootedLib