Skip to content

Commit 7cecbdb

Browse files
authored
Merge pull request scala#7012 from milessabin/topic/faster-cores
Speed up implicit resolution by avoiding allocations when traversing TypeRefs in core
2 parents d9e0f5f + 88f911e commit 7cecbdb

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

src/compiler/scala/tools/nsc/typechecker/Implicits.scala

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,10 @@ trait Implicits {
482482
case AnnotatedType(annots, tp) => core(tp)
483483
case ExistentialType(tparams, result) => core(result).subst(tparams, tparams map (t => core(t.info.bounds.hi)))
484484
case PolyType(tparams, result) => core(result).subst(tparams, tparams map (t => core(t.info.bounds.hi)))
485-
case TypeRef(pre, sym, args) => typeRef(pre, sym, args.map(core))
485+
case TypeRef(pre, sym, args) =>
486+
val coreArgs = args.mapConserve(core)
487+
if (coreArgs eq args) tp
488+
else typeRef(pre, sym, coreArgs)
486489
case _ => tp
487490
}
488491

0 commit comments

Comments
 (0)