From 725c42573f521086fa7561eedb4ebe4c791ab752 Mon Sep 17 00:00:00 2001 From: odersky Date: Wed, 17 Jan 2024 11:22:32 +0100 Subject: [PATCH] Also compute base classes of wildcardTypes Fixes #19460 --- compiler/src/dotty/tools/dotc/core/Types.scala | 2 ++ tests/pos/i19460.scala | 5 +++++ 2 files changed, 7 insertions(+) create mode 100644 tests/pos/i19460.scala diff --git a/compiler/src/dotty/tools/dotc/core/Types.scala b/compiler/src/dotty/tools/dotc/core/Types.scala index fba5f3f56648..55d45dbd0f8b 100644 --- a/compiler/src/dotty/tools/dotc/core/Types.scala +++ b/compiler/src/dotty/tools/dotc/core/Types.scala @@ -657,6 +657,8 @@ object Types extends TypeUtils { tp.superType.baseClasses case tp: ClassInfo => tp.cls.classDenot.baseClasses + case tp: WildcardType => + tp.effectiveBounds.hi.baseClasses case _ => Nil catch case ex: Throwable => handleRecursive("base classes of", this.show, ex) diff --git a/tests/pos/i19460.scala b/tests/pos/i19460.scala new file mode 100644 index 000000000000..b0b9a4ba4ea3 --- /dev/null +++ b/tests/pos/i19460.scala @@ -0,0 +1,5 @@ +type T[A] = A | Any + +def perform[A](using T[A]): A = perform2 + +def perform2[A](using T[A]): A = ??? \ No newline at end of file