Skip to content

Commit 1bfa819

Browse files
Fix AliasingBounds#derivedAlias
an omission from ef7db7a
1 parent 9465d65 commit 1bfa819

File tree

1 file changed

+4
-9
lines changed

1 file changed

+4
-9
lines changed

compiler/src/dotty/tools/dotc/core/Types.scala

+4-9
Original file line numberDiff line numberDiff line change
@@ -5692,7 +5692,8 @@ object Types extends TypeUtils {
56925692
/** Common supertype of `TypeAlias` and `MatchAlias` */
56935693
abstract class AliasingBounds(val alias: Type) extends TypeBounds(alias, alias) {
56945694

5695-
def derivedAlias(alias: Type)(using Context): AliasingBounds
5695+
def derivedAlias(alias: Type)(using Context): AliasingBounds =
5696+
if alias eq this.alias then this else AliasingBounds(alias)
56965697

56975698
override def computeHash(bs: Binders): Int = doHash(bs, alias)
56985699
override def hashIsStable: Boolean = alias.hashIsStable
@@ -5714,10 +5715,7 @@ object Types extends TypeUtils {
57145715

57155716
/** = T
57165717
*/
5717-
class TypeAlias(alias: Type) extends AliasingBounds(alias) {
5718-
def derivedAlias(alias: Type)(using Context): AliasingBounds =
5719-
if (alias eq this.alias) this else TypeAlias(alias)
5720-
}
5718+
class TypeAlias(alias: Type) extends AliasingBounds(alias)
57215719

57225720
/** = T where `T` is a `MatchType`
57235721
*
@@ -5726,10 +5724,7 @@ object Types extends TypeUtils {
57265724
* If we assumed full substitutivity, we would have to reject all recursive match
57275725
* aliases (or else take the jump and allow full recursive types).
57285726
*/
5729-
class MatchAlias(alias: Type) extends AliasingBounds(alias) {
5730-
def derivedAlias(alias: Type)(using Context): AliasingBounds =
5731-
if (alias eq this.alias) this else MatchAlias(alias)
5732-
}
5727+
class MatchAlias(alias: Type) extends AliasingBounds(alias)
57335728

57345729
object TypeBounds {
57355730
def apply(lo: Type, hi: Type)(using Context): TypeBounds =

0 commit comments

Comments
 (0)