summaryrefslogtreecommitdiff
path: root/src/reflect/scala/reflect/internal/TreeInfo.scala
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@epfl.ch>2012-07-24 14:32:04 +0200
committerAdriaan Moors <adriaan.moors@epfl.ch>2012-07-24 15:27:47 +0200
commit0391436aa1bfd1b9fabaf9d93e8c077dbea53a38 (patch)
treeb43378a4fccadf84c2398bf02f931259f0df3438 /src/reflect/scala/reflect/internal/TreeInfo.scala
parentf5f7570778586e8230439c4dbacb5f49dea185ff (diff)
downloadscala-0391436aa1bfd1b9fabaf9d93e8c077dbea53a38.tar.gz
scala-0391436aa1bfd1b9fabaf9d93e8c077dbea53a38.tar.bz2
scala-0391436aa1bfd1b9fabaf9d93e8c077dbea53a38.zip
move synthetic case symbol detection to treeInfo
encapsulate creating synthetic case labels while we're at it
Diffstat (limited to 'src/reflect/scala/reflect/internal/TreeInfo.scala')
-rw-r--r--src/reflect/scala/reflect/internal/TreeInfo.scala10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/reflect/scala/reflect/internal/TreeInfo.scala b/src/reflect/scala/reflect/internal/TreeInfo.scala
index 7ba749ed2c..17a01e1af9 100644
--- a/src/reflect/scala/reflect/internal/TreeInfo.scala
+++ b/src/reflect/scala/reflect/internal/TreeInfo.scala
@@ -464,6 +464,16 @@ abstract class TreeInfo {
case _ => false
}
+
+ // used in the symbols for labeldefs and valdefs emitted by the pattern matcher
+ // tailcalls, cps,... use this flag combination to detect translated matches
+ // TODO: move to Flags
+ final val SYNTH_CASE_FLAGS = CASE | SYNTHETIC
+
+ def isSynthCaseSymbol(sym: Symbol) = sym hasAllFlags SYNTH_CASE_FLAGS
+ def hasSynthCaseSymbol(t: Tree) = t.symbol != null && isSynthCaseSymbol(t.symbol)
+
+
/** The method part of an application node
*/
def methPart(tree: Tree): Tree = tree match {