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 final class TopLevel {
public constructor TopLevel() public constructor TopLevel()
public final val x: kotlin.String = "a" 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.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 final external fun bar(): kotlin.Int
@kotlin.js.native public final fun baz(): 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 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 final class TopLevelNative {
public constructor TopLevelNative() public constructor TopLevelNative()
public final val x: kotlin.String = "a" 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.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 final external fun bar(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Int public final fun foo(): kotlin.Int
@@ -1,8 +1,8 @@
package package
public val baz: kotlin.Int public external val baz: kotlin.Int
public val boo: kotlin.Int public external val boo: kotlin.Int
public val kotlin.Int.baz: kotlin.Int public external val kotlin.Int.baz: kotlin.Int
public external fun bar(): kotlin.Unit public external fun bar(): kotlin.Unit
public external fun foo(): kotlin.Unit public external fun foo(): kotlin.Unit
public external fun kotlin.String.bar(): kotlin.Int public external fun kotlin.String.bar(): kotlin.Int
@@ -1,8 +1,8 @@
package 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 constructor A()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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 hashCode(): kotlin.Int
@@ -11,12 +11,12 @@ public final class A {
public final class B { public final class B {
public constructor 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 equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final class A { public external final class A {
public constructor 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 equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int 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) { private fun renderLateInit(propertyDescriptor: PropertyDescriptor, builder: StringBuilder) {
if (propertyDescriptor.isLateInit) { if (propertyDescriptor.isLateInit) {
builder.append("lateinit ") builder.append("lateinit ")
@@ -528,9 +534,7 @@ internal class DescriptorRendererImpl(
if (functionDescriptor.isInfix && (functionDescriptor.overriddenDescriptors.none { it.isInfix } || alwaysRenderModifiers)) { if (functionDescriptor.isInfix && (functionDescriptor.overriddenDescriptors.none { it.isInfix } || alwaysRenderModifiers)) {
builder.append("infix ") builder.append("infix ")
} }
if (functionDescriptor.isExternal) { renderExternal(functionDescriptor, builder)
builder.append("external ")
}
if (functionDescriptor.isInline) { if (functionDescriptor.isInline) {
builder.append("inline ") builder.append("inline ")
} }
@@ -839,6 +843,7 @@ internal class DescriptorRendererImpl(
builder.append("const ") builder.append("const ")
} }
renderExternal(property, builder)
renderModalityForCallable(property, builder) renderModalityForCallable(property, builder)
renderOverride(property, builder) renderOverride(property, builder)
renderLateInit(property, builder) renderLateInit(property, builder)
@@ -984,9 +989,7 @@ internal class DescriptorRendererImpl(
} }
private fun renderAccessorModifiers(descriptor: PropertyAccessorDescriptor, builder: StringBuilder) { private fun renderAccessorModifiers(descriptor: PropertyAccessorDescriptor, builder: StringBuilder) {
if (descriptor.isExternal) { renderExternal(descriptor, builder)
builder.append("external ")
}
} }
/* STUPID DISPATCH-ONLY VISITOR */ /* STUPID DISPATCH-ONLY VISITOR */