@@ -4293,13 +4293,16 @@ object Types {
4293
4293
parentsCache
4294
4294
}
4295
4295
4296
+ protected def newLikeThis (prefix : Type , classParents : List [Type ], decls : Scope , selfInfo : TypeOrSymbol )(given Context ): ClassInfo =
4297
+ ClassInfo (prefix, cls, classParents, decls, selfInfo)
4298
+
4296
4299
def derivedClassInfo (prefix : Type )(implicit ctx : Context ): ClassInfo =
4297
4300
if (prefix eq this .prefix) this
4298
- else ClassInfo (prefix, cls , classParents, decls, selfInfo)
4301
+ else newLikeThis (prefix, classParents, decls, selfInfo)
4299
4302
4300
4303
def derivedClassInfo (prefix : Type = this .prefix, classParents : List [Type ] = this .classParents, decls : Scope = this .decls, selfInfo : TypeOrSymbol = this .selfInfo)(implicit ctx : Context ): ClassInfo =
4301
4304
if ((prefix eq this .prefix) && (classParents eq this .classParents) && (decls eq this .decls) && (selfInfo eq this .selfInfo)) this
4302
- else ClassInfo (prefix, cls , classParents, decls, selfInfo)
4305
+ else newLikeThis (prefix, classParents, decls, selfInfo)
4303
4306
4304
4307
override def computeHash (bs : Binders ): Int = doHash(bs, cls, prefix)
4305
4308
override def hashIsStable : Boolean = prefix.hashIsStable && classParents.hashIsStable
@@ -4340,9 +4343,8 @@ object Types {
4340
4343
def finalized (parents : List [Type ])(implicit ctx : Context ): ClassInfo =
4341
4344
ClassInfo (prefix, cls, parents, decls, selfInfo)
4342
4345
4343
- override def derivedClassInfo (prefix : Type )(implicit ctx : Context ): ClassInfo =
4344
- if (prefix eq this .prefix) this
4345
- else new TempClassInfo (prefix, cls, decls, selfInfo)
4346
+ override def newLikeThis (prefix : Type , classParents : List [Type ], decls : Scope , selfInfo : TypeOrSymbol )(given Context ): ClassInfo =
4347
+ TempClassInfo (prefix, cls, decls, selfInfo)
4346
4348
4347
4349
override def toString : String = s " TempClassInfo( $prefix, $cls) "
4348
4350
}
0 commit comments