diff options
author | Guillaume Martres <smarter@ubuntu.com> | 2017-03-13 21:43:13 +0100 |
---|---|---|
committer | Guillaume Martres <smarter@ubuntu.com> | 2017-03-13 21:43:14 +0100 |
commit | bba147a4c38727ef2bae2769a85369cf11a8e6b5 (patch) | |
tree | 53ff023a3d4b2cb6928ebf9091c117c73fa7e373 | |
parent | 8997bf17e2994a5b5e2edd06835f4cdc543e57ed (diff) | |
download | dotty-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.scala | 7 | ||||
-rw-r--r-- | compiler/test/dotc/tests.scala | 4 |
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 |