diff options
-rw-r--r-- | src/dotty/tools/dotc/typer/ProtoTypes.scala | 2 | ||||
-rw-r--r-- | tests/pos/i1103.scala | 5 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/typer/ProtoTypes.scala b/src/dotty/tools/dotc/typer/ProtoTypes.scala index 8a758bcc8..7997d1cf4 100644 --- a/src/dotty/tools/dotc/typer/ProtoTypes.scala +++ b/src/dotty/tools/dotc/typer/ProtoTypes.scala @@ -420,6 +420,8 @@ object ProtoTypes { WildcardType(tp1a.bounds | tp2a.bounds) else tp.derivedOrType(tp1a, tp2a) + case tp: LazyRef => + WildcardType case tp: SelectionProto => tp.derivedSelectionProto(tp.name, wildApprox(tp.memberProto), NoViewsAllowed) case tp: ViewProto => diff --git a/tests/pos/i1103.scala b/tests/pos/i1103.scala new file mode 100644 index 000000000..dcc391a6a --- /dev/null +++ b/tests/pos/i1103.scala @@ -0,0 +1,5 @@ +class Sys[S] +class Foo[T <: Sys[T]] { + val t: T = ??? + def foo[A <: Sys[A]](x: A = t) = x +} |