Skip to content

Commit a1a7b12

Browse files
EugeneFlesselleWojciechMazur
authored andcommitted
Fix AliasingBounds#derivedAlias
an omission from ef7db7a [Cherry-picked 1bfa819]
1 parent 337d03a commit a1a7b12

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
@@ -5708,7 +5708,8 @@ object Types extends TypeUtils {
57085708
/** Common supertype of `TypeAlias` and `MatchAlias` */
57095709
abstract class AliasingBounds(val alias: Type) extends TypeBounds(alias, alias) {
57105710

5711-
def derivedAlias(alias: Type)(using Context): AliasingBounds
5711+
def derivedAlias(alias: Type)(using Context): AliasingBounds =
5712+
if alias eq this.alias then this else AliasingBounds(alias)
57125713

57135714
override def computeHash(bs: Binders): Int = doHash(bs, alias)
57145715
override def hashIsStable: Boolean = alias.hashIsStable
@@ -5730,10 +5731,7 @@ object Types extends TypeUtils {
57305731

57315732
/** = T
57325733
*/
5733-
class TypeAlias(alias: Type) extends AliasingBounds(alias) {
5734-
def derivedAlias(alias: Type)(using Context): AliasingBounds =
5735-
if (alias eq this.alias) this else TypeAlias(alias)
5736-
}
5734+
class TypeAlias(alias: Type) extends AliasingBounds(alias)
57375735

57385736
/** = T where `T` is a `MatchType`
57395737
*
@@ -5742,10 +5740,7 @@ object Types extends TypeUtils {
57425740
* If we assumed full substitutivity, we would have to reject all recursive match
57435741
* aliases (or else take the jump and allow full recursive types).
57445742
*/
5745-
class MatchAlias(alias: Type) extends AliasingBounds(alias) {
5746-
def derivedAlias(alias: Type)(using Context): AliasingBounds =
5747-
if (alias eq this.alias) this else MatchAlias(alias)
5748-
}
5743+
class MatchAlias(alias: Type) extends AliasingBounds(alias)
57495744

57505745
object TypeBounds {
57515746
def apply(lo: Type, hi: Type)(using Context): TypeBounds =

0 commit comments

Comments
 (0)