diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2014-02-09 19:07:24 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2014-02-09 19:09:04 -0800 |
commit | bf06e150c44f2e68367ad7d7e488dda0352fb4fb (patch) | |
tree | c9d2912bce4bde14997a63c16e7e04719ce4a52c | |
parent | 71c596a2af1ce06d9e9e951916e4a3863375fbe0 (diff) | |
download | scala-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.scala | 3 | ||||
-rw-r--r-- | src/reflect/scala/reflect/internal/Types.scala | 2 |
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 |