diff options
author | Martin Odersky <odersky@gmail.com> | 2007-02-21 19:10:41 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2007-02-21 19:10:41 +0000 |
commit | 914932babf9343fdfcec20f25bfb1576dc8c433b (patch) | |
tree | 088e404a21862209be434b0236c34e4576042c51 /src/compiler/scala/tools/nsc/ast/TreeInfo.scala | |
parent | cb7f66a22c9167a7e8ffce042a4bf1c5c9849a89 (diff) | |
download | scala-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.scala | 19 |
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 { |