diff --git a/compiler/src/dotty/tools/dotc/typer/Implicits.scala b/compiler/src/dotty/tools/dotc/typer/Implicits.scala index ede44c2b7f86..020027ea9d74 100644 --- a/compiler/src/dotty/tools/dotc/typer/Implicits.scala +++ b/compiler/src/dotty/tools/dotc/typer/Implicits.scala @@ -627,6 +627,9 @@ trait ImplicitRunInfo: traverse(t.underlying) case t: TermParamRef => traverse(t.underlying) + case t: TypeLambda => + for p <- t.paramRefs do partSeen += p + traverseChildren(t) case t => traverseChildren(t) diff --git a/tests/neg/i16146.scala b/tests/neg/i16146.scala new file mode 100644 index 000000000000..6aed6b263ce4 --- /dev/null +++ b/tests/neg/i16146.scala @@ -0,0 +1,3 @@ + +type N = [X] => (X => X) => X => X +val exp = (a: N) => (b: N) => b(a) // error