Adjust descriptor renderer to latest parsing changes

- `constructor` keyword expected in primary constructor with non-empty modifier list
- annotation list should be preceeded by '@'
This commit is contained in:
Denis Zharkov
2015-05-18 16:18:55 +03:00
parent dd14b36921
commit 5297b4974f
31 changed files with 45 additions and 44 deletions
@@ -3,7 +3,7 @@ package
Ann(x = IntegerValueType(1): IntegerValueType(1)) Ann(x = IntegerValueType(2): IntegerValueType(2)) Ann(x = IntegerValueType(3): IntegerValueType(3)) private final class A {
Ann() public constructor A()
Ann() internal final val x: kotlin.Int = 1
internal final fun bar(/*0*/ x: [Ann(x = IntegerValueType(1): IntegerValueType(1)) Ann(x = IntegerValueType(2): IntegerValueType(2)) Ann(x = IntegerValueType(3): IntegerValueType(3))] kotlin.Int): kotlin.Unit
internal final fun bar(/*0*/ x: @[Ann(x = IntegerValueType(1): IntegerValueType(1)) Ann(x = IntegerValueType(2): IntegerValueType(2)) Ann(x = IntegerValueType(3): IntegerValueType(3))] kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
Ann(x = IntegerValueType(5): IntegerValueType(5)) internal final fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -1,6 +1,6 @@
package
internal val block: ([Ann()] kotlin.String) -> [Ann()] kotlin.String
internal val block: (@[Ann()] kotlin.String) -> @[Ann()] kotlin.String
internal val y: kotlin.Array<kotlin.String?>
internal fun bar(/*0*/ block: () -> kotlin.Int): kotlin.Int
internal fun bar2(): kotlin.Array<Q>
@@ -13,7 +13,7 @@ Ann() Ann() internal final class A {
Ann() internal final fun foo(/*0*/ Ann() x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
internal final fun x(): [Ann()] kotlin.String
internal final fun x(): @[Ann()] kotlin.String
}
internal final annotation class Ann : kotlin.Annotation {
@@ -30,7 +30,7 @@ internal interface B {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
internal interface D : [Ann()] B {
internal interface D : @[Ann()] B {
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
@@ -1,6 +1,6 @@
package
internal fun [[ERROR : x]()] A.foo(/*0*/ a: [[ERROR : x]()] kotlin.Int): kotlin.Unit
internal fun @[[ERROR : x]()] A.foo(/*0*/ a: @[[ERROR : x]()] kotlin.Int): kotlin.Unit
internal final class A {
public constructor A()
@@ -3,8 +3,8 @@ package
a() internal fun <no name provided>(): kotlin.Unit
internal fun <no name provided>(): kotlin.Unit
internal fun outerFun(): kotlin.Unit
internal fun @[a()] A.<no name provided>(): kotlin.Unit
internal fun A.<no name provided>(): kotlin.Unit
internal fun [a()] A.<no name provided>(): kotlin.Unit
internal interface A {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -25,8 +25,8 @@ internal final class Outer {
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
internal final fun @[a()] A.<no name provided>(): kotlin.Unit
internal final fun B.<no name provided>(): kotlin.Unit
internal final fun [a()] A.<no name provided>(): kotlin.Unit
}
internal final annotation class a : kotlin.Annotation {
@@ -2,4 +2,4 @@ package test
annotation class A
fun ([A] String).foo() {}
fun (@A String).foo() {}
@@ -1,6 +1,6 @@
package test
internal fun [test.A()] kotlin.String.foo(): kotlin.Unit
internal fun @[test.A()] kotlin.String.foo(): kotlin.Unit
internal final annotation class A : kotlin.Annotation {
/*primary*/ public constructor A()
@@ -3,5 +3,5 @@ package test
annotation class A
class SimpleTypeAnnotation {
fun foo(x: [A] IntRange): [A] Int = 42
fun foo(x: @A IntRange): @A Int = 42
}
@@ -6,5 +6,5 @@ internal final annotation class A : kotlin.Annotation {
internal final class SimpleTypeAnnotation {
/*primary*/ public constructor SimpleTypeAnnotation()
internal final fun foo(/*0*/ x: [test.A()] kotlin.IntRange): [test.A()] kotlin.Int
internal final fun foo(/*0*/ x: @[test.A()] kotlin.IntRange): @[test.A()] kotlin.Int
}
@@ -2,6 +2,6 @@ package test
annotation class A
trait Foo<T : [A] Number> : [A] CharSequence {
fun <E, F : [A] E> bar()
trait Foo<T : @A Number> : @A CharSequence {
fun <E, F : @A E> bar()
}
@@ -4,8 +4,8 @@ internal final annotation class A : kotlin.Annotation {
/*primary*/ public constructor A()
}
internal interface Foo</*0*/ T : [test.A()] kotlin.Number> : [test.A()] kotlin.CharSequence {
internal abstract fun </*0*/ E, /*1*/ F : [test.A()] E> bar(): kotlin.Unit
internal interface Foo</*0*/ T : @[test.A()] kotlin.Number> : @[test.A()] kotlin.CharSequence {
internal abstract fun </*0*/ E, /*1*/ F : @[test.A()] E> bar(): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun charAt(/*0*/ index: kotlin.Int): kotlin.Char
public abstract override /*1*/ /*fake_override*/ fun length(): kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun subSequence(/*0*/ start: kotlin.Int, /*1*/ end: kotlin.Int): kotlin.CharSequence
@@ -5,5 +5,5 @@ package test
annotation class Ann(val x: String, val y: Double)
class TypeAnnotationWithArguments {
fun foo(param: [Ann("param", 3.14)] IntRange): [Ann("fun", 2.72)] Unit {}
fun foo(param: @Ann("param", 3.14) IntRange): @Ann("fun", 2.72) Unit {}
}
@@ -10,5 +10,5 @@ internal final annotation class Ann : kotlin.Annotation {
internal final class TypeAnnotationWithArguments {
/*primary*/ public constructor TypeAnnotationWithArguments()
internal final fun foo(/*0*/ param: [test.Ann(x = "param": kotlin.String, y = 3.14.toDouble(): kotlin.Double)] kotlin.IntRange): [test.Ann(x = "fun": kotlin.String, y = 2.72.toDouble(): kotlin.Double)] kotlin.Unit
internal final fun foo(/*0*/ param: @[test.Ann(x = "param": kotlin.String, y = 3.14.toDouble(): kotlin.Double)] kotlin.IntRange): @[test.Ann(x = "fun": kotlin.String, y = 2.72.toDouble(): kotlin.Double)] kotlin.Unit
}
@@ -559,7 +559,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
// remove last whitespace
annotationsBuilder.setLength(annotationsBuilder.length() - 1);
builder.append("[");
builder.append("@[");
builder.append(annotationsBuilder);
builder.append("] ");
}
@@ -1013,6 +1013,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
builder.append(" ");
renderAnnotations(primaryConstructor, builder, true);
renderVisibility(primaryConstructor.getVisibility(), builder);
builder.append("constructor");
renderValueParameters(primaryConstructor, builder);
}
}
@@ -3,8 +3,8 @@
package test
kotlin.data dependency.A dependency.B dependency.C internal final class Annotations public () {
kotlin.inline dependency.A dependency.B dependency.C internal final val p: [dependency.B] kotlin.Int /* compiled code */
kotlin.data dependency.A dependency.B dependency.C internal final class Annotations public constructor() {
kotlin.inline dependency.A dependency.B dependency.C internal final val p: @[dependency.B] kotlin.Int /* compiled code */
kotlin.inline dependency.A dependency.B dependency.C internal final fun f(dependency.A dependency.B dependency.C kotlin.deprecated i: [dependency.A] kotlin.Int): kotlin.Unit { /* compiled code */ }
kotlin.inline dependency.A dependency.B dependency.C internal final fun f(dependency.A dependency.B dependency.C kotlin.deprecated i: @[dependency.A] kotlin.Int): kotlin.Unit { /* compiled code */ }
}
@@ -3,6 +3,6 @@
package test
internal final class AnnotationsOnPrimaryCtr [dependency.A dependency.B dependency.C] private () {
internal final class AnnotationsOnPrimaryCtr @[dependency.A dependency.B dependency.C] private constructor() {
}
@@ -3,7 +3,7 @@
package test
internal final class ClassWithClassObject public () {
internal final class ClassWithClassObject public constructor() {
internal companion object {
internal final val a: test.A /* compiled code */
@@ -3,6 +3,6 @@
package test
public final class DependencyOnNestedClasses public () : dependency.D.Nested {
public final class DependencyOnNestedClasses public constructor() : dependency.D.Nested {
internal final fun f(nc: dependency.D.Companion.NestedInClassObject, i: dependency.D.Inner, ii: dependency.D.Inner.Inner, nn: dependency.D.Nested.Nested): dependency.D.Nested { /* compiled code */ }
}
@@ -3,7 +3,7 @@
package test
internal final enum class Enum private () : kotlin.Enum<test.Enum> {
internal final enum class Enum private constructor() : kotlin.Enum<test.Enum> {
A
B
@@ -3,7 +3,7 @@
package test
internal abstract class FlexibleTypes public () {
internal abstract class FlexibleTypes public constructor() {
internal abstract val p: kotlin.Int /* platform type */
internal abstract fun collection(): kotlin.List<kotlin.Int> /* platform type */
@@ -3,7 +3,7 @@
package test
internal final class FunctionTypes public () {
internal final class FunctionTypes public constructor() {
public final fun <A> (A.(A) -> A)?.bar(): kotlin.Unit { /* compiled code */ }
public final fun <IP, R, P1> ((IP) -> R).compose(f: (P1) -> IP): (P1) -> R { /* compiled code */ }
@@ -3,25 +3,25 @@
package test
internal final class NestedClasses public () {
internal final class NestedClasses public constructor() {
internal final fun f(): kotlin.Unit { /* compiled code */ }
public final inner class Inner public () {
public final inner class Inner public constructor() {
internal final fun f(): kotlin.Unit { /* compiled code */ }
private final inner class II public () {
private final inner class II public constructor() {
internal final fun f(): kotlin.Unit { /* compiled code */ }
}
}
private final class Nested public () {
private final class Nested public constructor() {
internal final fun f(): kotlin.Unit { /* compiled code */ }
internal final inner class NI public () {
internal final inner class NI public constructor() {
internal final fun f(): kotlin.Unit { /* compiled code */ }
}
public final class NN public () {
public final class NN public constructor() {
internal final fun f(): kotlin.Unit { /* compiled code */ }
}
}
@@ -3,7 +3,7 @@
package test
internal final class SecondaryConstructors public (x: kotlin.Boolean) {
internal final class SecondaryConstructors public constructor(x: kotlin.Boolean) {
test.anno public constructor(x: kotlin.String) { /* compiled code */ }
private constructor(x: kotlin.Int) { /* compiled code */ }
@@ -3,7 +3,7 @@
package test
internal abstract class SimpleClass public () : dependency.D<dependency.Tr, kotlin.Int>, dependency.Tr, kotlin.List<kotlin.String> {
internal abstract class SimpleClass public constructor() : dependency.D<dependency.Tr, kotlin.Int>, dependency.Tr, kotlin.List<kotlin.String> {
internal final val a: dependency.A /* compiled code */
public final var b: dependency.B /* compiled code */
@@ -3,5 +3,5 @@
package testData.libraries
[[public abstract class AbstractClass public () {
[[public abstract class AbstractClass public constructor() {
}]]
@@ -3,7 +3,7 @@
package testData.libraries
[[public abstract class ClassWithAbstractAndOpenMembers public () {
[[public abstract class ClassWithAbstractAndOpenMembers public constructor() {
[public abstract val abstractVal: kotlin.String]
[public abstract var abstractVar: kotlin.String]
@@ -3,6 +3,6 @@
package testData.libraries
[[public final class ClassWithConstructor public (a: kotlin.String, b: kotlin.Any) {
[[public final class ClassWithConstructor public constructor(a: kotlin.String, b: kotlin.Any) {
[internal final val a: kotlin.String /* compiled code */]
}]]
@@ -3,7 +3,7 @@
package testData.libraries
[[public final enum class Color private (rgb: kotlin.Int) : kotlin.Enum<testData.libraries.Color> {
[[public final enum class Color private constructor(rgb: kotlin.Int) : kotlin.Enum<testData.libraries.Color> {
[[RED]]
[[GREEN]]
@@ -3,5 +3,5 @@
package testData.libraries
[[public final class SimpleClass public () {
[[public final class SimpleClass public constructor() {
}]]
@@ -3,5 +3,5 @@
package testData.libraries
[[public final class SimpleTraitImpl public () : testData.libraries.SimpleTrait {
[[public final class SimpleTraitImpl public constructor() : testData.libraries.SimpleTrait {
}]]
@@ -3,12 +3,12 @@
package testData.libraries
[[public final class WithInnerAndObject public () {
[[public final class WithInnerAndObject public constructor() {
[[public companion object {
[internal final fun foo(): kotlin.Unit { /* compiled code */ }]
}]]
[[internal final class MyInner public () {
[[internal final class MyInner public constructor() {
[internal interface MyInnerInner {
[internal abstract fun innerInnerMethod(): kotlin.Unit]
}]
@@ -3,7 +3,7 @@
package testData.libraries
[[public final class WithTraitClassObject public () {
[[public final class WithTraitClassObject public constructor() {
[[public companion object : testData.libraries.SimpleTrait {
}]]
}]]