aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Types.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-05-16 13:36:40 +0200
committerMartin Odersky <odersky@gmail.com>2015-05-21 17:41:14 +0200
commit85dcf168b68ac23c619ca88b5f511cb4010895eb (patch)
tree2e2ba86cd99cd54de95f02e56f2e710f3125c24f /src/dotty/tools/dotc/core/Types.scala
parentacc1e15e675ce8c0b022ec4fc30d20d0e78d11c2 (diff)
downloaddotty-85dcf168b68ac23c619ca88b5f511cb4010895eb.tar.gz
dotty-85dcf168b68ac23c619ca88b5f511cb4010895eb.tar.bz2
dotty-85dcf168b68ac23c619ca88b5f511cb4010895eb.zip
Fix error in derivedTypeAlias
Need to generate new type if variance differs from old one.
Diffstat (limited to 'src/dotty/tools/dotc/core/Types.scala')
-rw-r--r--src/dotty/tools/dotc/core/Types.scala2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/core/Types.scala b/src/dotty/tools/dotc/core/Types.scala
index 7d11ffae8..3e538f692 100644
--- a/src/dotty/tools/dotc/core/Types.scala
+++ b/src/dotty/tools/dotc/core/Types.scala
@@ -2590,7 +2590,7 @@ object Types {
abstract class TypeAlias(val alias: Type, override val variance: Int) extends TypeBounds(alias, alias) {
/** pre: this is a type alias */
def derivedTypeAlias(tp: Type, variance: Int = this.variance)(implicit ctx: Context) =
- if (lo eq tp) this
+ if ((lo eq tp) && (variance == this.variance)) this
else TypeAlias(tp, variance)
override def & (that: TypeBounds)(implicit ctx: Context): TypeBounds = {