aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Types.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-12-06 12:44:00 +0100
committerMartin Odersky <odersky@gmail.com>2015-12-06 16:17:44 +0100
commitf6d1153e193045ad4d8a1564e3c0cdb49b853a5b (patch)
treea013e385dc95774a843aa384cd8cdf81f31857b9 /src/dotty/tools/dotc/core/Types.scala
parent50d265299ab99ace68e3813794559de2bbcdc91c (diff)
downloaddotty-f6d1153e193045ad4d8a1564e3c0cdb49b853a5b.tar.gz
dotty-f6d1153e193045ad4d8a1564e3c0cdb49b853a5b.tar.bz2
dotty-f6d1153e193045ad4d8a1564e3c0cdb49b853a5b.zip
Avoid false positives when extracting AppliedType
Diffstat (limited to 'src/dotty/tools/dotc/core/Types.scala')
-rw-r--r--src/dotty/tools/dotc/core/Types.scala12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/core/Types.scala b/src/dotty/tools/dotc/core/Types.scala
index 54e6397bb..b5d5c864b 100644
--- a/src/dotty/tools/dotc/core/Types.scala
+++ b/src/dotty/tools/dotc/core/Types.scala
@@ -1899,7 +1899,17 @@ object Types {
override def underlying(implicit ctx: Context) = parent
- private def checkInst(implicit ctx: Context): this.type = this
+ private def badInst =
+ throw new AssertionError(s"bad instantiation: $this")
+
+ def checkInst(implicit ctx: Context): this.type = {
+ if (refinedName == tpnme.hkApply)
+ parent.stripTypeVar match {
+ case RefinedType(_, name) if name.isHkArgName => // ok
+ case _ => badInst
+ }
+ this
+ }
def derivedRefinedType(parent: Type, refinedName: Name, refinedInfo: Type)(implicit ctx: Context): RefinedType =
if ((parent eq this.parent) && (refinedName eq this.refinedName) && (refinedInfo eq this.refinedInfo)) this