diff options
author | Martin Odersky <odersky@gmail.com> | 2014-08-03 20:50:37 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2014-08-03 21:02:11 +0200 |
commit | e25232d5b4fdc1ae7bc5a44ad06e31a00699dbaf (patch) | |
tree | 26c3ce90d09933debc6a991d10e708cc65a84157 /src/dotty/tools/dotc/ast/TreeInfo.scala | |
parent | 168e4f18f0b2f8ac0e3d7ef5128797303dec6a44 (diff) | |
download | dotty-e25232d5b4fdc1ae7bc5a44ad06e31a00699dbaf.tar.gz dotty-e25232d5b4fdc1ae7bc5a44ad06e31a00699dbaf.tar.bz2 dotty-e25232d5b4fdc1ae7bc5a44ad06e31a00699dbaf.zip |
Annotation decorators for symbols
Added decorators for symbols that can query specific
annotations and annotation arguments (for now, -deprecated
and -migration are added)
Diffstat (limited to 'src/dotty/tools/dotc/ast/TreeInfo.scala')
-rw-r--r-- | src/dotty/tools/dotc/ast/TreeInfo.scala | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/ast/TreeInfo.scala b/src/dotty/tools/dotc/ast/TreeInfo.scala index cc3e53abc..174de4d46 100644 --- a/src/dotty/tools/dotc/ast/TreeInfo.scala +++ b/src/dotty/tools/dotc/ast/TreeInfo.scala @@ -103,11 +103,19 @@ trait TreeInfo[T >: Untyped <: Type] { self: Trees.Instance[T] => /** The number of arguments in an application */ def numArgs(tree: Tree): Int = unsplice(tree) match { case Apply(fn, args) => numArgs(fn) + args.length - case TypeApply(fn, args) => numArgs(fn) - case Block(stats, expr) => numArgs(expr) + case TypeApply(fn, _) => numArgs(fn) + case Block(_, expr) => numArgs(expr) case _ => 0 } + /** The (last) list of arguments of an application */ + def arguments(tree: Tree): List[Tree] = unsplice(tree) match { + case Apply(_, args) => args + case TypeApply(fn, _) => arguments(fn) + case Block(_, expr) => arguments(expr) + case _ => Nil + } + /** Is tree a self constructor call this(...)? I.e. a call to a constructor of the * same object? */ |