summaryrefslogtreecommitdiff
path: root/src/compiler/scala/reflect/internal/Definitions.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2012-04-11 11:06:54 -0700
committerMartin Odersky <odersky@gmail.com>2012-04-11 11:06:54 -0700
commitf7a0558059559305a88ffa2c28506b29b2bc57f2 (patch)
tree267f7d00bbb327ca80b14df92e540251bf2da283 /src/compiler/scala/reflect/internal/Definitions.scala
parent754b4a85e4093f25cc10f092fefdb34215097c94 (diff)
downloadscala-f7a0558059559305a88ffa2c28506b29b2bc57f2.tar.gz
scala-f7a0558059559305a88ffa2c28506b29b2bc57f2.tar.bz2
scala-f7a0558059559305a88ffa2c28506b29b2bc57f2.zip
Implementation of SIP 18. We still need to get rid of the warnings caused by it. Before we do that, I'd like to check in the SIP 13 implementation.
Diffstat (limited to 'src/compiler/scala/reflect/internal/Definitions.scala')
-rw-r--r--src/compiler/scala/reflect/internal/Definitions.scala14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/compiler/scala/reflect/internal/Definitions.scala b/src/compiler/scala/reflect/internal/Definitions.scala
index 8ea3cd511a..d3a9821596 100644
--- a/src/compiler/scala/reflect/internal/Definitions.scala
+++ b/src/compiler/scala/reflect/internal/Definitions.scala
@@ -914,6 +914,18 @@ trait Definitions extends reflect.api.StandardDefinitions {
lazy val GetterTargetClass = getMetaAnnotation("getter")
lazy val ParamTargetClass = getMetaAnnotation("param")
lazy val SetterTargetClass = getMetaAnnotation("setter")
+ lazy val LanguageFeatureClass = getMetaAnnotation("languageFeature")
+
+ // Language features
+ lazy val languageFeatureModule = getRequiredModule("scala.languageFeature")
+ lazy val MacrosFeature = getRequiredClass("scala.languageFeature.experimental.macros")
+ lazy val DynamicsFeature = getRequiredClass("scala.languageFeature.dynamics")
+ lazy val PostfixOpsFeature = getRequiredClass("scala.languageFeature.postfixOps")
+ lazy val ReflectiveCallsFeature = getRequiredClass("scala.languageFeature.reflectiveCalls")
+ lazy val ImplicitConversionsFeature = getRequiredClass("scala.languageFeature.implicitConversions")
+ lazy val HigherKindsFeature = getRequiredClass("scala.languageFeature.higherKinds")
+ lazy val ExistentialsFeature = getRequiredClass("scala.languageFeature.existentials")
+
// TODO: module, moduleClass? package, packageObject?
private def getMetaAnnotation(name: String) = getRequiredClass("scala.annotation.meta." + name)
@@ -990,7 +1002,7 @@ trait Definitions extends reflect.api.StandardDefinitions {
case result => result
}
}
-
+
def packageExists(packageName: String): Boolean =
getModuleIfDefined(packageName).isPackage