Intoduce and support DslMarker annotation

#KT-11551 In Progress
This commit is contained in:
Denis Zharkov
2016-10-25 17:13:43 +03:00
parent b8e8206c4f
commit 7553d3f72b
49 changed files with 1804 additions and 1 deletions
@@ -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()
}
}
}
@@ -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
}
@@ -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()
}
}
@@ -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
}
@@ -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()
}
}
@@ -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<!>()
}
}
}
}
@@ -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
}
@@ -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()
}
}
}
}
}
}
@@ -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
}
@@ -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()
}
}
}
@@ -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
}
@@ -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()
}
}
}
@@ -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,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()
}
}
}
@@ -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
}
@@ -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()
}
}
}
@@ -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
}
@@ -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()
}
}
}
}
}
@@ -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
}
@@ -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()
}
}
}
}
}
@@ -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
}
@@ -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()
}
}
}
}
}
@@ -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
}