summaryrefslogtreecommitdiff
path: root/src/compiler/scala/reflect/internal/ClassfileConstants.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2011-07-12 13:32:33 +0000
committerMartin Odersky <odersky@gmail.com>2011-07-12 13:32:33 +0000
commit66862fe9d88b7d6e4036077f584b2cabcdef3ab0 (patch)
treea15ea410d50d841f215e5fdcd95577e65da5f410 /src/compiler/scala/reflect/internal/ClassfileConstants.scala
parenta10f699d7c443e83472e262ae77a3fe7d9cdc1ba (diff)
downloadscala-66862fe9d88b7d6e4036077f584b2cabcdef3ab0.tar.gz
scala-66862fe9d88b7d6e4036077f584b2cabcdef3ab0.tar.bz2
scala-66862fe9d88b7d6e4036077f584b2cabcdef3ab0.zip
More work done on implementing reflection.
Diffstat (limited to 'src/compiler/scala/reflect/internal/ClassfileConstants.scala')
-rw-r--r--src/compiler/scala/reflect/internal/ClassfileConstants.scala24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/compiler/scala/reflect/internal/ClassfileConstants.scala b/src/compiler/scala/reflect/internal/ClassfileConstants.scala
index 0e1671bc1c..839bfe90b8 100644
--- a/src/compiler/scala/reflect/internal/ClassfileConstants.scala
+++ b/src/compiler/scala/reflect/internal/ClassfileConstants.scala
@@ -329,4 +329,28 @@ object ClassfileConstants {
final val breakpoint = 0xca
final val impdep1 = 0xfe
final val impdep2 = 0xff
+
+ def toScalaFlags(flags: Int, isClass: Boolean): Long = {
+ import Flags._
+ var res = 0l
+ if ((flags & JAVA_ACC_PRIVATE) != 0)
+ res = res | PRIVATE
+ else if ((flags & JAVA_ACC_PROTECTED) != 0)
+ res = res | PROTECTED
+ if ((flags & JAVA_ACC_ABSTRACT) != 0 && (flags & JAVA_ACC_ANNOTATION) == 0)
+ res = res | DEFERRED
+ if ((flags & JAVA_ACC_FINAL) != 0)
+ res = res | FINAL
+ if (((flags & JAVA_ACC_INTERFACE) != 0) &&
+ ((flags & JAVA_ACC_ANNOTATION) == 0))
+ res = res | TRAIT | INTERFACE | ABSTRACT
+ if ((flags & JAVA_ACC_SYNTHETIC) != 0)
+ res = res | SYNTHETIC
+ if ((flags & JAVA_ACC_STATIC) != 0)
+ res = res | STATIC
+ if (isClass && ((res & DEFERRED) != 0L))
+ res = res & ~DEFERRED | ABSTRACT
+
+ res | JAVA
+ }
}