diff options
author | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2014-02-10 18:55:21 +0100 |
---|---|---|
committer | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2014-02-10 18:55:21 +0100 |
commit | 2ee1328e7944e4544ee046e30bfad1a5eb3ab07e (patch) | |
tree | 9fe80d73f99424e6729dd097297c801d4ce0fe2e /src | |
parent | 16ed9f4739ca6ed0c2e8d325a83badf70123fc42 (diff) | |
parent | bf06e150c44f2e68367ad7d7e488dda0352fb4fb (diff) | |
download | scala-2ee1328e7944e4544ee046e30bfad1a5eb3ab07e.tar.gz scala-2ee1328e7944e4544ee046e30bfad1a5eb3ab07e.tar.bz2 scala-2ee1328e7944e4544ee046e30bfad1a5eb3ab07e.zip |
Merge pull request #3496 from adriaanm/t6169
SI-6169 TODO: consolidate with fix for SI-1786 (#2518)
Diffstat (limited to 'src')
-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 edc0bedfdb..edec831594 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -4902,6 +4902,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 |