aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/core/TypeErasure.scala
diff options
context:
space:
mode:
authorDmitry Petrashko <dark@d-d.me>2017-03-15 10:04:20 +0100
committerGitHub <noreply@github.com>2017-03-15 10:04:20 +0100
commit141fb4b8c63e5b9cbbb1b92f55412e676a38cbf0 (patch)
treecab94bb63bad887672534d4d3f078506a0a9ce59 /compiler/src/dotty/tools/dotc/core/TypeErasure.scala
parent934da77590dad2003fe850b48b2ae01b427508f0 (diff)
parentbe5720c18ca6768c7e72d4258677952848db2bb4 (diff)
downloaddotty-141fb4b8c63e5b9cbbb1b92f55412e676a38cbf0.tar.gz
dotty-141fb4b8c63e5b9cbbb1b92f55412e676a38cbf0.tar.bz2
dotty-141fb4b8c63e5b9cbbb1b92f55412e676a38cbf0.zip
Merge pull request #2043 from dotty-staging/tailrec-derivesFrom
Tailrec for derivesFrom/lookupRefined/classSymbol/classSymbols
Diffstat (limited to 'compiler/src/dotty/tools/dotc/core/TypeErasure.scala')
-rw-r--r--compiler/src/dotty/tools/dotc/core/TypeErasure.scala3
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/src/dotty/tools/dotc/core/TypeErasure.scala b/compiler/src/dotty/tools/dotc/core/TypeErasure.scala
index 10587afd5..fe3396fcb 100644
--- a/compiler/src/dotty/tools/dotc/core/TypeErasure.scala
+++ b/compiler/src/dotty/tools/dotc/core/TypeErasure.scala
@@ -10,6 +10,7 @@ import dotc.transform.ExplicitOuter._
import dotc.transform.ValueClasses._
import util.DotClass
import Definitions.MaxImplementedFunctionArity
+import scala.annotation.tailrec
/** Erased types are:
*
@@ -244,7 +245,7 @@ object TypeErasure {
case JavaArrayType(_) => defn.ObjectType
case _ =>
val cls2 = tp2.classSymbol
- def loop(bcs: List[ClassSymbol], bestSoFar: ClassSymbol): ClassSymbol = bcs match {
+ @tailrec def loop(bcs: List[ClassSymbol], bestSoFar: ClassSymbol): ClassSymbol = bcs match {
case bc :: bcs1 =>
if (cls2.derivesFrom(bc)) {
val newBest = if (bestSoFar.derivesFrom(bc)) bestSoFar else bc