diff options
author | Martin Odersky <odersky@gmail.com> | 2015-05-16 13:36:40 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-05-21 17:41:14 +0200 |
commit | 85dcf168b68ac23c619ca88b5f511cb4010895eb (patch) | |
tree | 2e2ba86cd99cd54de95f02e56f2e710f3125c24f /src/dotty/tools/dotc/core/Types.scala | |
parent | acc1e15e675ce8c0b022ec4fc30d20d0e78d11c2 (diff) | |
download | dotty-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.scala | 2 |
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 = { |