summaryrefslogtreecommitdiff
path: root/src/reflect
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2012-08-17 11:50:01 +0200
committerEugene Burmako <xeno.by@gmail.com>2012-08-17 11:57:18 +0200
commitddf27a1e0e4b9eae521651704e74298c33c9af6c (patch)
tree4d1adea4ffa6cd520e71c6997c6a69264acf0291 /src/reflect
parent78f9ef3906c78413ff8835fdad3849bfe5516be2 (diff)
downloadscala-ddf27a1e0e4b9eae521651704e74298c33c9af6c.tar.gz
scala-ddf27a1e0e4b9eae521651704e74298c33c9af6c.tar.bz2
scala-ddf27a1e0e4b9eae521651704e74298c33c9af6c.zip
more cleanup for typedMacroBody
Diffstat (limited to 'src/reflect')
-rw-r--r--src/reflect/scala/reflect/internal/Definitions.scala2
-rw-r--r--src/reflect/scala/reflect/internal/TreeInfo.scala17
2 files changed, 11 insertions, 8 deletions
diff --git a/src/reflect/scala/reflect/internal/Definitions.scala b/src/reflect/scala/reflect/internal/Definitions.scala
index 5ffb6504a5..a80194c3dd 100644
--- a/src/reflect/scala/reflect/internal/Definitions.scala
+++ b/src/reflect/scala/reflect/internal/Definitions.scala
@@ -381,7 +381,7 @@ trait Definitions extends api.StandardDefinitions {
def isScalaRepeatedParamType(tp: Type) = tp.typeSymbol == RepeatedParamClass
def isJavaRepeatedParamType(tp: Type) = tp.typeSymbol == JavaRepeatedParamClass
def isRepeatedParamType(tp: Type) = isScalaRepeatedParamType(tp) || isJavaRepeatedParamType(tp)
- def isRepeated(param: Symbol) = param.tpe.typeSymbol == RepeatedParamClass
+ def isRepeated(param: Symbol) = isRepeatedParamType(param.tpe)
def isCastSymbol(sym: Symbol) = sym == Any_asInstanceOf || sym == Object_asInstanceOf
def isJavaVarArgsMethod(m: Symbol) = m.isMethod && isJavaVarArgs(m.info.params)
diff --git a/src/reflect/scala/reflect/internal/TreeInfo.scala b/src/reflect/scala/reflect/internal/TreeInfo.scala
index 521d7072dc..39539a113c 100644
--- a/src/reflect/scala/reflect/internal/TreeInfo.scala
+++ b/src/reflect/scala/reflect/internal/TreeInfo.scala
@@ -593,13 +593,16 @@ abstract class TreeInfo {
object DynamicApplicationNamed extends DynamicApplicationExtractor(_ == nme.applyDynamicNamed)
object MacroImplReference {
- def unapply(tree: Tree): Option[(Symbol, Symbol, List[Tree])] =
- tree match {
- case TypeApply(fun, targs) => unapply(fun) map { case (owner, sym, _) => (owner, sym, targs) }
- case Select(pre, _) => Some(pre.symbol, tree.symbol, Nil)
- case Ident(_) => Some(NoSymbol, tree.symbol, Nil)
- case _ => None
- }
+ private def refPart(tree: Tree): Tree = tree match {
+ case TypeApply(fun, _) => refPart(fun)
+ case ref: RefTree => ref
+ case _ => EmptyTree
+ }
+
+ def unapply(tree: Tree) = refPart(tree) match {
+ case ref: RefTree => Some((ref.qualifier.symbol, ref.symbol, typeArguments(tree)))
+ case _ => None
+ }
}
def stripOffPrefixTypeRefinement(tpe: Type): Type =