diff --git a/compiler/src/dotty/tools/dotc/core/TypeComparer.scala b/compiler/src/dotty/tools/dotc/core/TypeComparer.scala index 94872dc1e8d2..31863a8ea600 100644 --- a/compiler/src/dotty/tools/dotc/core/TypeComparer.scala +++ b/compiler/src/dotty/tools/dotc/core/TypeComparer.scala @@ -1714,8 +1714,8 @@ class TypeComparer(@constructorOnly initctx: Context) extends ConstraintHandling * comparison will instantiate or constrain type variables first. */ def isIncomplete(arg1: Type, arg2: Type): Boolean = - val arg1d = arg1.strippedDealias - val arg2d = arg2.strippedDealias + val arg1d = arg1.stripped + val arg2d = arg2.stripped (v >= 0) && (arg1d.isInstanceOf[AndType] || arg2d.isInstanceOf[OrType]) || (v <= 0) && (arg1d.isInstanceOf[OrType] || arg2d.isInstanceOf[AndType]) diff --git a/tests/pos/i20078/AbstractShapeBuilder.java b/tests/pos/i20078/AbstractShapeBuilder.java new file mode 100644 index 000000000000..5ca57c4f70a6 --- /dev/null +++ b/tests/pos/i20078/AbstractShapeBuilder.java @@ -0,0 +1,3 @@ +public abstract class AbstractShapeBuilder, S extends Shape> { + abstract public B addTrait(Trait trait); +} \ No newline at end of file diff --git a/tests/pos/i20078/Shape.java b/tests/pos/i20078/Shape.java new file mode 100644 index 000000000000..e4b4540362bc --- /dev/null +++ b/tests/pos/i20078/Shape.java @@ -0,0 +1 @@ +public interface Shape {} diff --git a/tests/pos/i20078/Test.scala b/tests/pos/i20078/Test.scala new file mode 100644 index 000000000000..b529af7e40c3 --- /dev/null +++ b/tests/pos/i20078/Test.scala @@ -0,0 +1,3 @@ +@main def Test = + val builder: AbstractShapeBuilder[? <: AbstractShapeBuilder[?, ?], ? <: Shape] = ??? + List.empty[Trait].foreach(builder.addTrait(_)) \ No newline at end of file diff --git a/tests/pos/i20078/Trait.java b/tests/pos/i20078/Trait.java new file mode 100644 index 000000000000..8082056c1e26 --- /dev/null +++ b/tests/pos/i20078/Trait.java @@ -0,0 +1 @@ +public interface Trait {}