summaryrefslogtreecommitdiff
path: root/src/reflect
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-12-31 01:49:32 -0800
committerPaul Phillips <paulp@improving.org>2012-12-31 03:04:46 -0800
commit340529410696da2e5110d49a5a8d19572bf272ba (patch)
treef83d97c1154486c5205e15fc85282ed1fa3593a5 /src/reflect
parentca98602e8243062c8e1e86afe954c48edc09cbad (diff)
downloadscala-340529410696da2e5110d49a5a8d19572bf272ba.tar.gz
scala-340529410696da2e5110d49a5a8d19572bf272ba.tar.bz2
scala-340529410696da2e5110d49a5a8d19572bf272ba.zip
SI-6897, lubs and varargs star.
Don't allow lubs to calculate refinement types which contain a varargs star outside of legal varargs star position.
Diffstat (limited to 'src/reflect')
-rw-r--r--src/reflect/scala/reflect/internal/Types.scala5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/reflect/scala/reflect/internal/Types.scala b/src/reflect/scala/reflect/internal/Types.scala
index 119a57d268..bfd18f6a43 100644
--- a/src/reflect/scala/reflect/internal/Types.scala
+++ b/src/reflect/scala/reflect/internal/Types.scala
@@ -6801,7 +6801,10 @@ trait Types extends api.Types { self: SymbolTable =>
else lubBase
}
}
- existentialAbstraction(tparams, lubType)
+ // dropRepeatedParamType is a localized fix for SI-6897. We should probably
+ // integrate that transformation at a lower level in master, but lubs are
+ // the likely and maybe only spot they escape, so fixing here for 2.10.1.
+ existentialAbstraction(tparams, dropRepeatedParamType(lubType))
}
if (printLubs) {
println(indent + "lub of " + ts + " at depth "+depth)//debug