From f62bdb0e3dd681fe621a0151789fbc79cf8464bc Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 22 Nov 2022 08:30:39 +0100 Subject: [PATCH] K1 opt-in: fix message/behavior for future error with WasExperimental --- ...nosisCompilerTestFE10TestdataTestGenerated.java | 6 ++++++ .../FirOldFrontendDiagnosticsTestGenerated.java | 6 ++++++ ...ntendDiagnosticsWithLightTreeTestGenerated.java | 6 ++++++ .../kotlin/resolve/checkers/OptInUsageChecker.kt | 4 ++-- .../testsWithStdLib/experimental/duration.fir.kt | 14 ++++++++++++++ .../testsWithStdLib/experimental/duration.kt | 14 ++++++++++++++ .../testsWithStdLib/experimental/duration.txt | 14 ++++++++++++++ .../test/runners/DiagnosticTestGenerated.java | 6 ++++++ 8 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 compiler/testData/diagnostics/testsWithStdLib/experimental/duration.fir.kt create mode 100644 compiler/testData/diagnostics/testsWithStdLib/experimental/duration.kt create mode 100644 compiler/testData/diagnostics/testsWithStdLib/experimental/duration.txt diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java index 884c70efef5..8c1f7263e0e 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java @@ -37886,6 +37886,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag runTest("compiler/testData/diagnostics/testsWithStdLib/experimental/deeplyNestedClass.kt"); } + @Test + @TestMetadata("duration.kt") + public void testDuration() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/experimental/duration.kt"); + } + @Test @TestMetadata("errors.kt") public void testErrors() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java index d74a933d70a..2e61a075584 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java @@ -37886,6 +37886,12 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti runTest("compiler/testData/diagnostics/testsWithStdLib/experimental/deeplyNestedClass.kt"); } + @Test + @TestMetadata("duration.kt") + public void testDuration() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/experimental/duration.kt"); + } + @Test @TestMetadata("errors.kt") public void testErrors() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java index be8eb949f02..672bc225ba9 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java @@ -37886,6 +37886,12 @@ public class FirOldFrontendDiagnosticsWithLightTreeTestGenerated extends Abstrac runTest("compiler/testData/diagnostics/testsWithStdLib/experimental/deeplyNestedClass.kt"); } + @Test + @TestMetadata("duration.kt") + public void testDuration() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/experimental/duration.kt"); + } + @Test @TestMetadata("errors.kt") public void testErrors() throws Exception { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/OptInUsageChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/OptInUsageChecker.kt index 04d3f1d18d5..78792ce5bb5 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/OptInUsageChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/OptInUsageChecker.kt @@ -143,7 +143,7 @@ class OptInUsageChecker(project: Project) : CallChecker { ), futureError = OptInFactoryBasedReporter( Errors.OPT_IN_USAGE_FUTURE_ERROR, - getDefaultDiagnosticMessage("This declaration is experimental due to signature types and its usage must be marked (will become an error in 1.6)") + getDefaultDiagnosticMessage("This declaration is experimental due to signature types and its usage must be marked (will become an error in future releases)") ), ) @@ -243,7 +243,7 @@ class OptInUsageChecker(project: Project) : CallChecker { if (annotations.any { it.fqName == WAS_EXPERIMENTAL_FQ_NAME }) { val accessibility = checkSinceKotlinVersionAccessibility(languageVersionSettings) if (accessibility is SinceKotlinAccessibility.NotAccessibleButWasExperimental) { - result.addAll(accessibility.markerClasses.mapNotNull { it.loadOptInForMarkerAnnotation() }) + result.addAll(accessibility.markerClasses.mapNotNull { it.loadOptInForMarkerAnnotation(useFutureError) }) } } diff --git a/compiler/testData/diagnostics/testsWithStdLib/experimental/duration.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/experimental/duration.fir.kt new file mode 100644 index 00000000000..88d113980e5 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/experimental/duration.fir.kt @@ -0,0 +1,14 @@ +// !API_VERSION: 1.5 + +import kotlin.time.Duration + +@OptIn(kotlin.time.ExperimentalTime::class) +data class Some(val duration: Duration = Duration.INFINITE) + +@OptIn(kotlin.time.ExperimentalTime::class) +fun foo(duration: Duration = Duration.INFINITE) {} + +fun test() { + Some() + foo() +} diff --git a/compiler/testData/diagnostics/testsWithStdLib/experimental/duration.kt b/compiler/testData/diagnostics/testsWithStdLib/experimental/duration.kt new file mode 100644 index 00000000000..999dc2e0ade --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/experimental/duration.kt @@ -0,0 +1,14 @@ +// !API_VERSION: 1.5 + +import kotlin.time.Duration + +@OptIn(kotlin.time.ExperimentalTime::class) +data class Some(val duration: Duration = Duration.INFINITE) + +@OptIn(kotlin.time.ExperimentalTime::class) +fun foo(duration: Duration = Duration.INFINITE) {} + +fun test() { + Some() + foo() +} diff --git a/compiler/testData/diagnostics/testsWithStdLib/experimental/duration.txt b/compiler/testData/diagnostics/testsWithStdLib/experimental/duration.txt new file mode 100644 index 00000000000..794748221fb --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/experimental/duration.txt @@ -0,0 +1,14 @@ +package + +@kotlin.OptIn(markerClass = {kotlin.time.ExperimentalTime::class}) public fun foo(/*0*/ duration: kotlin.time.Duration = ...): kotlin.Unit +public fun test(): kotlin.Unit + +@kotlin.OptIn(markerClass = {kotlin.time.ExperimentalTime::class}) public final data class Some { + public constructor Some(/*0*/ duration: kotlin.time.Duration = ...) + public final val duration: kotlin.time.Duration + public final operator /*synthesized*/ fun component1(): kotlin.time.Duration + public final /*synthesized*/ fun copy(/*0*/ duration: kotlin.time.Duration = ...): Some + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String +} diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index 336bcdb5742..b7048b9990c 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -37976,6 +37976,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/testsWithStdLib/experimental/deeplyNestedClass.kt"); } + @Test + @TestMetadata("duration.kt") + public void testDuration() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/experimental/duration.kt"); + } + @Test @TestMetadata("errors.kt") public void testErrors() throws Exception {