aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/StdNames.scala
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2014-09-09 15:19:24 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2014-09-17 18:07:16 +0200
commit56a0a908eb1e0999504e0e483cfc71664bc79c75 (patch)
treef4c9644042bdb923af7d86117ff78db80814ab88 /src/dotty/tools/dotc/core/StdNames.scala
parent7a74d71202f514e5d5b79b8e393bd564dff5f0a2 (diff)
downloaddotty-56a0a908eb1e0999504e0e483cfc71664bc79c75.tar.gz
dotty-56a0a908eb1e0999504e0e483cfc71664bc79c75.tar.bz2
dotty-56a0a908eb1e0999504e0e483cfc71664bc79c75.zip
Definitions used by patmat
Diffstat (limited to 'src/dotty/tools/dotc/core/StdNames.scala')
-rw-r--r--src/dotty/tools/dotc/core/StdNames.scala57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/core/StdNames.scala b/src/dotty/tools/dotc/core/StdNames.scala
index 3cafd2af7..4f2fe9dba 100644
--- a/src/dotty/tools/dotc/core/StdNames.scala
+++ b/src/dotty/tools/dotc/core/StdNames.scala
@@ -266,6 +266,28 @@ object StdNames {
val x_7 : N = "x$7"
val x_8 : N = "x$8"
val x_9 : N = "x$9"
+ val _1 : N = "_1"
+ val _2 : N = "_2"
+ val _3 : N = "_3"
+ val _4 : N = "_4"
+ val _5 : N = "_5"
+ val _6 : N = "_6"
+ val _7 : N = "_7"
+ val _8 : N = "_8"
+ val _9 : N = "_9"
+ val _10 : N = "_10"
+ val _11 : N = "_11"
+ val _12 : N = "_12"
+ val _13 : N = "_13"
+ val _14 : N = "_14"
+ val _15 : N = "_15"
+ val _16 : N = "_16"
+ val _17 : N = "_17"
+ val _18 : N = "_18"
+ val _19 : N = "_19"
+ val _20 : N = "_20"
+ val _21 : N = "_21"
+ val _22 : N = "_22"
val ??? = encode("???")
@@ -628,6 +650,32 @@ object StdNames {
case _ => termName("x$" + i)
}
+ @switch def productAccessorName(j: Int): TermName = j match {
+ case 1 => nme._1
+ case 2 => nme._2
+ case 3 => nme._3
+ case 4 => nme._4
+ case 5 => nme._5
+ case 6 => nme._6
+ case 7 => nme._7
+ case 8 => nme._8
+ case 9 => nme._9
+ case 10 => nme._10
+ case 11 => nme._11
+ case 12 => nme._12
+ case 13 => nme._13
+ case 14 => nme._14
+ case 15 => nme._15
+ case 16 => nme._16
+ case 17 => nme._17
+ case 18 => nme._18
+ case 19 => nme._19
+ case 20 => nme._20
+ case 21 => nme._21
+ case 22 => nme._22
+ case _ => termName("_" + j)
+ }
+
def syntheticParamNames(num: Int): List[TermName] =
(0 until num).map(syntheticParamName)(breakOut)
@@ -637,6 +685,15 @@ object StdNames {
def newBitmapName(bitmapPrefix: TermName, n: Int): TermName = bitmapPrefix ++ n.toString
def selectorName(n: Int): TermName = "_" + (n + 1)
+ /** Is name a variable name? */
+ def isVariableName(name: Name): Boolean = {
+ val first = name.firstChar
+ ( ((first.isLower && first.isLetter) || first == '_')
+ && (name != nme.false_)
+ && (name != nme.true_)
+ && (name != nme.null_)
+ )
+ }
object primitive {
val arrayApply: TermName = "[]apply"