From b5d0de7c3fd4fea71eda20ec22f8262280ca64f8 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Fri, 28 Apr 2017 13:21:34 +0300 Subject: [PATCH] Add test for KT-17479 looks like #KT-17479 Fixed (after CAPTURED_MEMBER_VAL_INITIALIZATION introduction) --- .../initializationInLocalViaExplicitThis.kt | 17 +++++++++++++++++ .../initializationInLocalViaExplicitThis.txt | 9 +++++++++ .../checkers/DiagnosticsTestGenerated.java | 6 ++++++ 3 files changed, 32 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/controlFlowAnalysis/initializationInLocalViaExplicitThis.kt create mode 100644 compiler/testData/diagnostics/tests/controlFlowAnalysis/initializationInLocalViaExplicitThis.txt diff --git a/compiler/testData/diagnostics/tests/controlFlowAnalysis/initializationInLocalViaExplicitThis.kt b/compiler/testData/diagnostics/tests/controlFlowAnalysis/initializationInLocalViaExplicitThis.kt new file mode 100644 index 00000000000..95015c9c3ea --- /dev/null +++ b/compiler/testData/diagnostics/tests/controlFlowAnalysis/initializationInLocalViaExplicitThis.kt @@ -0,0 +1,17 @@ +// See KT-17479 + +class Test { + val str: String + init { + run { + this@Test.str = "A" + } + + run { + // Not sure do we need diagnostic also here + this@Test.str = "B" + } + + str = "C" + } +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/controlFlowAnalysis/initializationInLocalViaExplicitThis.txt b/compiler/testData/diagnostics/tests/controlFlowAnalysis/initializationInLocalViaExplicitThis.txt new file mode 100644 index 00000000000..582fbdd5e04 --- /dev/null +++ b/compiler/testData/diagnostics/tests/controlFlowAnalysis/initializationInLocalViaExplicitThis.txt @@ -0,0 +1,9 @@ +package + +public final class Test { + public constructor Test() + public final val str: kotlin.String + 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 +} diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java index c611b14f3ba..5873e994fbc 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java @@ -3790,6 +3790,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest { doTest(fileName); } + @TestMetadata("initializationInLocalViaExplicitThis.kt") + public void testInitializationInLocalViaExplicitThis() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/controlFlowAnalysis/initializationInLocalViaExplicitThis.kt"); + doTest(fileName); + } + @TestMetadata("kt1001.kt") public void testKt1001() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/controlFlowAnalysis/kt1001.kt");