summaryrefslogtreecommitdiff
path: root/src/reflect
diff options
context:
space:
mode:
authorJames Iry <jamesiry@gmail.com>2013-02-03 13:10:41 -0800
committerJames Iry <jamesiry@gmail.com>2013-02-03 13:10:41 -0800
commit786a686b78e7bffb452c6508a83b69ad83849819 (patch)
treea60d06d491a4ba3bb053b76cd1cbc3271fc79f8e /src/reflect
parenta4ace4b4d99e8fc2332c4ee746998056da110b50 (diff)
parent374c912a1440193b06fc6fd74b39063949b2c086 (diff)
downloadscala-786a686b78e7bffb452c6508a83b69ad83849819.tar.gz
scala-786a686b78e7bffb452c6508a83b69ad83849819.tar.bz2
scala-786a686b78e7bffb452c6508a83b69ad83849819.zip
Merge pull request #1976 from retronym/backport/1468
[backport] SI-6428 / SI-7022 Value class with bounds
Diffstat (limited to 'src/reflect')
-rw-r--r--src/reflect/scala/reflect/internal/Definitions.scala11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/reflect/scala/reflect/internal/Definitions.scala b/src/reflect/scala/reflect/internal/Definitions.scala
index 3806f555ac..cac66f06f7 100644
--- a/src/reflect/scala/reflect/internal/Definitions.scala
+++ b/src/reflect/scala/reflect/internal/Definitions.scala
@@ -671,6 +671,11 @@ trait Definitions extends api.StandardDefinitions {
case _ => Nil
}
+ def dropNullaryMethod(tp: Type) = tp match {
+ case NullaryMethodType(restpe) => restpe
+ case _ => tp
+ }
+
def unapplyUnwrap(tpe:Type) = tpe.finalResultType.normalize match {
case RefinedType(p :: _, _) => p.normalize
case tp => tp
@@ -864,6 +869,12 @@ trait Definitions extends api.StandardDefinitions {
removeRedundantObjects(parents)
}
+ /** Flatten curried parameter lists of a method type. */
+ def allParameters(tpe: Type): List[Symbol] = tpe match {
+ case MethodType(params, res) => params ::: allParameters(res)
+ case _ => Nil
+ }
+
def typeStringNoPackage(tp: Type) =
"" + tp stripPrefix tp.typeSymbol.enclosingPackage.fullName + "."