summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2014-02-09 19:07:24 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2014-02-09 19:09:04 -0800
commitbf06e150c44f2e68367ad7d7e488dda0352fb4fb (patch)
treec9d2912bce4bde14997a63c16e7e04719ce4a52c
parent71c596a2af1ce06d9e9e951916e4a3863375fbe0 (diff)
downloadscala-bf06e150c44f2e68367ad7d7e488dda0352fb4fb.tar.gz
scala-bf06e150c44f2e68367ad7d7e488dda0352fb4fb.tar.bz2
scala-bf06e150c44f2e68367ad7d7e488dda0352fb4fb.zip
SI-6169 TODO: consolidate with fix for SI-1786 (#2518)
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala3
-rw-r--r--src/reflect/scala/reflect/internal/Types.scala2
2 files changed, 5 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index 10fe530445..e762196128 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -4901,6 +4901,9 @@ trait Typers extends Adaptations with Tags with TypersTracking with PatternTyper
)
arg match {
case Bind(_, _) => enhanceBounds()
+ // TODO: consolidate fixes for SI-6169 and SI-1786 by dropping the Ident case,
+ // in favor of doing sharpenQuantifierBounds for all ExistentialTypes, not just java-defined ones
+ // (need to figure out how to sharpen the bounds on creation without running into cycles)
case Ident(name) if canEnhanceIdent => enhanceBounds()
case _ =>
}
diff --git a/src/reflect/scala/reflect/internal/Types.scala b/src/reflect/scala/reflect/internal/Types.scala
index 4fbac235f4..17a58d79f6 100644
--- a/src/reflect/scala/reflect/internal/Types.scala
+++ b/src/reflect/scala/reflect/internal/Types.scala
@@ -2693,6 +2693,8 @@ trait Types
*
* (Also tried doing this once during class file parsing or when creating the existential type,
* but that causes cyclic errors because it happens too early.)
+ *
+ * TODO: figure out how to do this earlier without running into cycles, so this can subsume the fix for SI-1786
*/
private def sharpenQuantifierBounds(): Unit = {
/* Check that we're looking at rawToExistential's handiwork