Intoduce and support DslMarker annotation
#KT-11551 In Progress
This commit is contained in:
+26
@@ -0,0 +1,26 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
@DslMarker
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann
|
||||
|
||||
class A {
|
||||
fun a() = 1
|
||||
}
|
||||
|
||||
class B {
|
||||
fun b() = 2
|
||||
}
|
||||
|
||||
fun <T> foo(x: T.() -> Unit) {}
|
||||
fun <E> bar(x: E.() -> Unit) {}
|
||||
|
||||
fun test() {
|
||||
foo<@Ann A> {
|
||||
a()
|
||||
bar<@Ann B> {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
this@foo.a()
|
||||
b()
|
||||
}
|
||||
}
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package
|
||||
|
||||
public fun </*0*/ E> bar(/*0*/ x: E.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun </*0*/ T> foo(/*0*/ x: T.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public final fun a(): kotlin.Int
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Ann : kotlin.Annotation {
|
||||
public constructor Ann()
|
||||
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 B {
|
||||
public constructor B()
|
||||
public final fun b(): kotlin.Int
|
||||
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
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
@DslMarker
|
||||
annotation class Ann
|
||||
|
||||
@Ann
|
||||
interface Common
|
||||
interface C : Common
|
||||
interface D : C
|
||||
|
||||
class A : C {
|
||||
fun a() = 1
|
||||
}
|
||||
|
||||
class B : D {
|
||||
fun b() = 2
|
||||
}
|
||||
|
||||
fun foo(x: A.() -> Unit) {}
|
||||
fun bar(x: B.() -> Unit) {}
|
||||
|
||||
fun test() {
|
||||
foo {
|
||||
a()
|
||||
bar {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
this@foo.a()
|
||||
b()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package
|
||||
|
||||
public fun bar(/*0*/ x: B.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo(/*0*/ x: A.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun test(): kotlin.Unit
|
||||
|
||||
public final class A : C {
|
||||
public constructor A()
|
||||
public final fun a(): kotlin.Int
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker public final annotation class Ann : kotlin.Annotation {
|
||||
public constructor Ann()
|
||||
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 B : D {
|
||||
public constructor B()
|
||||
public final fun b(): kotlin.Int
|
||||
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 interface C : Common {
|
||||
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
|
||||
}
|
||||
|
||||
@Ann public interface Common {
|
||||
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 interface D : C {
|
||||
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
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
@DslMarker
|
||||
annotation class Ann
|
||||
|
||||
@Ann
|
||||
class A {
|
||||
fun a() = 1
|
||||
}
|
||||
|
||||
@Ann
|
||||
class B {
|
||||
fun b() = 2
|
||||
}
|
||||
|
||||
fun bar(x: B.() -> Unit) {}
|
||||
|
||||
fun A.test() {
|
||||
bar {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
this@test.a()
|
||||
b()
|
||||
}
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
package
|
||||
|
||||
public fun bar(/*0*/ x: B.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun A.test(): kotlin.Unit
|
||||
|
||||
@Ann public final class A {
|
||||
public constructor A()
|
||||
public final fun a(): kotlin.Int
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker public final annotation class Ann : kotlin.Annotation {
|
||||
public constructor Ann()
|
||||
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
|
||||
}
|
||||
|
||||
@Ann public final class B {
|
||||
public constructor B()
|
||||
public final fun b(): kotlin.Int
|
||||
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
|
||||
}
|
||||
Vendored
+22
@@ -0,0 +1,22 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
@DslMarker
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann
|
||||
|
||||
class A {
|
||||
fun a() = 1
|
||||
}
|
||||
|
||||
class B {
|
||||
fun b() = 2
|
||||
}
|
||||
|
||||
fun bar(x: @Ann B.() -> Unit) {}
|
||||
|
||||
fun @Ann A.test() {
|
||||
bar {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
this@test.a()
|
||||
b()
|
||||
}
|
||||
}
|
||||
Vendored
+27
@@ -0,0 +1,27 @@
|
||||
package
|
||||
|
||||
public fun bar(/*0*/ x: @Ann B.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun @Ann A.test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public final fun a(): kotlin.Int
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Ann : kotlin.Annotation {
|
||||
public constructor Ann()
|
||||
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 B {
|
||||
public constructor B()
|
||||
public final fun b(): kotlin.Int
|
||||
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
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
@DslMarker
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class L1
|
||||
|
||||
@DslMarker
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class L2
|
||||
|
||||
class A {
|
||||
fun a() = 1
|
||||
}
|
||||
|
||||
class B {
|
||||
fun b() = 2
|
||||
}
|
||||
|
||||
fun foo1(x: @L1 A.() -> Unit) {}
|
||||
fun foo2(x: @L2 A.() -> Unit) {}
|
||||
|
||||
fun foo12(x: @L1 @L2 A.() -> Unit) {}
|
||||
|
||||
fun bar1(x: @L1 B.() -> Unit) {}
|
||||
fun bar2(x: @L2 B.() -> Unit) {}
|
||||
|
||||
fun <T> bar1t(q: T, x: @L1 T.() -> Unit) {}
|
||||
|
||||
fun test() {
|
||||
foo12 {
|
||||
a()
|
||||
bar1 {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
b()
|
||||
}
|
||||
|
||||
bar2 {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
b()
|
||||
}
|
||||
}
|
||||
|
||||
bar1 {
|
||||
b()
|
||||
foo12 {
|
||||
a()
|
||||
<!DSL_SCOPE_VIOLATION!>b<!>()
|
||||
}
|
||||
}
|
||||
|
||||
bar2 {
|
||||
b()
|
||||
foo12 {
|
||||
a()
|
||||
<!DSL_SCOPE_VIOLATION!>b<!>()
|
||||
}
|
||||
}
|
||||
|
||||
foo2 {
|
||||
bar1t(this) {
|
||||
a()
|
||||
bar1 {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
b()
|
||||
}
|
||||
|
||||
bar2 {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
b()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bar1 {
|
||||
b()
|
||||
foo2 {
|
||||
bar1t(this) {
|
||||
a()
|
||||
<!DSL_SCOPE_VIOLATION!>b<!>()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bar2 {
|
||||
b()
|
||||
foo2 {
|
||||
bar1t(this) {
|
||||
a()
|
||||
<!DSL_SCOPE_VIOLATION!>b<!>()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
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 test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public final fun a(): kotlin.Int
|
||||
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 B {
|
||||
public constructor B()
|
||||
public final fun b(): kotlin.Int
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class L1 : kotlin.Annotation {
|
||||
public constructor L1()
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class L2 : kotlin.Annotation {
|
||||
public constructor L2()
|
||||
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
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
@DslMarker
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann
|
||||
|
||||
class A {
|
||||
fun a() = 1
|
||||
}
|
||||
|
||||
class B {
|
||||
fun b() = 2
|
||||
}
|
||||
|
||||
fun foo(x: @Ann A.() -> Unit) {}
|
||||
fun bar(x: @Ann B.() -> Unit) {}
|
||||
|
||||
fun test() {
|
||||
foo {
|
||||
a()
|
||||
foo l1@{
|
||||
a()
|
||||
bar l2@{
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
this@l1.a()
|
||||
b()
|
||||
|
||||
foo l3@{
|
||||
a()
|
||||
<!DSL_SCOPE_VIOLATION!>b<!>()
|
||||
this@l2.b()
|
||||
bar {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
this@l3.a()
|
||||
b()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
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 test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public final fun a(): kotlin.Int
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Ann : kotlin.Annotation {
|
||||
public constructor Ann()
|
||||
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 B {
|
||||
public constructor B()
|
||||
public final fun b(): kotlin.Int
|
||||
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
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
@DslMarker
|
||||
annotation class Ann
|
||||
|
||||
@Ann
|
||||
class A {
|
||||
var a = 1
|
||||
}
|
||||
|
||||
var A.a1: Int
|
||||
get() = 1
|
||||
set(value) {}
|
||||
|
||||
@Ann
|
||||
class B {
|
||||
var b = 2
|
||||
}
|
||||
|
||||
var B.b1: Int
|
||||
get() = 1
|
||||
set(value) {}
|
||||
|
||||
fun foo(x: A.() -> Unit) {}
|
||||
fun bar(x: B.() -> Unit) {}
|
||||
|
||||
fun test() {
|
||||
foo {
|
||||
a + 1
|
||||
a += a + 1
|
||||
a++
|
||||
|
||||
a1 + 1
|
||||
a1 += a1 + 1
|
||||
a1++
|
||||
|
||||
bar {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!> + 1
|
||||
<!DSL_SCOPE_VIOLATION, DSL_SCOPE_VIOLATION!>a<!> += <!DSL_SCOPE_VIOLATION!>a<!> + 1
|
||||
<!DSL_SCOPE_VIOLATION, DSL_SCOPE_VIOLATION!>a<!>++
|
||||
|
||||
<!DSL_SCOPE_VIOLATION!>a1<!> + 1
|
||||
<!DSL_SCOPE_VIOLATION!>a1<!> += <!DSL_SCOPE_VIOLATION!>a1<!> + 1
|
||||
<!DSL_SCOPE_VIOLATION!>a1<!>++
|
||||
|
||||
this@foo.a + 1
|
||||
this@foo.a += this@foo.a + 1
|
||||
this@foo.a++
|
||||
|
||||
this@foo.a1 + 1
|
||||
this@foo.a1 += this@foo.a1 + 1
|
||||
this@foo.a1++
|
||||
|
||||
b + 1
|
||||
b += b + 1
|
||||
b++
|
||||
|
||||
b1 + 1
|
||||
b1 += b1 + 1
|
||||
b1++
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package
|
||||
|
||||
public var A.a1: kotlin.Int
|
||||
public var B.b1: kotlin.Int
|
||||
public fun bar(/*0*/ x: B.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo(/*0*/ x: A.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun test(): kotlin.Unit
|
||||
|
||||
@Ann public final class A {
|
||||
public constructor A()
|
||||
public final var a: kotlin.Int
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker public final annotation class Ann : kotlin.Annotation {
|
||||
public constructor Ann()
|
||||
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
|
||||
}
|
||||
|
||||
@Ann public final class B {
|
||||
public constructor B()
|
||||
public final var b: kotlin.Int
|
||||
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
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
@DslMarker
|
||||
annotation class Ann
|
||||
|
||||
@Ann
|
||||
class A {
|
||||
fun a() = 1
|
||||
}
|
||||
|
||||
@Ann
|
||||
class B {
|
||||
fun b() = 2
|
||||
}
|
||||
|
||||
fun foo(x: A.() -> Unit) {}
|
||||
fun bar(x: B.() -> Unit) {}
|
||||
|
||||
fun test() {
|
||||
foo {
|
||||
a()
|
||||
bar {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
this@foo.a()
|
||||
b()
|
||||
}
|
||||
}
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package
|
||||
|
||||
public fun bar(/*0*/ x: B.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo(/*0*/ x: A.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun test(): kotlin.Unit
|
||||
|
||||
@Ann public final class A {
|
||||
public constructor A()
|
||||
public final fun a(): kotlin.Int
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker public final annotation class Ann : kotlin.Annotation {
|
||||
public constructor Ann()
|
||||
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
|
||||
}
|
||||
|
||||
@Ann public final class B {
|
||||
public constructor B()
|
||||
public final fun b(): kotlin.Int
|
||||
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
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
@DslMarker
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann
|
||||
|
||||
class A {
|
||||
fun a() = 1
|
||||
}
|
||||
|
||||
class B {
|
||||
fun b() = 2
|
||||
}
|
||||
|
||||
fun foo(x: @Ann A.() -> Unit) {}
|
||||
fun bar(x: @Ann B.() -> Unit) {}
|
||||
|
||||
fun test() {
|
||||
foo {
|
||||
a()
|
||||
bar {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
this@foo.a()
|
||||
b()
|
||||
}
|
||||
}
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
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 test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public final fun a(): kotlin.Int
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Ann : kotlin.Annotation {
|
||||
public constructor Ann()
|
||||
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 B {
|
||||
public constructor B()
|
||||
public final fun b(): kotlin.Int
|
||||
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
|
||||
}
|
||||
Vendored
+27
@@ -0,0 +1,27 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
@DslMarker
|
||||
annotation class Ann
|
||||
|
||||
@Ann
|
||||
class A {
|
||||
fun a() = 1
|
||||
}
|
||||
|
||||
@Ann
|
||||
class B {
|
||||
fun b() = 2
|
||||
}
|
||||
|
||||
fun <T> foo(x: T.() -> Unit) {}
|
||||
fun <E> bar(x: E.() -> Unit) {}
|
||||
|
||||
fun test() {
|
||||
foo<A> {
|
||||
a()
|
||||
bar<B> {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
this@foo.a()
|
||||
b()
|
||||
}
|
||||
}
|
||||
}
|
||||
Vendored
+28
@@ -0,0 +1,28 @@
|
||||
package
|
||||
|
||||
public fun </*0*/ E> bar(/*0*/ x: E.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun </*0*/ T> foo(/*0*/ x: T.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun test(): kotlin.Unit
|
||||
|
||||
@Ann public final class A {
|
||||
public constructor A()
|
||||
public final fun a(): kotlin.Int
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker public final annotation class Ann : kotlin.Annotation {
|
||||
public constructor Ann()
|
||||
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
|
||||
}
|
||||
|
||||
@Ann public final class B {
|
||||
public constructor B()
|
||||
public final fun b(): kotlin.Int
|
||||
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
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
@DslMarker
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann
|
||||
|
||||
class A {
|
||||
fun a() = 1
|
||||
}
|
||||
|
||||
class B {
|
||||
fun b() = 2
|
||||
}
|
||||
|
||||
fun <T> foo(x: @Ann T.() -> Unit) {}
|
||||
fun <E> bar(x: @Ann E.() -> Unit) {}
|
||||
|
||||
fun test() {
|
||||
foo<A> {
|
||||
a()
|
||||
bar<B> {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
this@foo.a()
|
||||
b()
|
||||
}
|
||||
}
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
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 test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public final fun a(): kotlin.Int
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Ann : kotlin.Annotation {
|
||||
public constructor Ann()
|
||||
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 B {
|
||||
public constructor B()
|
||||
public final fun b(): kotlin.Int
|
||||
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
|
||||
}
|
||||
+110
@@ -0,0 +1,110 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
@DslMarker
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann1
|
||||
|
||||
@DslMarker
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann2
|
||||
|
||||
@DslMarker
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann3
|
||||
|
||||
class A {
|
||||
operator fun B.invoke() {}
|
||||
|
||||
val B.y: D get() = D()
|
||||
}
|
||||
|
||||
class B
|
||||
|
||||
class C {
|
||||
operator fun D.invoke() {}
|
||||
|
||||
val D.x: B get() = B()
|
||||
}
|
||||
|
||||
class D
|
||||
|
||||
fun foo(x: @Ann1 A.() -> Unit) {}
|
||||
fun bar(x: @Ann2 B.() -> Unit) {}
|
||||
fun baz(x: @Ann3 C.() -> Unit) {}
|
||||
fun foo1(x: @Ann1 D.() -> Unit) {}
|
||||
fun foo2(x: @Ann2 D.() -> Unit) {}
|
||||
fun foo3(x: @Ann3 D.() -> Unit) {}
|
||||
|
||||
fun test() {
|
||||
foo {
|
||||
bar {
|
||||
baz {
|
||||
y()
|
||||
|
||||
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER, FUNCTION_EXPECTED!>x<!>()
|
||||
|
||||
with(D()) {
|
||||
x()
|
||||
}
|
||||
D().x()
|
||||
|
||||
foo1 {
|
||||
<!DSL_SCOPE_VIOLATION!>x<!>()
|
||||
<!DSL_SCOPE_VIOLATION!>y<!>()
|
||||
|
||||
with(A()) {
|
||||
x()
|
||||
y()
|
||||
}
|
||||
|
||||
with(D()) {
|
||||
<!DSL_SCOPE_VIOLATION!>x<!>()
|
||||
}
|
||||
D().<!DSL_SCOPE_VIOLATION!>x<!>()
|
||||
}
|
||||
|
||||
foo2 {
|
||||
x()
|
||||
<!DSL_SCOPE_VIOLATION!>y<!>()
|
||||
}
|
||||
|
||||
foo3 {
|
||||
<!DSL_SCOPE_VIOLATION!>x<!>()
|
||||
<!DSL_SCOPE_VIOLATION!>y<!>()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foo1 {
|
||||
foo {
|
||||
baz {
|
||||
bar {
|
||||
<!DSL_SCOPE_VIOLATION!>x<!>()
|
||||
y()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foo2 {
|
||||
foo {
|
||||
baz {
|
||||
bar {
|
||||
<!DSL_SCOPE_VIOLATION!>x<!>()
|
||||
y()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foo3 {
|
||||
foo {
|
||||
baz {
|
||||
bar {
|
||||
<!DSL_SCOPE_VIOLATION!>x<!>()
|
||||
y()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
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 test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public final val B.y: D
|
||||
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 operator fun B.invoke(): kotlin.Unit
|
||||
}
|
||||
|
||||
@kotlin.DslMarker @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Ann1 : kotlin.Annotation {
|
||||
public constructor Ann1()
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Ann2 : kotlin.Annotation {
|
||||
public constructor Ann2()
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Ann3 : kotlin.Annotation {
|
||||
public constructor Ann3()
|
||||
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 B {
|
||||
public constructor 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
|
||||
}
|
||||
|
||||
public final class C {
|
||||
public constructor C()
|
||||
public final val D.x: 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
|
||||
public final operator fun D.invoke(): kotlin.Unit
|
||||
}
|
||||
|
||||
public final class D {
|
||||
public constructor D()
|
||||
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
|
||||
}
|
||||
+105
@@ -0,0 +1,105 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
@DslMarker
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann1
|
||||
|
||||
@DslMarker
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann2
|
||||
|
||||
@DslMarker
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann3
|
||||
|
||||
class A {
|
||||
val B.y: (C.() -> Unit) get() = null!!
|
||||
}
|
||||
|
||||
class B
|
||||
|
||||
class C {
|
||||
val D.x: (A.() -> Unit) get() = null!!
|
||||
}
|
||||
|
||||
class D
|
||||
|
||||
fun foo(x: @Ann1 A.() -> Unit) {}
|
||||
fun bar(x: @Ann2 B.() -> Unit) {}
|
||||
fun baz(x: @Ann3 C.() -> Unit) {}
|
||||
fun foo1(x: @Ann1 D.() -> Unit) {}
|
||||
fun foo2(x: @Ann2 D.() -> Unit) {}
|
||||
fun foo3(x: @Ann3 D.() -> Unit) {}
|
||||
|
||||
fun test() {
|
||||
foo {
|
||||
bar {
|
||||
baz {
|
||||
y()
|
||||
|
||||
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER, FUNCTION_EXPECTED!>x<!>()
|
||||
|
||||
with(D()) {
|
||||
x()
|
||||
}
|
||||
|
||||
foo1 {
|
||||
<!DSL_SCOPE_VIOLATION!>x<!>()
|
||||
<!DSL_SCOPE_VIOLATION!>y<!>()
|
||||
|
||||
with(A()) {
|
||||
x()
|
||||
y()
|
||||
}
|
||||
|
||||
with(D()) {
|
||||
<!DSL_SCOPE_VIOLATION!>x<!>()
|
||||
}
|
||||
A().x()
|
||||
}
|
||||
|
||||
foo2 {
|
||||
x()
|
||||
<!DSL_SCOPE_VIOLATION!>y<!>()
|
||||
}
|
||||
|
||||
foo3 {
|
||||
<!DSL_SCOPE_VIOLATION!>x<!>()
|
||||
<!DSL_SCOPE_VIOLATION!>y<!>()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foo1 {
|
||||
foo {
|
||||
baz {
|
||||
bar {
|
||||
<!DSL_SCOPE_VIOLATION!>x<!>()
|
||||
y()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foo2 {
|
||||
foo {
|
||||
baz {
|
||||
bar {
|
||||
<!DSL_SCOPE_VIOLATION!>x<!>()
|
||||
y()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foo3 {
|
||||
foo {
|
||||
baz {
|
||||
bar {
|
||||
<!DSL_SCOPE_VIOLATION!>x<!>()
|
||||
y()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
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 test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public final val B.y: C.() -> kotlin.Unit
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Ann1 : kotlin.Annotation {
|
||||
public constructor Ann1()
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Ann2 : kotlin.Annotation {
|
||||
public constructor Ann2()
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Ann3 : kotlin.Annotation {
|
||||
public constructor Ann3()
|
||||
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 B {
|
||||
public constructor 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
|
||||
}
|
||||
|
||||
public final class C {
|
||||
public constructor C()
|
||||
public final val D.x: A.() -> kotlin.Unit
|
||||
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 D {
|
||||
public constructor D()
|
||||
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
|
||||
}
|
||||
+102
@@ -0,0 +1,102 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
@DslMarker
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann1
|
||||
|
||||
@DslMarker
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann2
|
||||
|
||||
class A {
|
||||
fun D.extA() {}
|
||||
}
|
||||
|
||||
class B {
|
||||
fun D.extB() {}
|
||||
}
|
||||
|
||||
class D
|
||||
|
||||
fun foo(x: @Ann1 A.() -> Unit) {}
|
||||
fun bar(x: @Ann2 B.() -> Unit) {}
|
||||
fun baz(x: @Ann1 D.() -> Unit) {}
|
||||
|
||||
fun test() {
|
||||
foo {
|
||||
bar {
|
||||
baz {
|
||||
<!DSL_SCOPE_VIOLATION!>extA<!>()
|
||||
extB()
|
||||
|
||||
D().<!DSL_SCOPE_VIOLATION!>extA<!>()
|
||||
D().extB()
|
||||
|
||||
with(D()) {
|
||||
<!DSL_SCOPE_VIOLATION!>extA<!>()
|
||||
extB()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foo {
|
||||
baz {
|
||||
<!DSL_SCOPE_VIOLATION!>extA<!>()
|
||||
D().<!DSL_SCOPE_VIOLATION!>extA<!>()
|
||||
|
||||
bar {
|
||||
<!DSL_SCOPE_VIOLATION!>extA<!>()
|
||||
extB()
|
||||
|
||||
D().<!DSL_SCOPE_VIOLATION!>extA<!>()
|
||||
D().extB()
|
||||
|
||||
with(D()) {
|
||||
<!DSL_SCOPE_VIOLATION!>extA<!>()
|
||||
extB()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
baz {
|
||||
foo {
|
||||
<!DSL_SCOPE_VIOLATION!>extA<!>()
|
||||
D().extA()
|
||||
|
||||
bar {
|
||||
<!DSL_SCOPE_VIOLATION!>extA<!>()
|
||||
<!DSL_SCOPE_VIOLATION!>extB<!>()
|
||||
|
||||
D().extA()
|
||||
D().extB()
|
||||
|
||||
with(D()) {
|
||||
extA()
|
||||
extB()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
baz {
|
||||
bar {
|
||||
extB()
|
||||
|
||||
D().extB()
|
||||
|
||||
foo {
|
||||
<!DSL_SCOPE_VIOLATION!>extA<!>()
|
||||
<!DSL_SCOPE_VIOLATION!>extB<!>()
|
||||
|
||||
D().extA()
|
||||
D().extB()
|
||||
|
||||
with(D()) {
|
||||
extA()
|
||||
extB()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
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 test(): kotlin.Unit
|
||||
|
||||
public 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
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
public final fun D.extA(): kotlin.Unit
|
||||
}
|
||||
|
||||
@kotlin.DslMarker @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Ann1 : kotlin.Annotation {
|
||||
public constructor Ann1()
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Ann2 : kotlin.Annotation {
|
||||
public constructor Ann2()
|
||||
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 B {
|
||||
public constructor 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
|
||||
public final fun D.extB(): kotlin.Unit
|
||||
}
|
||||
|
||||
public final class D {
|
||||
public constructor D()
|
||||
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
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
@DslMarker
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class L1
|
||||
|
||||
@DslMarker
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class L2
|
||||
|
||||
class A {
|
||||
fun a() = 1
|
||||
}
|
||||
|
||||
class B {
|
||||
fun b() = 2
|
||||
}
|
||||
|
||||
fun foo1(x: @L1 A.() -> Unit) {}
|
||||
fun foo2(x: @L2 A.() -> Unit) {}
|
||||
fun bar1(x: @L1 B.() -> Unit) {}
|
||||
fun bar2(x: @L2 B.() -> Unit) {}
|
||||
|
||||
fun test() {
|
||||
foo1 {
|
||||
a()
|
||||
|
||||
foo2 {
|
||||
a()
|
||||
|
||||
bar1 {
|
||||
a()
|
||||
b()
|
||||
bar2 {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
b()
|
||||
}
|
||||
}
|
||||
|
||||
bar2 {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
b()
|
||||
}
|
||||
}
|
||||
|
||||
bar1 {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
b()
|
||||
bar2 {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
b()
|
||||
}
|
||||
}
|
||||
|
||||
bar2 {
|
||||
a()
|
||||
b()
|
||||
}
|
||||
}
|
||||
|
||||
foo2 {
|
||||
a()
|
||||
|
||||
bar1 {
|
||||
a()
|
||||
b()
|
||||
bar2 {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
b()
|
||||
}
|
||||
}
|
||||
|
||||
bar2 {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
b()
|
||||
}
|
||||
}
|
||||
|
||||
bar1 {
|
||||
b()
|
||||
bar2 {
|
||||
b()
|
||||
}
|
||||
}
|
||||
|
||||
bar2 {
|
||||
b()
|
||||
}
|
||||
|
||||
foo1 {
|
||||
bar1 {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
b()
|
||||
foo2 {
|
||||
a()
|
||||
b()
|
||||
|
||||
bar2 {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
b()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
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 test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public final fun a(): kotlin.Int
|
||||
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 B {
|
||||
public constructor B()
|
||||
public final fun b(): kotlin.Int
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class L1 : kotlin.Annotation {
|
||||
public constructor L1()
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class L2 : kotlin.Annotation {
|
||||
public constructor L2()
|
||||
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
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
@DslMarker
|
||||
annotation class Ann
|
||||
|
||||
@Ann
|
||||
class A
|
||||
|
||||
fun A.a() = 1
|
||||
|
||||
@Ann
|
||||
class B
|
||||
|
||||
fun B.b() = 2
|
||||
|
||||
fun foo(x: A.() -> Unit) {}
|
||||
fun bar(x: B.() -> Unit) {}
|
||||
|
||||
fun test() {
|
||||
foo {
|
||||
a()
|
||||
bar {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
this@foo.a()
|
||||
b()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package
|
||||
|
||||
public fun bar(/*0*/ x: B.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo(/*0*/ x: A.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun test(): kotlin.Unit
|
||||
public fun A.a(): kotlin.Int
|
||||
public fun B.b(): kotlin.Int
|
||||
|
||||
@Ann public 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
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
@kotlin.DslMarker public final annotation class Ann : kotlin.Annotation {
|
||||
public constructor Ann()
|
||||
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
|
||||
}
|
||||
|
||||
@Ann public final class B {
|
||||
public constructor 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
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
@DslMarker
|
||||
annotation class Ann
|
||||
|
||||
@Ann
|
||||
class A {
|
||||
fun a() = 1
|
||||
}
|
||||
|
||||
@Ann
|
||||
class B {
|
||||
fun b() = 2
|
||||
}
|
||||
|
||||
fun test(a: A, b: B) {
|
||||
with(a) l1@{
|
||||
a()
|
||||
with(b) {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
this@l1.a()
|
||||
b()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package
|
||||
|
||||
public fun test(/*0*/ a: A, /*1*/ b: B): kotlin.Unit
|
||||
|
||||
@Ann public final class A {
|
||||
public constructor A()
|
||||
public final fun a(): kotlin.Int
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker public final annotation class Ann : kotlin.Annotation {
|
||||
public constructor Ann()
|
||||
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
|
||||
}
|
||||
|
||||
@Ann public final class B {
|
||||
public constructor B()
|
||||
public final fun b(): kotlin.Int
|
||||
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
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
@DslMarker
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann
|
||||
|
||||
class A {
|
||||
fun a() = 1
|
||||
}
|
||||
|
||||
class B {
|
||||
fun b() = 2
|
||||
}
|
||||
|
||||
fun foo(x: @Ann A.() -> Unit) {}
|
||||
fun bar(x: @Ann B.() -> Unit) {}
|
||||
|
||||
fun test() {
|
||||
foo {
|
||||
with(this) l1@{
|
||||
a()
|
||||
bar {
|
||||
with(this) {
|
||||
<!DSL_SCOPE_VIOLATION!>a<!>()
|
||||
this@l1.a()
|
||||
b()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
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 test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public final fun a(): kotlin.Int
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.DslMarker @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Ann : kotlin.Annotation {
|
||||
public constructor Ann()
|
||||
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 B {
|
||||
public constructor B()
|
||||
public final fun b(): kotlin.Int
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user