DescriptorRendererImpl now writes 'inner' for inner classes

#KT-1174 In Progress
This commit is contained in:
Alexander Udalov
2012-12-03 21:56:05 +04:00
parent 0b51a6cae0
commit 65716431c4
22 changed files with 48 additions and 39 deletions
@@ -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)));
}
@@ -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
}
@@ -19,7 +19,7 @@ public final enum class Enum : jet.Enum<test.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
}
@@ -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
}
}
@@ -1,6 +1,2 @@
package InnerClass
public open class Nested : java.lang.Object {
public constructor Nested()
public open fun bar() : Unit
}
+1 -1
View File
@@ -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()
}
+1 -1
View File
@@ -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()
}
}
@@ -1,5 +1,5 @@
package test
public open class InnerClassReferencesOuterTP<P>() : java.lang.Object() {
public open class Inner<Q : P>() : java.lang.Object()
public open inner class Inner<Q : P>() : java.lang.Object()
}
@@ -3,7 +3,7 @@ package test
public open class InnerClassReferencesOuterTP</*0*/ P> : java.lang.Object {
public constructor InnerClassReferencesOuterTP</*0*/ P>()
public open class Inner</*0*/ Q : P> : java.lang.Object {
public open inner class Inner</*0*/ Q : P> : java.lang.Object {
public constructor Inner</*0*/ Q : P>()
}
}
@@ -1,10 +1,10 @@
package test
public open class InnerClassesInGeneric<P, Q>() : 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<P>? {
throw UnsupportedOperationException()
}
@@ -3,11 +3,11 @@ package test
public open class InnerClassesInGeneric</*0*/ P, /*1*/ Q> : java.lang.Object {
public constructor InnerClassesInGeneric</*0*/ P, /*1*/ Q>()
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<P>?
}
@@ -1,7 +1,7 @@
package test
public class MethodReferencesOuterClassTP<P>() : java.lang.Object() {
public class Inner() : java.lang.Object() {
public inner class Inner() : java.lang.Object() {
public fun f<Q : P>() {}
}
}
@@ -3,7 +3,7 @@ package test
public final class MethodReferencesOuterClassTP</*0*/ P> : java.lang.Object {
public constructor MethodReferencesOuterClassTP</*0*/ P>()
public final class Inner : java.lang.Object {
public final inner class Inner : java.lang.Object {
public constructor Inner()
public final fun </*0*/ Q : P> f() : Unit
}
@@ -3,7 +3,7 @@ package test
public open class RawSuperType : java.lang.Object {
public constructor RawSuperType()
public open class Derived : test.RawSuperType.Super<jet.Any?> {
public open inner class Derived : test.RawSuperType.Super<jet.Any?> {
public constructor Derived()
public open override /*1*/ fun foo(/*0*/ p0 : jet.Any?) : Unit
}
@@ -1,6 +1,6 @@
package test
class Outer {
class Inner {
inner class Inner {
}
}
@@ -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()
}
}
@@ -1,7 +1,7 @@
package test
class Outer() {
open class Inner1()
open inner class Inner1()
class Inner2() : Inner1()
inner class Inner2() : Inner1()
}
@@ -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()
}
}
@@ -1,5 +1,5 @@
package test
class Outer() {
class Inner()
class Nested()
}
@@ -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()
}
}
@@ -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");
@@ -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");