diff --git a/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java b/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java index df8cc4dd729..cded1a64f01 100644 --- a/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java @@ -325,6 +325,13 @@ public class DescriptorRendererImpl implements DescriptorRenderer { builder.append(renderKeyword(keyword)).append(" "); } + private void renderInner(boolean isInner, @NotNull StringBuilder builder) { + if (!modifiers) return; + if (isInner) { + builder.append(renderKeyword("inner")).append(" "); + } + } + private void renderModalityForCallable(@NotNull CallableMemberDescriptor callable, @NotNull StringBuilder builder) { if (!(callable.getContainingDeclaration() instanceof NamespaceDescriptor) || callable.getModality() != Modality.FINAL) { renderModality(callable.getModality(), builder); @@ -572,6 +579,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer { || klass.getKind().isObject() && klass.getModality() == Modality.FINAL)) { renderModality(klass.getModality(), builder); } + renderInner(klass.isInner(), builder); builder.append(renderKeyword(getClassKindPrefix(klass))); } diff --git a/compiler/testData/javaDescriptorResolver/staticMembers/DeeplyInnerClass_non_static.txt b/compiler/testData/javaDescriptorResolver/staticMembers/DeeplyInnerClass_non_static.txt index d2b0382ef98..fa2c8e7e93e 100644 --- a/compiler/testData/javaDescriptorResolver/staticMembers/DeeplyInnerClass_non_static.txt +++ b/compiler/testData/javaDescriptorResolver/staticMembers/DeeplyInnerClass_non_static.txt @@ -3,15 +3,15 @@ package test public open class DeeplyInnerClass : java.lang.Object { public constructor DeeplyInnerClass() - public/*package*/ open class A : java.lang.Object { + public/*package*/ open inner class A : java.lang.Object { public/*package*/ constructor A() public/*package*/ open fun a() : Unit - public/*package*/ open class B : java.lang.Object { + public/*package*/ open inner class B : java.lang.Object { public/*package*/ constructor B() public/*package*/ open fun b() : Unit - public/*package*/ open class C : java.lang.Object { + public/*package*/ open inner class C : java.lang.Object { public/*package*/ constructor C() public/*package*/ open fun c() : Unit } diff --git a/compiler/testData/javaDescriptorResolver/staticMembers/Enum_non_static.txt b/compiler/testData/javaDescriptorResolver/staticMembers/Enum_non_static.txt index a7c91076af9..e951197ad8d 100644 --- a/compiler/testData/javaDescriptorResolver/staticMembers/Enum_non_static.txt +++ b/compiler/testData/javaDescriptorResolver/staticMembers/Enum_non_static.txt @@ -19,7 +19,7 @@ public final enum class Enum : jet.Enum { } } - public open class Inner : java.lang.Object { + public open inner class Inner : java.lang.Object { public constructor Inner() public/*package*/ open fun bar() : Unit } diff --git a/compiler/testData/javaDescriptorResolver/staticMembers/InnerClass_non_static.txt b/compiler/testData/javaDescriptorResolver/staticMembers/InnerClass_non_static.txt index 01812889955..02ef7302cdf 100644 --- a/compiler/testData/javaDescriptorResolver/staticMembers/InnerClass_non_static.txt +++ b/compiler/testData/javaDescriptorResolver/staticMembers/InnerClass_non_static.txt @@ -3,8 +3,13 @@ package test public open class InnerClass : java.lang.Object { public constructor InnerClass() - public open class Inner : java.lang.Object { + public open inner class Inner : java.lang.Object { public constructor Inner() public open fun foo() : Unit } + + public open class Nested : java.lang.Object { + public constructor Nested() + public open fun bar() : Unit + } } diff --git a/compiler/testData/javaDescriptorResolver/staticMembers/InnerClass_static.txt b/compiler/testData/javaDescriptorResolver/staticMembers/InnerClass_static.txt index 23ed4e13e06..918b5723957 100644 --- a/compiler/testData/javaDescriptorResolver/staticMembers/InnerClass_static.txt +++ b/compiler/testData/javaDescriptorResolver/staticMembers/InnerClass_static.txt @@ -1,6 +1,2 @@ package InnerClass -public open class Nested : java.lang.Object { - public constructor Nested() - public open fun bar() : Unit -} diff --git a/compiler/testData/loadJava/InnerClass.kt b/compiler/testData/loadJava/InnerClass.kt index e84b7cbb586..011c3c16d8e 100644 --- a/compiler/testData/loadJava/InnerClass.kt +++ b/compiler/testData/loadJava/InnerClass.kt @@ -1,5 +1,5 @@ package test public open class InnerClass() : java.lang.Object() { - public open class Inner() : java.lang.Object() + public inner open class Inner() : java.lang.Object() } diff --git a/compiler/testData/loadJava/InnerClass.txt b/compiler/testData/loadJava/InnerClass.txt index 7c5dd3c0607..805d56912cb 100644 --- a/compiler/testData/loadJava/InnerClass.txt +++ b/compiler/testData/loadJava/InnerClass.txt @@ -3,7 +3,7 @@ package test public open class InnerClass : java.lang.Object { public constructor InnerClass() - public open class Inner : java.lang.Object { + public open inner class Inner : java.lang.Object { public constructor Inner() } } diff --git a/compiler/testData/loadJava/InnerClassReferencesOuterTP.kt b/compiler/testData/loadJava/InnerClassReferencesOuterTP.kt index 231ff1911d3..77ac37f6dbf 100644 --- a/compiler/testData/loadJava/InnerClassReferencesOuterTP.kt +++ b/compiler/testData/loadJava/InnerClassReferencesOuterTP.kt @@ -1,5 +1,5 @@ package test public open class InnerClassReferencesOuterTP

() : java.lang.Object() { - public open class Inner() : java.lang.Object() + public open inner class Inner() : java.lang.Object() } diff --git a/compiler/testData/loadJava/InnerClassReferencesOuterTP.txt b/compiler/testData/loadJava/InnerClassReferencesOuterTP.txt index 0409a1d7140..b6468974d9c 100644 --- a/compiler/testData/loadJava/InnerClassReferencesOuterTP.txt +++ b/compiler/testData/loadJava/InnerClassReferencesOuterTP.txt @@ -3,7 +3,7 @@ package test public open class InnerClassReferencesOuterTP : java.lang.Object { public constructor InnerClassReferencesOuterTP() - public open class Inner : java.lang.Object { + public open inner class Inner : java.lang.Object { public constructor Inner() } } diff --git a/compiler/testData/loadJava/InnerClassesInGeneric.kt b/compiler/testData/loadJava/InnerClassesInGeneric.kt index 3cf9685624a..28063029da9 100644 --- a/compiler/testData/loadJava/InnerClassesInGeneric.kt +++ b/compiler/testData/loadJava/InnerClassesInGeneric.kt @@ -1,10 +1,10 @@ package test public open class InnerClassesInGeneric() : java.lang.Object() { - public open class Inner() : java.lang.Object() { + public open inner class Inner() : java.lang.Object() { } - public open class Inner2() : Inner() { + public open inner class Inner2() : Inner() { public open fun iterator() : jet.MutableIterator

? { throw UnsupportedOperationException() } diff --git a/compiler/testData/loadJava/InnerClassesInGeneric.txt b/compiler/testData/loadJava/InnerClassesInGeneric.txt index 56d5a9e8f10..6b8df6dfbf5 100644 --- a/compiler/testData/loadJava/InnerClassesInGeneric.txt +++ b/compiler/testData/loadJava/InnerClassesInGeneric.txt @@ -3,11 +3,11 @@ package test public open class InnerClassesInGeneric : java.lang.Object { public constructor InnerClassesInGeneric() - public open class Inner : java.lang.Object { + public open inner class Inner : java.lang.Object { public constructor Inner() } - public open class Inner2 : test.InnerClassesInGeneric.Inner { + public open inner class Inner2 : test.InnerClassesInGeneric.Inner { public constructor Inner2() public open fun iterator() : jet.MutableIterator

? } diff --git a/compiler/testData/loadJava/MethodReferencesOuterClassTP.kt b/compiler/testData/loadJava/MethodReferencesOuterClassTP.kt index 1bd15647227..6d86a53b695 100644 --- a/compiler/testData/loadJava/MethodReferencesOuterClassTP.kt +++ b/compiler/testData/loadJava/MethodReferencesOuterClassTP.kt @@ -1,7 +1,7 @@ package test public class MethodReferencesOuterClassTP

() : java.lang.Object() { - public class Inner() : java.lang.Object() { + public inner class Inner() : java.lang.Object() { public fun f() {} } } diff --git a/compiler/testData/loadJava/MethodReferencesOuterClassTP.txt b/compiler/testData/loadJava/MethodReferencesOuterClassTP.txt index bf996683b37..bc462400a3e 100644 --- a/compiler/testData/loadJava/MethodReferencesOuterClassTP.txt +++ b/compiler/testData/loadJava/MethodReferencesOuterClassTP.txt @@ -3,7 +3,7 @@ package test public final class MethodReferencesOuterClassTP : java.lang.Object { public constructor MethodReferencesOuterClassTP() - public final class Inner : java.lang.Object { + public final inner class Inner : java.lang.Object { public constructor Inner() public final fun f() : Unit } diff --git a/compiler/testData/loadJavaCustom/rawSuperType/RawSuperType.txt b/compiler/testData/loadJavaCustom/rawSuperType/RawSuperType.txt index 944cf324b32..eec7ebbeef2 100644 --- a/compiler/testData/loadJavaCustom/rawSuperType/RawSuperType.txt +++ b/compiler/testData/loadJavaCustom/rawSuperType/RawSuperType.txt @@ -3,7 +3,7 @@ package test public open class RawSuperType : java.lang.Object { public constructor RawSuperType() - public open class Derived : test.RawSuperType.Super { + public open inner class Derived : test.RawSuperType.Super { public constructor Derived() public open override /*1*/ fun foo(/*0*/ p0 : jet.Any?) : Unit } diff --git a/compiler/testData/loadKotlin/class/ClassInnerClass.kt b/compiler/testData/loadKotlin/class/ClassInnerClass.kt index 8cb974151c7..9408cfc977d 100644 --- a/compiler/testData/loadKotlin/class/ClassInnerClass.kt +++ b/compiler/testData/loadKotlin/class/ClassInnerClass.kt @@ -1,6 +1,6 @@ package test class Outer { - class Inner { + inner class Inner { } } diff --git a/compiler/testData/loadKotlin/class/ClassInnerClass.txt b/compiler/testData/loadKotlin/class/ClassInnerClass.txt index 73ddb14a52d..071ed61671b 100644 --- a/compiler/testData/loadKotlin/class/ClassInnerClass.txt +++ b/compiler/testData/loadKotlin/class/ClassInnerClass.txt @@ -3,7 +3,7 @@ package test internal final class Outer { /*primary*/ public constructor Outer() - internal final class Inner { + internal final inner class Inner { /*primary*/ public constructor Inner() } } diff --git a/compiler/testData/loadKotlin/class/InnerClassExtendInnerClass.kt b/compiler/testData/loadKotlin/class/InnerClassExtendInnerClass.kt index 85a4f6c29cc..29e42fc8533 100644 --- a/compiler/testData/loadKotlin/class/InnerClassExtendInnerClass.kt +++ b/compiler/testData/loadKotlin/class/InnerClassExtendInnerClass.kt @@ -1,7 +1,7 @@ package test class Outer() { - open class Inner1() + open inner class Inner1() - class Inner2() : Inner1() + inner class Inner2() : Inner1() } diff --git a/compiler/testData/loadKotlin/class/InnerClassExtendInnerClass.txt b/compiler/testData/loadKotlin/class/InnerClassExtendInnerClass.txt index 4fd949bd863..9bdbcaa2a25 100644 --- a/compiler/testData/loadKotlin/class/InnerClassExtendInnerClass.txt +++ b/compiler/testData/loadKotlin/class/InnerClassExtendInnerClass.txt @@ -3,11 +3,11 @@ package test internal final class Outer { /*primary*/ public constructor Outer() - internal open class Inner1 { + internal open inner class Inner1 { /*primary*/ public constructor Inner1() } - internal final class Inner2 : test.Outer.Inner1 { + internal final inner class Inner2 : test.Outer.Inner1 { /*primary*/ public constructor Inner2() } } diff --git a/compiler/testData/loadKotlin/class/InnerClass.kt b/compiler/testData/loadKotlin/class/NestedClass.kt similarity index 62% rename from compiler/testData/loadKotlin/class/InnerClass.kt rename to compiler/testData/loadKotlin/class/NestedClass.kt index 7f039188a28..93d3cd67de7 100644 --- a/compiler/testData/loadKotlin/class/InnerClass.kt +++ b/compiler/testData/loadKotlin/class/NestedClass.kt @@ -1,5 +1,5 @@ package test class Outer() { - class Inner() + class Nested() } diff --git a/compiler/testData/loadKotlin/class/InnerClass.txt b/compiler/testData/loadKotlin/class/NestedClass.txt similarity index 54% rename from compiler/testData/loadKotlin/class/InnerClass.txt rename to compiler/testData/loadKotlin/class/NestedClass.txt index 73ddb14a52d..2249b2dd38c 100644 --- a/compiler/testData/loadKotlin/class/InnerClass.txt +++ b/compiler/testData/loadKotlin/class/NestedClass.txt @@ -3,7 +3,7 @@ package test internal final class Outer { /*primary*/ public constructor Outer() - internal final class Inner { - /*primary*/ public constructor Inner() + internal final class Nested { + /*primary*/ public constructor Nested() } } diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadCompiledKotlinTestGenerated.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadCompiledKotlinTestGenerated.java index 18498c26c6d..91d7f401d38 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadCompiledKotlinTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadCompiledKotlinTestGenerated.java @@ -130,11 +130,6 @@ public class LoadCompiledKotlinTestGenerated extends AbstractLoadCompiledKotlinT doTest("compiler/testData/loadKotlin/class/InheritTraitWithParam.kt"); } - @TestMetadata("InnerClass.kt") - public void testInnerClass() throws Exception { - doTest("compiler/testData/loadKotlin/class/InnerClass.kt"); - } - @TestMetadata("InnerClassExtendInnerClass.kt") public void testInnerClassExtendInnerClass() throws Exception { doTest("compiler/testData/loadKotlin/class/InnerClassExtendInnerClass.kt"); @@ -160,6 +155,11 @@ public class LoadCompiledKotlinTestGenerated extends AbstractLoadCompiledKotlinT doTest("compiler/testData/loadKotlin/class/NamedObjectWithAnotherTopLevelProperty.kt"); } + @TestMetadata("NestedClass.kt") + public void testNestedClass() throws Exception { + doTest("compiler/testData/loadKotlin/class/NestedClass.kt"); + } + @TestMetadata("Trait.kt") public void testTrait() throws Exception { doTest("compiler/testData/loadKotlin/class/Trait.kt"); diff --git a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/LazyResolveNamespaceComparingTestGenerated.java b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/LazyResolveNamespaceComparingTestGenerated.java index 43f45c029c3..c5d365dae39 100644 --- a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/LazyResolveNamespaceComparingTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/LazyResolveNamespaceComparingTestGenerated.java @@ -132,11 +132,6 @@ public class LazyResolveNamespaceComparingTestGenerated extends AbstractLazyReso doTestCheckingPrimaryConstructors("compiler/testData/loadKotlin/class/InheritTraitWithParam.kt"); } - @TestMetadata("InnerClass.kt") - public void testInnerClass() throws Exception { - doTestCheckingPrimaryConstructors("compiler/testData/loadKotlin/class/InnerClass.kt"); - } - @TestMetadata("InnerClassExtendInnerClass.kt") public void testInnerClassExtendInnerClass() throws Exception { doTestCheckingPrimaryConstructors("compiler/testData/loadKotlin/class/InnerClassExtendInnerClass.kt"); @@ -162,6 +157,11 @@ public class LazyResolveNamespaceComparingTestGenerated extends AbstractLazyReso doTestCheckingPrimaryConstructors("compiler/testData/loadKotlin/class/NamedObjectWithAnotherTopLevelProperty.kt"); } + @TestMetadata("NestedClass.kt") + public void testNestedClass() throws Exception { + doTestCheckingPrimaryConstructors("compiler/testData/loadKotlin/class/NestedClass.kt"); + } + @TestMetadata("Trait.kt") public void testTrait() throws Exception { doTestCheckingPrimaryConstructors("compiler/testData/loadKotlin/class/Trait.kt");