Skip to content

Commit e690a3a

Browse files
committed
[test] Add a reproducer for KT-78073
(cherry picked from commit c396e26)
1 parent 0f85940 commit e690a3a

File tree

26 files changed

+176
-0
lines changed

26 files changed

+176
-0
lines changed

analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLBlackBoxTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLReversedBlackBoxTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// IGNORE_BACKEND: JS_IR, JS_IR_ES6
2+
// ^ KT-78073
3+
4+
import kotlin.reflect.KProperty
5+
6+
fun interface ReadOnlyProperty<in T, out V> {
7+
operator fun getValue(thisRef: T, property: KProperty<*>): V
8+
}
9+
10+
fun box(): String {
11+
val property1 by ReadOnlyProperty { _, property -> property }
12+
val property2 by ReadOnlyProperty { _, property -> property }
13+
14+
val property1Ref = property1
15+
if (property1Ref.name != "property1") return "Fail 1: ${property1Ref.name}"
16+
17+
val property2Ref = property2 // invokes the property2 delegate
18+
if (property1Ref.name != "property1") return "Fail 2: ${property1Ref.name}"
19+
if (property2Ref.name != "property2") return "Fail 3: ${property2Ref.name}"
20+
21+
property1 // invokes the property1 delegate
22+
if (property1Ref.name != "property1") return "Fail 4: ${property1Ref.name}"
23+
if (property2Ref.name != "property2") return "Fail 5: ${property2Ref.name}"
24+
25+
return "OK"
26+
}

compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/inlineScopes/FirBlackBoxCodegenTestWithInlineScopesGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)