diff --git a/compiler/src/dotty/tools/dotc/core/TypeErasure.scala b/compiler/src/dotty/tools/dotc/core/TypeErasure.scala index 5ce82de63eed..9b82aa7cba25 100644 --- a/compiler/src/dotty/tools/dotc/core/TypeErasure.scala +++ b/compiler/src/dotty/tools/dotc/core/TypeErasure.scala @@ -821,10 +821,10 @@ class TypeErasure(sourceLanguage: SourceLanguage, semiEraseVCs: Boolean, isConst sigName(this(tp)) case tp: TypeProxy => sigName(tp.underlying) - case _: ErrorType | WildcardType | NoType => - tpnme.WILDCARD case tp: WildcardType => - sigName(tp.optBounds) + tpnme.Uninstantiated + case _: ErrorType | NoType => + tpnme.ERROR case _ => val erasedTp = this(tp) assert(erasedTp ne tp, tp) diff --git a/tests/pos/i11481.scala b/tests/pos/i11481.scala new file mode 100644 index 000000000000..99fa6a250ff0 --- /dev/null +++ b/tests/pos/i11481.scala @@ -0,0 +1,2 @@ +case class Foo[F[_]](f: {def f(x: F[Int]): Object}) +case class Bar[F[_], G[_]](f: [B] => F[B] => G[B])