@@ -23,12 +23,18 @@ object Errors {
23
23
def trace : Seq [Tree ]
24
24
def show (using Context ): String
25
25
26
+ def traceSuppressed : Boolean = false
27
+
26
28
def issue (using Context ): Unit =
27
29
report.warning(show + stacktrace, source.srcPos)
28
30
29
31
def toErrors : Errors = this :: Nil
30
32
31
- def stacktrace (using Context ): String = if (trace.isEmpty) " " else " Calling trace:\n " + {
33
+ private def stacktracePrefix : String =
34
+ val str = if traceSuppressed then " suppressed" else " full"
35
+ " Calling trace (" + str + " ):\n "
36
+
37
+ def stacktrace (using Context ): String = if (trace.isEmpty) " " else stacktracePrefix + {
32
38
var indentCount = 0
33
39
var last : String = " "
34
40
val sb = new StringBuilder
@@ -69,7 +75,7 @@ object Errors {
69
75
report.warning(show + stacktrace, field.srcPos)
70
76
}
71
77
72
- case class CyclicObjectInit (objs : Seq [Symbol ], trace : Seq [Tree ]) extends Error {
78
+ case class CyclicObjectInit (objs : Seq [Symbol ], trace : Seq [Tree ], override val traceSuppressed : Boolean ) extends Error {
73
79
def source : Tree = trace.last
74
80
def show (using Context ): String =
75
81
" Cyclic object initialization for " + objs.map(_.show).mkString(" , " ) + " ."
@@ -78,10 +84,9 @@ object Errors {
78
84
report.warning(show + stacktrace, objs.head.srcPos)
79
85
}
80
86
81
- case class ObjectLeakDuringInit (obj : Symbol , trace : Seq [Tree ]) extends Error {
87
+ case class ObjectLeakDuringInit (obj : Symbol , trace : Seq [Tree ], override val traceSuppressed : Boolean ) extends Error {
82
88
def source : Tree = trace.last
83
- def show (using Context ): String =
84
- obj.show + " leaked during its initialization " + " ."
89
+ def show (using Context ): String = obj.show + " leaked during its initialization " + " ."
85
90
86
91
override def issue (using Context ): Unit =
87
92
report.warning(show + stacktrace, obj.srcPos)
0 commit comments