Skip to content

Commit 0394d8f

Browse files
EugeneFlesselleprolativ
authored andcommitted
Fix AliasingBounds#derivedAlias
an omission from ef7db7a [Cherry-picked 1bfa819]
1 parent ad6eb2b commit 0394d8f

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

5289-
def derivedAlias(alias: Type)(using Context): AliasingBounds
5289+
def derivedAlias(alias: Type)(using Context): AliasingBounds =
5290+
if alias eq this.alias then this else AliasingBounds(alias)
52905291

52915292
override def computeHash(bs: Binders): Int = doHash(bs, alias)
52925293
override def hashIsStable: Boolean = alias.hashIsStable
@@ -5306,10 +5307,7 @@ object Types extends TypeUtils {
53065307

53075308
/** = T
53085309
*/
5309-
class TypeAlias(alias: Type) extends AliasingBounds(alias) {
5310-
def derivedAlias(alias: Type)(using Context): AliasingBounds =
5311-
if (alias eq this.alias) this else TypeAlias(alias)
5312-
}
5310+
class TypeAlias(alias: Type) extends AliasingBounds(alias)
53135311

53145312
/** = T where `T` is a `MatchType`
53155313
*
@@ -5318,10 +5316,7 @@ object Types extends TypeUtils {
53185316
* If we assumed full substitutivity, we would have to reject all recursive match
53195317
* aliases (or else take the jump and allow full recursive types).
53205318
*/
5321-
class MatchAlias(alias: Type) extends AliasingBounds(alias) {
5322-
def derivedAlias(alias: Type)(using Context): AliasingBounds =
5323-
if (alias eq this.alias) this else MatchAlias(alias)
5324-
}
5319+
class MatchAlias(alias: Type) extends AliasingBounds(alias)
53255320

53265321
object TypeBounds {
53275322
def apply(lo: Type, hi: Type)(using Context): TypeBounds =

0 commit comments

Comments
 (0)