1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
package dotty.tools
package dotc
package reporting
package diagnostic
import dotc.core.Contexts.Context
import util.{SourceFile, NoSource}
import util.{SourcePosition, NoSourcePosition}
import config.Settings.Setting
import interfaces.Diagnostic.{ERROR, WARNING, INFO}
object basic {
class Error(
msgFn: => String,
pos: SourcePosition,
kind: String = "Error",
explanation: String = ""
) extends Message(msgFn, pos, ERROR, kind, explanation)
class Warning(
msgFn: => String,
pos: SourcePosition,
kind: String = "Warning",
explanation: String = ""
) extends Message(msgFn, pos, WARNING, kind, explanation)
class Info(
msgFn: => String,
pos: SourcePosition,
kind: String = "Info",
explanation: String = ""
) extends Message(msgFn, pos, INFO, kind, explanation)
abstract class ConditionalWarning(
msgFn: => String,
pos: SourcePosition,
kind: String,
explanation: String = ""
) extends Warning(msgFn, pos, kind, explanation) {
def enablingOption(implicit ctx: Context): Setting[Boolean]
}
class FeatureWarning(
msgFn: => String,
pos: SourcePosition,
kind: String = "Feature Warning",
explanation: String = ""
) extends ConditionalWarning(msgFn, pos, kind, explanation) {
def enablingOption(implicit ctx: Context) = ctx.settings.feature
}
class UncheckedWarning(
msgFn: => String,
pos: SourcePosition,
kind: String = "Unchecked Warning",
explanation: String = ""
) extends ConditionalWarning(msgFn, pos, kind, explanation) {
def enablingOption(implicit ctx: Context) = ctx.settings.unchecked
}
class DeprecationWarning(
msgFn: => String,
pos: SourcePosition,
kind: String = "Deprecation Warning",
explanation: String = ""
) extends ConditionalWarning(msgFn, pos, kind, explanation) {
def enablingOption(implicit ctx: Context) = ctx.settings.deprecation
}
class MigrationWarning(
msgFn: => String,
pos: SourcePosition,
kind: String = "Migration Warning",
explanation: String = ""
) extends ConditionalWarning(msgFn, pos, kind, explanation) {
def enablingOption(implicit ctx: Context) = ctx.settings.migration
}
}
|