summaryrefslogtreecommitdiff
path: root/src/reflect
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2012-12-12 16:02:21 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2012-12-12 16:02:21 -0800
commitdf78f76682145c805a487e2b939e0844a6623ece (patch)
treee8f78e1fb1509a1c4fd704f8b3a0ea64f8d00053 /src/reflect
parent7968f935d7af448e3dec23860b47394e7fd057bb (diff)
parent24455e22d56c8447fdf6089ad612f6ce75020f0b (diff)
downloadscala-df78f76682145c805a487e2b939e0844a6623ece.tar.gz
scala-df78f76682145c805a487e2b939e0844a6623ece.tar.bz2
scala-df78f76682145c805a487e2b939e0844a6623ece.zip
Merge pull request #1758 from hubertp/2.10.x-issue/strip-tvars
When we strip tvars we should also recursively strip their instantiation...
Diffstat (limited to 'src/reflect')
-rw-r--r--src/reflect/scala/reflect/internal/Types.scala4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/reflect/scala/reflect/internal/Types.scala b/src/reflect/scala/reflect/internal/Types.scala
index d82692000d..119a57d268 100644
--- a/src/reflect/scala/reflect/internal/Types.scala
+++ b/src/reflect/scala/reflect/internal/Types.scala
@@ -6605,11 +6605,11 @@ trait Types extends api.Types { self: SymbolTable =>
case ExistentialType(qs, _) => qs
case t => List()
}
- def stripType(tp: Type) = tp match {
+ def stripType(tp: Type): Type = tp match {
case ExistentialType(_, res) =>
res
case tv@TypeVar(_, constr) =>
- if (tv.instValid) constr.inst
+ if (tv.instValid) stripType(constr.inst)
else if (tv.untouchable) tv
else abort("trying to do lub/glb of typevar "+tp)
case t => t