diff --git a/core/src/main/scala-2.13.7+/latest/splain/SplainFormattingExtension.scala b/core/src/main/scala-2.13.7+/latest/splain/SplainFormattingExtension.scala index 3e81db6..b563c36 100644 --- a/core/src/main/scala-2.13.7+/latest/splain/SplainFormattingExtension.scala +++ b/core/src/main/scala-2.13.7+/latest/splain/SplainFormattingExtension.scala @@ -393,20 +393,7 @@ trait SplainFormattingExtension extends typechecker.splain.SplainFormatting with // new implementation is idempotent and won't lose information override def dealias(tpe: Type): Type = { - if (isAux(tpe)) tpe - else { - val result = tpe.dealias.normalize - result match { - case p: PolyType => - val target = dealias(p.resultType) - val _p = p.copy( - resultType = target - ) - _p - case _ => - result - } - } + TypeView(tpe).dealias_normal } case class FormattedIndex( diff --git a/core/src/main/scala-2.13.7+/latest/splain/TyperCompatViews.scala b/core/src/main/scala-2.13.7+/latest/splain/TyperCompatViews.scala index cc7705f..82508e9 100644 --- a/core/src/main/scala-2.13.7+/latest/splain/TyperCompatViews.scala +++ b/core/src/main/scala-2.13.7+/latest/splain/TyperCompatViews.scala @@ -20,6 +20,24 @@ trait TyperCompatViews { self } + lazy val dealias_normal: Type = { + + if (isAux(self)) self + else { + val result = self.dealias.normalize + result match { + case p: PolyType => + val target = TypeView(p.resultType).dealias_normal + val _p = p.copy( + resultType = target + ) + _p + case _ => + result + } + } + } + lazy val definingSymbol: Symbol = { self match {