summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/ast/TreeInfo.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2007-02-21 19:10:41 +0000
committerMartin Odersky <odersky@gmail.com>2007-02-21 19:10:41 +0000
commit914932babf9343fdfcec20f25bfb1576dc8c433b (patch)
tree088e404a21862209be434b0236c34e4576042c51 /src/compiler/scala/tools/nsc/ast/TreeInfo.scala
parentcb7f66a22c9167a7e8ffce042a4bf1c5c9849a89 (diff)
downloadscala-914932babf9343fdfcec20f25bfb1576dc8c433b.tar.gz
scala-914932babf9343fdfcec20f25bfb1576dc8c433b.tar.bz2
scala-914932babf9343fdfcec20f25bfb1576dc8c433b.zip
Removed Pair(...), Triple(...).
Diffstat (limited to 'src/compiler/scala/tools/nsc/ast/TreeInfo.scala')
-rw-r--r--src/compiler/scala/tools/nsc/ast/TreeInfo.scala19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/TreeInfo.scala b/src/compiler/scala/tools/nsc/ast/TreeInfo.scala
index 13980856ec..d4ff2d1737 100644
--- a/src/compiler/scala/tools/nsc/ast/TreeInfo.scala
+++ b/src/compiler/scala/tools/nsc/ast/TreeInfo.scala
@@ -96,6 +96,25 @@ abstract class TreeInfo {
false
}
+ def mayBeVarGetter(sym: Symbol) = sym.info match {
+ case PolyType(List(), _) => sym.owner.isClass && !sym.isStable
+ case _: ImplicitMethodType => sym.owner.isClass && !sym.isStable
+ case _ => false
+ }
+
+ def isVariableOrGetter(tree: Tree) = tree match {
+ case Ident(_) =>
+ tree.symbol.isVariable
+ case Select(qual, _) =>
+ tree.symbol.isVariable ||
+ (mayBeVarGetter(tree.symbol) &&
+ tree.symbol.owner.info.decl(nme.getterToSetter(tree.symbol.name)) != NoSymbol)
+ case Apply(Select(qual, nme.apply), _) =>
+ qual.tpe.decl(nme.update) != NoSymbol
+ case _ =>
+ false
+ }
+
/** Is tree a self constructor call?
*/
def isSelfConstrCall(tree: Tree): boolean = tree match {