aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/TypeComparer.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-01-26 22:20:23 +0100
committerMartin Odersky <odersky@gmail.com>2014-01-26 22:20:23 +0100
commitda9579110af09d1f9702ea9047a150724ed1291b (patch)
tree8d6f1311d3627c0c0ad2254c8904e20def8721ab /src/dotty/tools/dotc/core/TypeComparer.scala
parentaafa0c16dbf95fb880573dea6f9ee6db02470740 (diff)
downloaddotty-da9579110af09d1f9702ea9047a150724ed1291b.tar.gz
dotty-da9579110af09d1f9702ea9047a150724ed1291b.tar.bz2
dotty-da9579110af09d1f9702ea9047a150724ed1291b.zip
Instrumentation on total isSubType calls.
Diffstat (limited to 'src/dotty/tools/dotc/core/TypeComparer.scala')
-rw-r--r--src/dotty/tools/dotc/core/TypeComparer.scala13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/dotty/tools/dotc/core/TypeComparer.scala b/src/dotty/tools/dotc/core/TypeComparer.scala
index 87c6881b0..bf021c7db 100644
--- a/src/dotty/tools/dotc/core/TypeComparer.scala
+++ b/src/dotty/tools/dotc/core/TypeComparer.scala
@@ -53,6 +53,7 @@ class TypeComparer(initctx: Context) extends DotClass {
/** For stastics: count how many isSubTypes are part of succesful comparisons */
private var successCount = 0
+ private var totalCount = 0
private var myAnyClass: ClassSymbol = null
private var myNothingClass: ClassSymbol = null
@@ -194,7 +195,8 @@ class TypeComparer(initctx: Context) extends DotClass {
else if (tp1 eq tp2) true
else {
val saved = constraint
- val savedCount = successCount
+ val savedSuccessCount = successCount
+ val savedTotalCount = totalCount
try {
recCount += 1
/* !!! DEBUG
@@ -209,15 +211,18 @@ class TypeComparer(initctx: Context) extends DotClass {
if (oldCompare) firstTry(tp1, tp2) else compare(tp1, tp2)
else monitoredIsSubType(tp1, tp2)
successCount += 1
+ totalCount += 1
recCount -= 1
if (!result) {
constraint = saved
- successCount = savedCount
+ successCount = savedSuccessCount
}
else if (recCount == 0) {
if (needsGc) ctx.typerState.gc()
- Stats.record("successful-<:<", successCount)
+ Stats.record("successful subType", successCount)
+ Stats.record("total subType", totalCount)
successCount = 0
+ totalCount = 0
}
result
} catch {
@@ -235,7 +240,7 @@ class TypeComparer(initctx: Context) extends DotClass {
}
recCount -= 1
constraint = saved
- successCount = savedCount
+ successCount = savedSuccessCount
throw ex
}
}