Since '@A R.() -> T' is now parsed as '@A (R.() -> T)',

receiver type with modifiers or annotations should be surrounded in parentheses on rendering: '(@A R).() -> T'

This also fixes stub builder tests (which check that stubs are consistent with rendered descriptors).
This commit is contained in:
Dmitry Petrov
2016-12-14 14:50:26 +03:00
committed by Stanislav Erokhin
parent 6e1340da82
commit cf4fb1eb25
20 changed files with 206 additions and 44 deletions
@@ -1,7 +1,7 @@
package
public val inVal: (x: kotlin.Int) -> kotlin.Unit
public val onType: @TypeAnn A.(a: @TypeAnn A, A) -> @TypeAnn A?
public val onType: (@TypeAnn A).(a: @TypeAnn A, A) -> @TypeAnn A?
public fun f(/*0*/ @Ann x: kotlin.Int): kotlin.Unit
public fun inParam(/*0*/ fn: (x: kotlin.Int) -> kotlin.Unit): kotlin.Unit
public fun inParamNested(/*0*/ fn1: (fn2: (n: kotlin.Int) -> kotlin.Unit) -> kotlin.Unit): kotlin.Unit
@@ -1,6 +1,6 @@
package
public fun bar(/*0*/ x: @Ann B.() -> kotlin.Unit): kotlin.Unit
public fun bar(/*0*/ x: (@Ann B).() -> kotlin.Unit): kotlin.Unit
public fun @Ann A.test(): kotlin.Unit
public final class A {
@@ -1,11 +1,11 @@
package
public fun bar1(/*0*/ x: @L1 B.() -> kotlin.Unit): kotlin.Unit
public fun </*0*/ T> bar1t(/*0*/ q: T, /*1*/ x: @L1 T.() -> kotlin.Unit): kotlin.Unit
public fun bar2(/*0*/ x: @L2 B.() -> kotlin.Unit): kotlin.Unit
public fun foo1(/*0*/ x: @L1 A.() -> kotlin.Unit): kotlin.Unit
public fun foo12(/*0*/ x: @L1 @L2 A.() -> kotlin.Unit): kotlin.Unit
public fun foo2(/*0*/ x: @L2 A.() -> kotlin.Unit): kotlin.Unit
public fun bar1(/*0*/ x: (@L1 B).() -> kotlin.Unit): kotlin.Unit
public fun </*0*/ T> bar1t(/*0*/ q: T, /*1*/ x: (@L1 T).() -> kotlin.Unit): kotlin.Unit
public fun bar2(/*0*/ x: (@L2 B).() -> kotlin.Unit): kotlin.Unit
public fun foo1(/*0*/ x: (@L1 A).() -> kotlin.Unit): kotlin.Unit
public fun foo12(/*0*/ x: (@L1 @L2 A).() -> kotlin.Unit): kotlin.Unit
public fun foo2(/*0*/ x: (@L2 A).() -> kotlin.Unit): kotlin.Unit
public fun test(): kotlin.Unit
public final class A {
@@ -1,7 +1,7 @@
package
public fun bar(/*0*/ x: @Ann B.() -> kotlin.Unit): kotlin.Unit
public fun foo(/*0*/ x: @Ann A.() -> kotlin.Unit): kotlin.Unit
public fun bar(/*0*/ x: (@Ann B).() -> kotlin.Unit): kotlin.Unit
public fun foo(/*0*/ x: (@Ann A).() -> kotlin.Unit): kotlin.Unit
public fun test(): kotlin.Unit
public final class A {
@@ -1,7 +1,7 @@
package
public fun bar(/*0*/ x: @Ann B.() -> kotlin.Unit): kotlin.Unit
public fun foo(/*0*/ x: @Ann A.() -> kotlin.Unit): kotlin.Unit
public fun bar(/*0*/ x: (@Ann B).() -> kotlin.Unit): kotlin.Unit
public fun foo(/*0*/ x: (@Ann A).() -> kotlin.Unit): kotlin.Unit
public fun test(): kotlin.Unit
public final class A {
@@ -1,7 +1,7 @@
package
public fun </*0*/ E> bar(/*0*/ x: @Ann E.() -> kotlin.Unit): kotlin.Unit
public fun </*0*/ T> foo(/*0*/ x: @Ann T.() -> kotlin.Unit): kotlin.Unit
public fun </*0*/ E> bar(/*0*/ x: (@Ann E).() -> kotlin.Unit): kotlin.Unit
public fun </*0*/ T> foo(/*0*/ x: (@Ann T).() -> kotlin.Unit): kotlin.Unit
public fun test(): kotlin.Unit
public final class A {
@@ -1,11 +1,11 @@
package
public fun bar(/*0*/ x: @Ann2 B.() -> kotlin.Unit): kotlin.Unit
public fun baz(/*0*/ x: @Ann3 C.() -> kotlin.Unit): kotlin.Unit
public fun foo(/*0*/ x: @Ann1 A.() -> kotlin.Unit): kotlin.Unit
public fun foo1(/*0*/ x: @Ann1 D.() -> kotlin.Unit): kotlin.Unit
public fun foo2(/*0*/ x: @Ann2 D.() -> kotlin.Unit): kotlin.Unit
public fun foo3(/*0*/ x: @Ann3 D.() -> kotlin.Unit): kotlin.Unit
public fun bar(/*0*/ x: (@Ann2 B).() -> kotlin.Unit): kotlin.Unit
public fun baz(/*0*/ x: (@Ann3 C).() -> kotlin.Unit): kotlin.Unit
public fun foo(/*0*/ x: (@Ann1 A).() -> kotlin.Unit): kotlin.Unit
public fun foo1(/*0*/ x: (@Ann1 D).() -> kotlin.Unit): kotlin.Unit
public fun foo2(/*0*/ x: (@Ann2 D).() -> kotlin.Unit): kotlin.Unit
public fun foo3(/*0*/ x: (@Ann3 D).() -> kotlin.Unit): kotlin.Unit
public fun test(): kotlin.Unit
public final class A {
@@ -1,11 +1,11 @@
package
public fun bar(/*0*/ x: @Ann2 B.() -> kotlin.Unit): kotlin.Unit
public fun baz(/*0*/ x: @Ann3 C.() -> kotlin.Unit): kotlin.Unit
public fun foo(/*0*/ x: @Ann1 A.() -> kotlin.Unit): kotlin.Unit
public fun foo1(/*0*/ x: @Ann1 D.() -> kotlin.Unit): kotlin.Unit
public fun foo2(/*0*/ x: @Ann2 D.() -> kotlin.Unit): kotlin.Unit
public fun foo3(/*0*/ x: @Ann3 D.() -> kotlin.Unit): kotlin.Unit
public fun bar(/*0*/ x: (@Ann2 B).() -> kotlin.Unit): kotlin.Unit
public fun baz(/*0*/ x: (@Ann3 C).() -> kotlin.Unit): kotlin.Unit
public fun foo(/*0*/ x: (@Ann1 A).() -> kotlin.Unit): kotlin.Unit
public fun foo1(/*0*/ x: (@Ann1 D).() -> kotlin.Unit): kotlin.Unit
public fun foo2(/*0*/ x: (@Ann2 D).() -> kotlin.Unit): kotlin.Unit
public fun foo3(/*0*/ x: (@Ann3 D).() -> kotlin.Unit): kotlin.Unit
public fun test(): kotlin.Unit
public final class A {
@@ -1,8 +1,8 @@
package
public fun bar(/*0*/ x: @Ann2 B.() -> kotlin.Unit): kotlin.Unit
public fun baz(/*0*/ x: @Ann1 D.() -> kotlin.Unit): kotlin.Unit
public fun foo(/*0*/ x: @Ann1 A.() -> kotlin.Unit): kotlin.Unit
public fun bar(/*0*/ x: (@Ann2 B).() -> kotlin.Unit): kotlin.Unit
public fun baz(/*0*/ x: (@Ann1 D).() -> kotlin.Unit): kotlin.Unit
public fun foo(/*0*/ x: (@Ann1 A).() -> kotlin.Unit): kotlin.Unit
public fun test(): kotlin.Unit
public final class A {
@@ -1,9 +1,9 @@
package
public fun bar1(/*0*/ x: @L1 B.() -> kotlin.Unit): kotlin.Unit
public fun bar2(/*0*/ x: @L2 B.() -> kotlin.Unit): kotlin.Unit
public fun foo1(/*0*/ x: @L1 A.() -> kotlin.Unit): kotlin.Unit
public fun foo2(/*0*/ x: @L2 A.() -> kotlin.Unit): kotlin.Unit
public fun bar1(/*0*/ x: (@L1 B).() -> kotlin.Unit): kotlin.Unit
public fun bar2(/*0*/ x: (@L2 B).() -> kotlin.Unit): kotlin.Unit
public fun foo1(/*0*/ x: (@L1 A).() -> kotlin.Unit): kotlin.Unit
public fun foo2(/*0*/ x: (@L2 A).() -> kotlin.Unit): kotlin.Unit
public fun test(): kotlin.Unit
public final class A {
@@ -1,7 +1,7 @@
package
public fun bar(/*0*/ x: @Ann B.() -> kotlin.Unit): kotlin.Unit
public fun foo(/*0*/ x: @Ann A.() -> kotlin.Unit): kotlin.Unit
public fun bar(/*0*/ x: (@Ann B).() -> kotlin.Unit): kotlin.Unit
public fun foo(/*0*/ x: (@Ann A).() -> kotlin.Unit): kotlin.Unit
public fun test(): kotlin.Unit
public final class A {