diff options
author | Martin Odersky <odersky@gmail.com> | 2009-02-23 19:21:05 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2009-02-23 19:21:05 +0000 |
commit | bf35b888e49afb245883571cc00cbb5ec7341f24 (patch) | |
tree | 8c060484dde8c122f1d65fceedf0dd962a4ad90c /src/compiler/scala/tools/nsc/ast/TreeInfo.scala | |
parent | a4baf48a5fb38f29d462accc57f93032955efa0e (diff) | |
download | scala-bf35b888e49afb245883571cc00cbb5ec7341f24.tar.gz scala-bf35b888e49afb245883571cc00cbb5ec7341f24.tar.bz2 scala-bf35b888e49afb245883571cc00cbb5ec7341f24.zip |
fixed several problems with cyclic references u...
fixed several problems with cyclic references uncovered by experimenting
with collections. Added early type definitions.
Diffstat (limited to 'src/compiler/scala/tools/nsc/ast/TreeInfo.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/TreeInfo.scala | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/TreeInfo.scala b/src/compiler/scala/tools/nsc/ast/TreeInfo.scala index 9cc29f97ec..93124d95f3 100644 --- a/src/compiler/scala/tools/nsc/ast/TreeInfo.scala +++ b/src/compiler/scala/tools/nsc/ast/TreeInfo.scala @@ -151,11 +151,22 @@ abstract class TreeInfo { def preSuperFields(stats: List[Tree]): List[ValDef] = for (vdef @ ValDef(mods, _, _, _) <- stats if mods hasFlag PRESUPER) yield vdef - def isPreSuper(tree: Tree) = tree match { + def isEarlyDef(tree: Tree) = tree match { + case TypeDef(mods, _, _, _) => mods hasFlag PRESUPER case ValDef(mods, _, _, _) => mods hasFlag PRESUPER case _ => false } + def isEarlyValDef(tree: Tree) = tree match { + case ValDef(mods, _, _, _) => mods hasFlag PRESUPER + case _ => false + } + + def isEarlyTypeDef(tree: Tree) = tree match { + case TypeDef(mods, _, _, _) => mods hasFlag PRESUPER + case _ => false + } + /** Is type a of the form T* ? */ def isRepeatedParamType(tpt: Tree) = tpt match { case AppliedTypeTree(Select(_, rp), _) => rp == nme.REPEATED_PARAM_CLASS_NAME.toTypeName |