From 25f38589093dc070c400e9767474faf5fb4fc075 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Mon, 7 Dec 2015 13:48:44 +0100 Subject: Disregard BaseTypeArg parameters when variance checking. Allows us to compile immutable.Set. --- src/dotty/tools/dotc/typer/VarianceChecker.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/dotty/tools/dotc/typer/VarianceChecker.scala') diff --git a/src/dotty/tools/dotc/typer/VarianceChecker.scala b/src/dotty/tools/dotc/typer/VarianceChecker.scala index 86b1676c5..26882b6f4 100644 --- a/src/dotty/tools/dotc/typer/VarianceChecker.scala +++ b/src/dotty/tools/dotc/typer/VarianceChecker.scala @@ -60,7 +60,7 @@ class VarianceChecker()(implicit ctx: Context) { /** Check variance of abstract type `tvar` when referred from `base`. */ private def checkVarianceOfSymbol(tvar: Symbol): Option[VarianceError] = { val relative = relativeVariance(tvar, base) - if (relative == Bivariant) None + if (relative == Bivariant || tvar.is(BaseTypeArg)) None else { val required = compose(relative, this.variance) def tvar_s = s"$tvar (${varianceString(tvar.flags)} ${tvar.showLocated})" -- cgit v1.2.3