@@ -4300,13 +4300,16 @@ object Types {
43004300 parentsCache
43014301 }
43024302
4303+ protected def newLikeThis (prefix : Type , classParents : List [Type ], decls : Scope , selfInfo : TypeOrSymbol )(given Context ): ClassInfo =
4304+ ClassInfo (prefix, cls, classParents, decls, selfInfo)
4305+
43034306 def derivedClassInfo (prefix : Type )(implicit ctx : Context ): ClassInfo =
43044307 if (prefix eq this .prefix) this
4305- else ClassInfo (prefix, cls , classParents, decls, selfInfo)
4308+ else newLikeThis (prefix, classParents, decls, selfInfo)
43064309
43074310 def derivedClassInfo (prefix : Type = this .prefix, classParents : List [Type ] = this .classParents, decls : Scope = this .decls, selfInfo : TypeOrSymbol = this .selfInfo)(implicit ctx : Context ): ClassInfo =
43084311 if ((prefix eq this .prefix) && (classParents eq this .classParents) && (decls eq this .decls) && (selfInfo eq this .selfInfo)) this
4309- else ClassInfo (prefix, cls , classParents, decls, selfInfo)
4312+ else newLikeThis (prefix, classParents, decls, selfInfo)
43104313
43114314 override def computeHash (bs : Binders ): Int = doHash(bs, cls, prefix)
43124315 override def hashIsStable : Boolean = prefix.hashIsStable && classParents.hashIsStable
@@ -4347,9 +4350,8 @@ object Types {
43474350 def finalized (parents : List [Type ])(implicit ctx : Context ): ClassInfo =
43484351 ClassInfo (prefix, cls, parents, decls, selfInfo)
43494352
4350- override def derivedClassInfo (prefix : Type )(implicit ctx : Context ): ClassInfo =
4351- if (prefix eq this .prefix) this
4352- else new TempClassInfo (prefix, cls, decls, selfInfo)
4353+ override def newLikeThis (prefix : Type , classParents : List [Type ], decls : Scope , selfInfo : TypeOrSymbol )(given Context ): ClassInfo =
4354+ TempClassInfo (prefix, cls, decls, selfInfo)
43534355
43544356 override def toString : String = s " TempClassInfo( $prefix, $cls) "
43554357 }
0 commit comments