@@ -19,11 +19,14 @@ object NameInfo {
19
19
type Kind = Int
20
20
21
21
val TermNameKind = 0
22
- val QualifiedKind = 1
23
- val DefaultGetterKind = 3
24
- val VariantKind = 4
25
- val SuperAccessorKind = 5
26
- val InitializerKind = 6
22
+ val SelectKind = 1
23
+ val FlattenKind = 2
24
+ val ExpandKind = 3
25
+ val TraitSetterKind = 4
26
+ val DefaultGetterKind = 5
27
+ val VariantKind = 6
28
+ val SuperAccessorKind = 7
29
+ val InitializerKind = 8
27
30
val ModuleClassKind = 10
28
31
29
32
val qualifier : Map [String , SimpleTermName => Qualified ] =
@@ -32,7 +35,7 @@ object NameInfo {
32
35
str.EXPAND_SEPARATOR -> Expand ,
33
36
str.TRAIT_SETTER_SEPARATOR -> TraitSetter )
34
37
35
- def definesNewName (kind : Kind ) = kind <= QualifiedKind
38
+ def definesNewName (kind : Kind ) = kind <= TraitSetterKind
36
39
37
40
/** TermNames have the lowest possible kind */
38
41
val TermName = new NameInfo {
@@ -41,32 +44,36 @@ object NameInfo {
41
44
}
42
45
43
46
trait Qualified extends NameInfo {
47
+ def kind : Kind
44
48
def name : SimpleTermName
45
49
def separator : String
46
50
def newLikeThis (name : SimpleTermName ): Qualified // TODO: should use copy instead after bootstrap
47
51
48
- def kind = QualifiedKind
49
52
override def map (f : SimpleTermName => SimpleTermName ): NameInfo = newLikeThis(f(name))
50
53
def mkString (underlying : TermName ) = s " $underlying$separator$name"
51
54
override def toString = s " ${getClass.getSimpleName}( $name) "
52
55
}
53
56
54
57
case class Select (val name : SimpleTermName ) extends Qualified {
58
+ def kind = SelectKind
55
59
def separator = " ."
56
60
def newLikeThis (name : SimpleTermName ) = Select (name)
57
61
}
58
62
59
63
case class Flatten (val name : SimpleTermName ) extends Qualified {
64
+ def kind = FlattenKind
60
65
def separator = " $"
61
66
def newLikeThis (name : SimpleTermName ) = Flatten (name)
62
67
}
63
68
64
69
case class Expand (val name : SimpleTermName ) extends Qualified {
70
+ def kind = ExpandKind
65
71
def separator = str.EXPAND_SEPARATOR
66
72
def newLikeThis (name : SimpleTermName ) = Expand (name)
67
73
}
68
74
69
75
case class TraitSetter (val name : SimpleTermName ) extends Qualified {
76
+ def kind = TraitSetterKind
70
77
def separator = nme.TRAIT_SETTER_SEPARATOR .toString
71
78
def newLikeThis (name : SimpleTermName ) = TraitSetter (name)
72
79
}
0 commit comments