summaryrefslogtreecommitdiff
path: root/src/library/scala/reflect/api/StandardNames.scala
blob: 80aed040737b86d6c13a39526bff8255f54994ed (plain) (blame)
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
/* NSC -- new Scala compiler
* Copyright 2005-2011 LAMP/EPFL
* @author  Martin Odersky
*/
package scala.reflect
package api

trait StandardNames extends base.StandardNames {
  self: Universe =>

  val nme: TermNamesApi
  val tpnme: TypeNamesApi

  trait NamesApi extends NamesBase {
    val ANON_CLASS_NAME: NameType
    val ANON_FUN_NAME: NameType
    val EMPTY: NameType
    val ERROR: NameType
    val IMPORT: NameType
    val MODULE_VAR_SUFFIX: NameType
    val PACKAGE: NameType
    val ROOT: NameType
    val SPECIALIZED_SUFFIX: NameType

    def flattenedName(segments: Name*): NameType
  }

  trait TermNamesApi extends NamesApi with TermNamesBase {
    val EXPAND_SEPARATOR_STRING: String
    val IMPL_CLASS_SUFFIX: String
    val INTERPRETER_IMPORT_WRAPPER: String
    val INTERPRETER_LINE_PREFIX: String
    val INTERPRETER_VAR_PREFIX: String
    val INTERPRETER_WRAPPER_SUFFIX: String
    val LOCALDUMMY_PREFIX: String
    val LOCAL_SUFFIX_STRING: String
    val MODULE_SUFFIX_NAME: TermName
    val NAME_JOIN_NAME: TermName
    val PROTECTED_PREFIX: String
    val PROTECTED_SET_PREFIX: String
    val SETTER_SUFFIX: TermName
    val SINGLETON_SUFFIX: String
    val SUPER_PREFIX_STRING: String
    val TRAIT_SETTER_SEPARATOR_STRING: String

    val ANYNAME: TermName
    val FAKE_LOCAL_THIS: TermName
    val INITIALIZER: TermName
    val LAZY_LOCAL: TermName
    val MIRROR_FREE_PREFIX: NameType
    val MIRROR_FREE_THIS_SUFFIX: NameType
    val MIRROR_FREE_VALUE_SUFFIX: NameType
    val MIRROR_PREFIX: NameType
    val MIRROR_SHORT: NameType
    val MIRROR_SYMDEF_PREFIX: NameType
    val MIXIN_CONSTRUCTOR: TermName
    val MODULE_INSTANCE_FIELD: TermName
    val OUTER: TermName
    val OUTER_LOCAL: TermName
    val OUTER_SYNTH: TermName
    val SELECTOR_DUMMY: TermName
    val SELF: TermName
    val SPECIALIZED_INSTANCE: TermName
    val STAR: TermName
    val THIS: TermName

    val BITMAP_NORMAL: TermName
    val BITMAP_TRANSIENT: TermName
    val BITMAP_CHECKINIT: TermName
    val BITMAP_CHECKINIT_TRANSIENT: TermName

    val ROOTPKG: TermName

    val ADD: TermName
    val AND: TermName
    val ASR: TermName
    val DIV: TermName
    val EQ: TermName
    val EQL: TermName
    val GE: TermName
    val GT: TermName
    val HASHHASH: TermName
    val LE: TermName
    val LSL: TermName
    val LSR: TermName
    val LT: TermName
    val MINUS: TermName
    val MOD: TermName
    val MUL: TermName
    val NE: TermName
    val OR: TermName
    val PLUS : TermName
    val SUB: TermName
    val XOR: TermName
    val ZAND: TermName
    val ZOR: TermName

    val UNARY_~ : TermName
    val UNARY_+ : TermName
    val UNARY_- : TermName
    val UNARY_! : TermName

    val ??? : TermName

    def isConstructorName(name: Name): Boolean
    def isExceptionResultName(name: Name): Boolean
    def isImplClassName(name: Name): Boolean
    def isLocalDummyName(name: Name): Boolean
    def isLocalName(name: Name): Boolean
    def isLoopHeaderLabel(name: Name): Boolean
    def isModuleName(name: Name): Boolean
    def isOpAssignmentName(name: Name): Boolean
    def isProtectedAccessorName(name: Name): Boolean
    def isReplWrapperName(name: Name): Boolean
    def isSetterName(name: Name): Boolean
    def isSingletonName(name: Name): Boolean
    def isSuperAccessorName(name: Name): Boolean
    def isTraitSetterName(name: Name): Boolean

    def defaultGetterName(name: Name, pos: Int): TermName
    def defaultGetterToMethod(name: Name): TermName
    def expandedName(name: TermName, base: Symbol, separator: String): TermName
    def expandedSetterName(name: TermName, base: Symbol): TermName
    def getterName(name: TermName): TermName
    def getterToLocal(name: TermName): TermName
    def getterToSetter(name: TermName): TermName
    def localDummyName(clazz: Symbol): TermName
    def localToGetter(name: TermName): TermName
    def protName(name: Name): TermName
    def protSetterName(name: Name): TermName
    def setterToGetter(name: TermName): TermName
    def superName(name: Name): TermName

    def dropLocalSuffix(name: Name): Name
    def originalName(name: Name): Name
    def stripModuleSuffix(name: Name): Name
    def unspecializedName(name: Name): Name
    def segments(name: String, assumeTerm: Boolean): List[Name]
    def splitSpecializedName(name: Name): (Name, String, String)
  }

  trait TypeNamesApi extends NamesApi with TypeNamesBase {
    val BYNAME_PARAM_CLASS_NAME: TypeName
    val EQUALS_PATTERN_NAME: TypeName
    val JAVA_REPEATED_PARAM_CLASS_NAME: TypeName
    val LOCAL_CHILD: TypeName
    val REFINE_CLASS_NAME: TypeName
    val REPEATED_PARAM_CLASS_NAME: TypeName
    val WILDCARD_STAR: TypeName

    def dropSingletonName(name: Name): TypeName
    def implClassName(name: Name): TypeName
    def interfaceName(implname: Name): TypeName
    def singletonName(name: Name): TypeName
  }
}