summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2013-02-08 17:45:46 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2013-02-10 10:36:51 -0800
commit85b63b81d5951a78547641e3feab0886f6013ea1 (patch)
tree34dbc0c8054303eb92a6a6fea2d48b885f8c5ac4 /src
parent2f9b708b748e7a2fb252ae1ab546f4824ec0f283 (diff)
downloadscala-85b63b81d5951a78547641e3feab0886f6013ea1.tar.gz
scala-85b63b81d5951a78547641e3feab0886f6013ea1.tar.bz2
scala-85b63b81d5951a78547641e3feab0886f6013ea1.zip
[nomaster] Revert "SI-6548 reflection now correctly enters jinners"
This reverts commit 54a84a36d5b435a787d93ca48d45399136c7e162. This is necessary to maintain binary compatibility with 2.10.0. run/t6989.check had to be updated as it also (indirectly) tested SI-6548 Conflicts: test/files/lib/javac-artifacts.jar.desired.sha1 test/files/run/t6548.check test/files/run/t6548/Test_2.scala
Diffstat (limited to 'src')
-rw-r--r--src/reflect/scala/reflect/runtime/JavaMirrors.scala16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/reflect/scala/reflect/runtime/JavaMirrors.scala b/src/reflect/scala/reflect/runtime/JavaMirrors.scala
index eb73ac75fb..3442e3d22e 100644
--- a/src/reflect/scala/reflect/runtime/JavaMirrors.scala
+++ b/src/reflect/scala/reflect/runtime/JavaMirrors.scala
@@ -686,9 +686,9 @@ private[reflect] trait JavaMirrors extends internal.SymbolTable with api.JavaUni
def enter(sym: Symbol, mods: Int) =
(if (jModifier.isStatic(mods)) module.moduleClass else clazz).info.decls enter sym
- for (jinner <- jclazz.getDeclaredClasses)
- jclassAsScala(jinner) // inner class is entered as a side-effect
- // no need to call enter explicitly
+ for (jinner <- jclazz.getDeclaredClasses) {
+ enter(jclassAsScala(jinner, clazz), jinner.getModifiers)
+ }
pendingLoadActions = { () =>
@@ -1046,14 +1046,14 @@ private[reflect] trait JavaMirrors extends internal.SymbolTable with api.JavaUni
* @param jclazz The Java class
* @return A Scala class symbol that wraps all reflection info of `jclazz`
*/
- private def jclassAsScala(jclazz: jClass[_]): ClassSymbol =
- toScala(classCache, jclazz)(_ jclassAsScala1 _)
+ private def jclassAsScala(jclazz: jClass[_]): Symbol = jclassAsScala(jclazz, sOwner(jclazz))
- private def jclassAsScala1(jclazz: jClass[_]): ClassSymbol = {
- val owner = sOwner(jclazz)
+ private def jclassAsScala(jclazz: jClass[_], owner: Symbol): ClassSymbol = {
val name = scalaSimpleName(jclazz)
val completer = (clazz: Symbol, module: Symbol) => new FromJavaClassCompleter(clazz, module, jclazz)
- createClassModule(owner, name, completer) match { case (clazz, module) => clazz }
+ val (clazz, module) = createClassModule(owner, name, completer)
+ classCache enter (jclazz, clazz)
+ clazz
}
/**