From d9c0b9ad5a353a9b31844f1a08e61a38f1fe0fdb Mon Sep 17 00:00:00 2001 From: Ilya Muradyan Date: Sun, 22 Aug 2021 03:28:36 +0300 Subject: [PATCH] [minor] Add the test confirming the wrong behavior of KT-48355 --- .../ReplCompletionAndErrorsAnalysisTest.kt | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/plugins/scripting/scripting-ide-services-test/test/org/jetbrains/kotlin/scripting/ide_services/ReplCompletionAndErrorsAnalysisTest.kt b/plugins/scripting/scripting-ide-services-test/test/org/jetbrains/kotlin/scripting/ide_services/ReplCompletionAndErrorsAnalysisTest.kt index 630752a1931..3733cf9b89d 100644 --- a/plugins/scripting/scripting-ide-services-test/test/org/jetbrains/kotlin/scripting/ide_services/ReplCompletionAndErrorsAnalysisTest.kt +++ b/plugins/scripting/scripting-ide-services-test/test/org/jetbrains/kotlin/scripting/ide_services/ReplCompletionAndErrorsAnalysisTest.kt @@ -509,6 +509,41 @@ class ReplCompletionAndErrorsAnalysisTest : TestCase() { } } + @Test + fun testRequiresOptIn() = test { + // This test confirms the wrong behavior described in KT-48355 + + // This compilation is here to initialize the compiler without RequiresOptIn option. + // If you remove it, warning disappears. + run { + code = "1" + doCompile + } + + run { + code = """ + import kotlin.time.* + @OptIn(ExperimentalTime::class) + val mark = TimeSource.Monotonic.markNow() + """.trimIndent() + + compilationConfiguration = ScriptCompilationConfiguration { + compilerOptions("-Xopt-in=kotlin.RequiresOptIn") + } + + doErrorCheck + + expect { + // This warning is a wrong behavior, it should pass away after fixing KT-48355 + addError( + 2, 2, 2, 7, + "This class can only be used with the compiler argument '-Xopt-in=kotlin.RequiresOptIn'", + "WARNING" + ) + } + } + } + private val setupDefaultImportsCompletionRun: TestRunConfigurator = { compilationConfiguration = ScriptCompilationConfiguration { defaultImports(listOf("kotlin.math.atan"))