@@ -187,7 +187,7 @@ class TastyPrinter(bytes: Array[Byte], val testPickler: Boolean) {
187187 }
188188 indent -= 2
189189 }
190- sb.append(s " \n\n Trees ( ${endAddr.index - startAddr.index} bytes, starting from $base ): " )
190+ sb.append(sectionHeader( " Trees " , reader, lineEnd = false ) )
191191 while (! isAtEnd) {
192192 printTree()
193193 newLine()
@@ -199,7 +199,7 @@ class TastyPrinter(bytes: Array[Byte], val testPickler: Boolean) {
199199 def unpickle0 (reader : TastyReader )(using tastyName : NameRefs ): Unit = {
200200 import reader .*
201201 val posUnpickler = new PositionUnpickler (reader, tastyName)
202- sb.append(s " \n\n Positions ( ${reader.endAddr.index - reader.startAddr.index} bytes, starting from $base ): \n " )
202+ sb.append(sectionHeader( " Positions " , reader) )
203203 val lineSizes = posUnpickler.lineSizes
204204 sb.append(s " lines: ${lineSizes.length}\n " )
205205 sb.append(s " line sizes: \n " )
@@ -232,7 +232,7 @@ class TastyPrinter(bytes: Array[Byte], val testPickler: Boolean) {
232232 import reader .*
233233 val comments = new CommentUnpickler (reader).comments
234234 if ! comments.isEmpty then
235- sb.append(s " \n\n Comments ( ${reader.endAddr.index - reader.startAddr.index} bytes, starting from $base ): \n " )
235+ sb.append(sectionHeader( " Comments " , reader) )
236236 val sorted = comments.toSeq.sortBy(_._1.index)
237237 for ((addr, cmt) <- sorted) {
238238 sb.append(treeStr(" %6d" .format(addr.index)))
@@ -245,7 +245,7 @@ class TastyPrinter(bytes: Array[Byte], val testPickler: Boolean) {
245245 import dotty .tools .tasty .TastyFormat .*
246246 def unpickle0 (reader : TastyReader )(using nameAtRef : NameRefs ): Unit = {
247247 import reader .*
248- sb.append(s " \n\n Attributes ( ${reader.endAddr.index - reader.startAddr.index} bytes, starting from $base ): \n " )
248+ sb.append(sectionHeader( " Attributes " , reader) )
249249 while ! isAtEnd do
250250 // TODO: Should we elide attributes under testPickler? (i.e.
251251 // if we add new attributes many check files will need to be updated)
@@ -290,6 +290,12 @@ class TastyPrinter(bytes: Array[Byte], val testPickler: Boolean) {
290290 }
291291 }
292292
293+ private final def sectionHeader (name : String , reader : TastyReader , lineEnd : Boolean = true ): String =
294+ val count = reader.endAddr.index - reader.startAddr.index
295+ val suffix = if lineEnd then " \n " else " "
296+ val base = if testPickler then " <elided base index>" else reader.base
297+ s " \n\n $name ( $count bytes, starting from $base): $suffix"
298+
293299 abstract class PrinterSectionUnpickler [T ](val name : String ) {
294300 def unpickle0 (reader : TastyReader )(using refs : NameRefs ): T
295301 }
0 commit comments