diff options
author | Adriaan Moors <adriaan.moors@epfl.ch> | 2012-07-24 14:32:04 +0200 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@epfl.ch> | 2012-07-24 15:27:47 +0200 |
commit | 0391436aa1bfd1b9fabaf9d93e8c077dbea53a38 (patch) | |
tree | b43378a4fccadf84c2398bf02f931259f0df3438 /src/reflect/scala/reflect/internal/TreeInfo.scala | |
parent | f5f7570778586e8230439c4dbacb5f49dea185ff (diff) | |
download | scala-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.scala | 10 |
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 { |