diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-04-12 13:38:42 -0700 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-05-16 11:56:20 -0700 |
commit | 7f9feba0213fc210c7752ab210f900c016032699 (patch) | |
tree | 80bcfeab588097788c6e7fe1463b74a95de0c78e /test/files/run/t6989.check | |
parent | 487584caa97d0905df06e32c292c00fcd82a2fa3 (diff) | |
download | scala-7f9feba0213fc210c7752ab210f900c016032699.tar.gz scala-7f9feba0213fc210c7752ab210f900c016032699.tar.bz2 scala-7f9feba0213fc210c7752ab210f900c016032699.zip |
[backport #1727] SI-7359 cyclic nested java class
The original commit message (from 54a84a36d5):
SI-6548 reflection correctly enters jinners
When completing Java classes, runtime reflection enumerates their
fields, methods, constructors and inner classes, loads them and
enters them into either the instance part (ClassSymbol) or the
static part (ModuleSymbol).
However unlike fields, methods and constructors, inner classes don't
need to be entered explicitly - they are entered implicitly when
being loaded.
This patch fixes the double-enter problem, make sure that enter-on-load
uses the correct owner, and also hardens jclassAsScala against double
enters that can occur in a different scenario.
Diffstat (limited to 'test/files/run/t6989.check')
-rw-r--r-- | test/files/run/t6989.check | 84 |
1 files changed, 9 insertions, 75 deletions
diff --git a/test/files/run/t6989.check b/test/files/run/t6989.check index 3a94f6e8df..8943792115 100644 --- a/test/files/run/t6989.check +++ b/test/files/run/t6989.check @@ -113,18 +113,6 @@ isProtected = false isPublic = false privateWithin = <none> ============ -sym = class $PrivateJavaClass, signature = ClassInfoType(...), owner = class JavaClass_1 -isPrivate = true -isProtected = false -isPublic = false -privateWithin = <none> -============ -sym = value this$0, signature = foo.JavaClass_1, owner = class $PrivateJavaClass -isPrivate = false -isProtected = false -isPublic = false -privateWithin = package foo -============ sym = class $ProtectedJavaClass, signature = ClassInfoType(...), owner = class JavaClass_1 isPrivate = false isProtected = true @@ -143,18 +131,6 @@ isProtected = false isPublic = false privateWithin = package foo ============ -sym = class $ProtectedJavaClass, signature = ClassInfoType(...), owner = class JavaClass_1 -isPrivate = false -isProtected = true -isPublic = false -privateWithin = package foo -============ -sym = value this$0, signature = foo.JavaClass_1, owner = class $ProtectedJavaClass -isPrivate = false -isProtected = false -isPublic = false -privateWithin = package foo -============ sym = class $PublicJavaClass, signature = ClassInfoType(...), owner = class JavaClass_1 isPrivate = false isProtected = false @@ -179,97 +155,55 @@ isProtected = false isPublic = true privateWithin = <none> ============ -sym = class $PublicJavaClass, signature = ClassInfoType(...), owner = class JavaClass_1 -isPrivate = false -isProtected = false -isPublic = true -privateWithin = <none> -============ -sym = constructor $PublicJavaClass, signature = (x$1: foo.JavaClass_1)JavaClass_1.this.$PublicJavaClass, owner = class $PublicJavaClass +sym = constructor JavaClass_1, signature = ()foo.JavaClass_1, owner = class JavaClass_1 isPrivate = false isProtected = false isPublic = true privateWithin = <none> ============ -sym = value this$0, signature = foo.JavaClass_1, owner = class $PublicJavaClass -isPrivate = false -isProtected = false -isPublic = false -privateWithin = package foo -============ -sym = constructor JavaClass_1, signature = ()foo.JavaClass_1, owner = class JavaClass_1 +sym = object JavaClass_1, signature = foo.JavaClass_1.type, owner = package foo isPrivate = false isProtected = false isPublic = true privateWithin = <none> ============ -sym = class PrivateStaticJavaClass, signature = ClassInfoType(...), owner = class JavaClass_1 +sym = class PrivateStaticJavaClass, signature = ClassInfoType(...), owner = object JavaClass_1 isPrivate = true isProtected = false isPublic = false privateWithin = <none> ============ -sym = object PrivateStaticJavaClass, signature = JavaClass_1.this.PrivateStaticJavaClass.type, owner = class JavaClass_1 +sym = object PrivateStaticJavaClass, signature = foo.JavaClass_1.PrivateStaticJavaClass.type, owner = object JavaClass_1 isPrivate = true isProtected = false isPublic = false privateWithin = <none> ============ -sym = class ProtectedStaticJavaClass, signature = ClassInfoType(...), owner = class JavaClass_1 +sym = class ProtectedStaticJavaClass, signature = ClassInfoType(...), owner = object JavaClass_1 isPrivate = true isProtected = false isPublic = false privateWithin = <none> ============ -sym = object ProtectedStaticJavaClass, signature = JavaClass_1.this.ProtectedStaticJavaClass.type, owner = class JavaClass_1 +sym = object ProtectedStaticJavaClass, signature = foo.JavaClass_1.ProtectedStaticJavaClass.type, owner = object JavaClass_1 isPrivate = true isProtected = false isPublic = false privateWithin = <none> ============ -sym = class PublicStaticJavaClass, signature = ClassInfoType(...), owner = class JavaClass_1 -isPrivate = false -isProtected = false -isPublic = true -privateWithin = <none> -============ -sym = constructor PublicStaticJavaClass, signature = ()JavaClass_1.this.PublicStaticJavaClass, owner = class PublicStaticJavaClass -isPrivate = false -isProtected = false -isPublic = true -privateWithin = <none> -============ -sym = object PublicStaticJavaClass, signature = JavaClass_1.this.PublicStaticJavaClass.type, owner = class JavaClass_1 +sym = class PublicStaticJavaClass, signature = ClassInfoType(...), owner = object JavaClass_1 isPrivate = false isProtected = false isPublic = true privateWithin = <none> ============ -sym = object JavaClass_1, signature = foo.JavaClass_1.type, owner = package foo -isPrivate = false -isProtected = false -isPublic = true -privateWithin = <none> -============ -sym = class PrivateStaticJavaClass, signature = ClassInfoType(...), owner = class JavaClass_1 -isPrivate = true -isProtected = false -isPublic = false -privateWithin = <none> -============ -sym = class ProtectedStaticJavaClass, signature = ClassInfoType(...), owner = class JavaClass_1 -isPrivate = true -isProtected = false -isPublic = false -privateWithin = <none> -============ -sym = class PublicStaticJavaClass, signature = ClassInfoType(...), owner = class JavaClass_1 +sym = constructor PublicStaticJavaClass, signature = ()foo.JavaClass_1.PublicStaticJavaClass, owner = class PublicStaticJavaClass isPrivate = false isProtected = false isPublic = true privateWithin = <none> ============ -sym = constructor PublicStaticJavaClass, signature = ()JavaClass_1.this.PublicStaticJavaClass, owner = class PublicStaticJavaClass +sym = object PublicStaticJavaClass, signature = foo.JavaClass_1.PublicStaticJavaClass.type, owner = object JavaClass_1 isPrivate = false isProtected = false isPublic = true |