@@ -4300,13 +4300,16 @@ object Types {
4300
4300
parentsCache
4301
4301
}
4302
4302
4303
+ protected def newLikeThis (prefix : Type , classParents : List [Type ], decls : Scope , selfInfo : TypeOrSymbol )(given Context ): ClassInfo =
4304
+ ClassInfo (prefix, cls, classParents, decls, selfInfo)
4305
+
4303
4306
def derivedClassInfo (prefix : Type )(implicit ctx : Context ): ClassInfo =
4304
4307
if (prefix eq this .prefix) this
4305
- else ClassInfo (prefix, cls , classParents, decls, selfInfo)
4308
+ else newLikeThis (prefix, classParents, decls, selfInfo)
4306
4309
4307
4310
def derivedClassInfo (prefix : Type = this .prefix, classParents : List [Type ] = this .classParents, decls : Scope = this .decls, selfInfo : TypeOrSymbol = this .selfInfo)(implicit ctx : Context ): ClassInfo =
4308
4311
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)
4310
4313
4311
4314
override def computeHash (bs : Binders ): Int = doHash(bs, cls, prefix)
4312
4315
override def hashIsStable : Boolean = prefix.hashIsStable && classParents.hashIsStable
@@ -4347,9 +4350,8 @@ object Types {
4347
4350
def finalized (parents : List [Type ])(implicit ctx : Context ): ClassInfo =
4348
4351
ClassInfo (prefix, cls, parents, decls, selfInfo)
4349
4352
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)
4353
4355
4354
4356
override def toString : String = s " TempClassInfo( $prefix, $cls) "
4355
4357
}
0 commit comments