summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2016-02-18 15:47:44 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2016-03-26 09:31:01 -0700
commit4356ac7a1d2cae67d80af84c64a6c2d941a11b4b (patch)
tree62ca1b418bdeff73cd7e0106caa54e86a7265b6a
parentb86021f47fbae1c5ca54e094c2669b7f4f27371d (diff)
downloadscala-4356ac7a1d2cae67d80af84c64a6c2d941a11b4b.tar.gz
scala-4356ac7a1d2cae67d80af84c64a6c2d941a11b4b.tar.bz2
scala-4356ac7a1d2cae67d80af84c64a6c2d941a11b4b.zip
TypeHistory's toString time travels consistently
For each history entry, run the `Type`'s `toString` at the corresponding phase, so that e.g., a method type's parameter symbols' `info`'s `toString` runs at the phase corresponding to the type history we're turning into a string.
-rw-r--r--src/reflect/scala/reflect/internal/Symbols.scala5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/reflect/scala/reflect/internal/Symbols.scala b/src/reflect/scala/reflect/internal/Symbols.scala
index 34f9417e57..0cbb45d12d 100644
--- a/src/reflect/scala/reflect/internal/Symbols.scala
+++ b/src/reflect/scala/reflect/internal/Symbols.scala
@@ -3642,7 +3642,10 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
assert((prev eq null) || phaseId(validFrom) > phaseId(prev.validFrom), this)
assert(validFrom != NoPeriod, this)
- private def phaseString = "%s: %s".format(phaseOf(validFrom), info)
+ private def phaseString = {
+ val phase = phaseOf(validFrom)
+ s"$phase: ${exitingPhase(phase)(info.toString)}"
+ }
override def toString = toList reverseMap (_.phaseString) mkString ", "
def toList: List[TypeHistory] = this :: ( if (prev eq null) Nil else prev.toList )