Support external modifier in descriptor renderer. Update test data.

This commit is contained in:
Alexey Andreev
2016-11-25 18:36:45 +03:00
parent 7e37d5d6fa
commit dadffebe97
4 changed files with 20 additions and 17 deletions
@@ -12,9 +12,9 @@ public object O {
public final class TopLevel {
public constructor TopLevel()
public final val x: kotlin.String = "a"
public final val y: kotlin.String
public external final val y: kotlin.String
public final val O.u: kotlin.String
public final val O.v: kotlin.String
public external final val O.v: kotlin.String
public final external fun bar(): kotlin.Int
@kotlin.js.native public final fun baz(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -40,9 +40,9 @@ public final class TopLevel {
public final class TopLevelNative {
public constructor TopLevelNative()
public final val x: kotlin.String = "a"
public final val y: kotlin.String
public external final val y: kotlin.String
public final val O.u: kotlin.String
public final val O.v: kotlin.String
public external final val O.v: kotlin.String
public final external fun bar(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Int
@@ -1,8 +1,8 @@
package
public val baz: kotlin.Int
public val boo: kotlin.Int
public val kotlin.Int.baz: kotlin.Int
public external val baz: kotlin.Int
public external val boo: kotlin.Int
public external val kotlin.Int.baz: kotlin.Int
public external fun bar(): kotlin.Unit
public external fun foo(): kotlin.Unit
public external fun kotlin.String.bar(): kotlin.Int
@@ -1,8 +1,8 @@
package
public val foo: kotlin.Int = 23
public external val foo: kotlin.Int = 23
public final class A {
public external final class A {
public constructor A()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -11,12 +11,12 @@ public final class A {
public final class B {
public constructor B()
public final val foo: kotlin.Int = 23
public external final val foo: kotlin.Int = 23
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final class A {
public external final class A {
public constructor A()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -515,6 +515,12 @@ internal class DescriptorRendererImpl(
}
}
private fun renderExternal(memberDescriptor: MemberDescriptor, builder: StringBuilder) {
if (memberDescriptor.isExternal) {
builder.append("external ")
}
}
private fun renderLateInit(propertyDescriptor: PropertyDescriptor, builder: StringBuilder) {
if (propertyDescriptor.isLateInit) {
builder.append("lateinit ")
@@ -528,9 +534,7 @@ internal class DescriptorRendererImpl(
if (functionDescriptor.isInfix && (functionDescriptor.overriddenDescriptors.none { it.isInfix } || alwaysRenderModifiers)) {
builder.append("infix ")
}
if (functionDescriptor.isExternal) {
builder.append("external ")
}
renderExternal(functionDescriptor, builder)
if (functionDescriptor.isInline) {
builder.append("inline ")
}
@@ -839,6 +843,7 @@ internal class DescriptorRendererImpl(
builder.append("const ")
}
renderExternal(property, builder)
renderModalityForCallable(property, builder)
renderOverride(property, builder)
renderLateInit(property, builder)
@@ -984,9 +989,7 @@ internal class DescriptorRendererImpl(
}
private fun renderAccessorModifiers(descriptor: PropertyAccessorDescriptor, builder: StringBuilder) {
if (descriptor.isExternal) {
builder.append("external ")
}
renderExternal(descriptor, builder)
}
/* STUPID DISPATCH-ONLY VISITOR */