diff options
author | Lukas Rytz <lukas.rytz@gmail.com> | 2015-07-02 16:11:50 +0200 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@gmail.com> | 2015-07-02 16:21:28 +0200 |
commit | c42428d76652cbf3ffda1204b8f2e7bb5654f119 (patch) | |
tree | a6f02d584cf1e032bcb4fe69d9699e5b149e5c68 /src/reflect | |
parent | 743b7297566e9a431e361388c85475deecb71c5e (diff) | |
download | scala-c42428d76652cbf3ffda1204b8f2e7bb5654f119.tar.gz scala-c42428d76652cbf3ffda1204b8f2e7bb5654f119.tar.bz2 scala-c42428d76652cbf3ffda1204b8f2e7bb5654f119.zip |
Fix superclass for Java interface symbols created in JavaMirrors
According to the spec [1] the superclass of an interface is always
Object.
Restores the tests that were moved to pending in bf951ec1,
fixex part of SI-9374.
[1] https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.1
Diffstat (limited to 'src/reflect')
-rw-r--r-- | src/reflect/scala/reflect/runtime/JavaMirrors.scala | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/reflect/scala/reflect/runtime/JavaMirrors.scala b/src/reflect/scala/reflect/runtime/JavaMirrors.scala index 8c32a92ecd..d0670f337a 100644 --- a/src/reflect/scala/reflect/runtime/JavaMirrors.scala +++ b/src/reflect/scala/reflect/runtime/JavaMirrors.scala @@ -755,6 +755,7 @@ private[scala] trait JavaMirrors extends internal.SymbolTable with api.JavaUnive val ifaces = jclazz.getGenericInterfaces.toList map typeToScala val isAnnotation = JavaAccFlags(jclazz).isAnnotation if (isAnnotation) AnnotationClass.tpe :: ClassfileAnnotationClass.tpe :: ifaces + else if (jclazz.isInterface) ObjectTpe :: ifaces // interfaces have Object as superclass in the classfile (see jvm spec), but getGenericSuperclass seems to return null else (if (jsuperclazz == null) AnyTpe else typeToScala(jsuperclazz)) :: ifaces } finally { parentsLevel -= 1 |