diff --git a/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestWithStdlibGenerated.java b/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestWithStdlibGenerated.java index 1387a44a333d2de1843c7bb3b5e6a4656b17840c..9198d789c27d9d217a114203b61e713b383d1077 100644 --- a/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestWithStdlibGenerated.java +++ b/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestWithStdlibGenerated.java @@ -39,6 +39,11 @@ public class FirOldFrontendDiagnosticsTestWithStdlibGenerated extends AbstractFi runTest("compiler/testData/diagnostics/testsWithStdLib/ArrayOfNothing.kt"); } + @TestMetadata("assignedInSynchronized.kt") + public void testAssignedInSynchronized() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/assignedInSynchronized.kt"); + } + @TestMetadata("CallCompanionProtectedNonStatic.kt") public void testCallCompanionProtectedNonStatic() throws Exception { runTest("compiler/testData/diagnostics/testsWithStdLib/CallCompanionProtectedNonStatic.kt"); diff --git a/compiler/testData/diagnostics/testsWithStdLib/assignedInSynchronized.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/assignedInSynchronized.fir.kt new file mode 100644 index 0000000000000000000000000000000000000000..85adce7df3ac3fb989ec60eb0a9c7f3ead5dabaa --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/assignedInSynchronized.fir.kt @@ -0,0 +1,12 @@ +class A { + fun test() { + val a: A + synchronized(this) { + if (bar()) throw RuntimeException() + a = A() + } + a.bar() + } + + fun bar() = false +} diff --git a/compiler/testData/diagnostics/testsWithStdLib/assignedInSynchronized.kt b/compiler/testData/diagnostics/testsWithStdLib/assignedInSynchronized.kt new file mode 100644 index 0000000000000000000000000000000000000000..18596c5430fac4644477776cb0bdec5f96a0b367 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/assignedInSynchronized.kt @@ -0,0 +1,12 @@ +class A { + fun test() { + val a: A + synchronized(this) { + if (bar()) throw RuntimeException() + a = A() + } + a.bar() + } + + fun bar() = false +} diff --git a/compiler/testData/diagnostics/testsWithStdLib/assignedInSynchronized.txt b/compiler/testData/diagnostics/testsWithStdLib/assignedInSynchronized.txt new file mode 100644 index 0000000000000000000000000000000000000000..01315e44ce9b066a47bdbcbcaf4af5243f459b4a --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/assignedInSynchronized.txt @@ -0,0 +1,10 @@ +package + +public final class A { + public constructor A() + public final fun bar(): kotlin.Boolean + 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 final fun test(): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} diff --git a/compiler/testData/diagnostics/testsWithStdLib/contracts/controlflow/initialization/exactlyOnce/valDefiniteInitialization.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/contracts/controlflow/initialization/exactlyOnce/valDefiniteInitialization.fir.kt index e63f28fb23ca75d25075fd42a0c1819ea0615caf..b1bedb3fcede093ccbb9611f7d9c9698e642946c 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/contracts/controlflow/initialization/exactlyOnce/valDefiniteInitialization.fir.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/contracts/controlflow/initialization/exactlyOnce/valDefiniteInitialization.fir.kt @@ -89,4 +89,16 @@ class DefiniteInitializationInInitSection { myRun { x = 42 } unknownRun { y = 239 } } -} \ No newline at end of file +} + +class DefiniteInitializationAfterThrow { + fun test() { + val a: Int + myRun { + if (bar()) throw RuntimeException() + a = 42 + } + a.hashCode() + } + fun bar() = false +} diff --git a/compiler/testData/diagnostics/testsWithStdLib/contracts/controlflow/initialization/exactlyOnce/valDefiniteInitialization.kt b/compiler/testData/diagnostics/testsWithStdLib/contracts/controlflow/initialization/exactlyOnce/valDefiniteInitialization.kt index 74cf4cbc28d60be9a64e16ef7ff1f27f042b5c99..dbad861f8f72faddd46e1473b2d4ea88ee6d9e8f 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/contracts/controlflow/initialization/exactlyOnce/valDefiniteInitialization.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/contracts/controlflow/initialization/exactlyOnce/valDefiniteInitialization.kt @@ -89,4 +89,16 @@ class DefiniteInitializationInInitSection { myRun { x = 42 } unknownRun { y = 239 } } -} \ No newline at end of file +} + +class DefiniteInitializationAfterThrow { + fun test() { + val a: Int + myRun { + if (bar()) throw RuntimeException() + a = 42 + } + a.hashCode() + } + fun bar() = false +} diff --git a/compiler/testData/diagnostics/testsWithStdLib/contracts/controlflow/initialization/exactlyOnce/valDefiniteInitialization.txt b/compiler/testData/diagnostics/testsWithStdLib/contracts/controlflow/initialization/exactlyOnce/valDefiniteInitialization.txt index d10107c46d796ef2c30c8a87a2d61de66bd1bfbf..6814b01f411c186548b5794ec240ba056a4007b6 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/contracts/controlflow/initialization/exactlyOnce/valDefiniteInitialization.txt +++ b/compiler/testData/diagnostics/testsWithStdLib/contracts/controlflow/initialization/exactlyOnce/valDefiniteInitialization.txt @@ -11,6 +11,15 @@ public fun returningValue(): kotlin.Unit public fun shadowing(): kotlin.Unit public fun unknownRun(/*0*/ block: () -> kotlin.Unit): kotlin.Unit +public final class DefiniteInitializationAfterThrow { + public constructor DefiniteInitializationAfterThrow() + public final fun bar(): kotlin.Boolean + 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 final fun test(): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + public final class DefiniteInitializationInInitSection { public constructor DefiniteInitializationInInitSection() public final val x: kotlin.Int diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithStdLibGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithStdLibGenerated.java index b512c76d8af0c99294455c1960747914d058b632..002db0b93993b9d78dd17967524e5e62ab5287fd 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithStdLibGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithStdLibGenerated.java @@ -39,6 +39,11 @@ public class DiagnosticsTestWithStdLibGenerated extends AbstractDiagnosticsTestW runTest("compiler/testData/diagnostics/testsWithStdLib/ArrayOfNothing.kt"); } + @TestMetadata("assignedInSynchronized.kt") + public void testAssignedInSynchronized() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/assignedInSynchronized.kt"); + } + @TestMetadata("CallCompanionProtectedNonStatic.kt") public void testCallCompanionProtectedNonStatic() throws Exception { runTest("compiler/testData/diagnostics/testsWithStdLib/CallCompanionProtectedNonStatic.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java index fff8026db0e79c6251de2c467955e572047cf095..989dc6577261b22335c0569a27e3dc93ea021e8c 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java @@ -39,6 +39,11 @@ public class DiagnosticsTestWithStdLibUsingJavacGenerated extends AbstractDiagno runTest("compiler/testData/diagnostics/testsWithStdLib/ArrayOfNothing.kt"); } + @TestMetadata("assignedInSynchronized.kt") + public void testAssignedInSynchronized() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/assignedInSynchronized.kt"); + } + @TestMetadata("CallCompanionProtectedNonStatic.kt") public void testCallCompanionProtectedNonStatic() throws Exception { runTest("compiler/testData/diagnostics/testsWithStdLib/CallCompanionProtectedNonStatic.kt");