From 019cb1485e1c485b16e4563fb567d6f53fa8971c Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Tue, 15 Dec 2020 13:25:23 +0300 Subject: [PATCH] [TEST] Extract language feature regex pattern to :test-infrastructure-utils --- .../tests/org/jetbrains/kotlin/test/util/Patterns.kt | 10 ++++++++++ .../test/builders/LanguageVersionSettingsBuilder.kt | 6 ++---- .../checkers/CompilerTestLanguageVersionSettings.kt | 6 ++---- 3 files changed, 14 insertions(+), 8 deletions(-) create mode 100644 compiler/test-infrastructure-utils/tests/org/jetbrains/kotlin/test/util/Patterns.kt diff --git a/compiler/test-infrastructure-utils/tests/org/jetbrains/kotlin/test/util/Patterns.kt b/compiler/test-infrastructure-utils/tests/org/jetbrains/kotlin/test/util/Patterns.kt new file mode 100644 index 00000000000..0c28a4f45c4 --- /dev/null +++ b/compiler/test-infrastructure-utils/tests/org/jetbrains/kotlin/test/util/Patterns.kt @@ -0,0 +1,10 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.test.util + +import java.util.regex.Pattern + +val LANGUAGE_FEATURE_PATTERN: Pattern = Pattern.compile("""(\+|-|warn:)(\w+)\s*""") diff --git a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/builders/LanguageVersionSettingsBuilder.kt b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/builders/LanguageVersionSettingsBuilder.kt index bb7f2d5fcd2..873a284b96a 100644 --- a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/builders/LanguageVersionSettingsBuilder.kt +++ b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/builders/LanguageVersionSettingsBuilder.kt @@ -10,14 +10,12 @@ import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives import org.jetbrains.kotlin.test.directives.model.RegisteredDirectives import org.jetbrains.kotlin.test.directives.model.singleOrZeroValue import org.jetbrains.kotlin.test.services.DefaultsDsl +import org.jetbrains.kotlin.test.util.LANGUAGE_FEATURE_PATTERN import org.jetbrains.kotlin.utils.addToStdlib.runIf -import java.util.regex.Pattern @DefaultsDsl class LanguageVersionSettingsBuilder { companion object { - private val languageFeaturePattern = Pattern.compile("""(\+|-|warn:)(\w+)\s*""") - fun fromExistingSettings(builder: LanguageVersionSettingsBuilder): LanguageVersionSettingsBuilder { return LanguageVersionSettingsBuilder().apply { languageVersion = builder.languageVersion @@ -79,7 +77,7 @@ class LanguageVersionSettingsBuilder { } private fun parseLanguageFeature(featureString: String) { - val matcher = languageFeaturePattern.matcher(featureString) + val matcher = LANGUAGE_FEATURE_PATTERN.matcher(featureString) if (!matcher.find()) { error( """Wrong syntax in the '// !${LanguageSettingsDirectives.LANGUAGE.name}: ...' directive: diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt index b3611f27d18..a571a54daaf 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt @@ -9,9 +9,9 @@ import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.test.Directives import org.jetbrains.kotlin.test.KotlinTestUtils +import org.jetbrains.kotlin.test.util.LANGUAGE_FEATURE_PATTERN import org.junit.Assert import java.io.File -import java.util.regex.Pattern const val LANGUAGE_DIRECTIVE = "LANGUAGE" const val API_VERSION_DIRECTIVE = "API_VERSION" @@ -117,10 +117,8 @@ fun setupLanguageVersionSettingsForCompilerTests(originalFileText: String, envir private fun analysisFlag(flag: AnalysisFlag, value: @kotlin.internal.NoInfer T?): Pair, T>? = value?.let(flag::to) -private val languagePattern = Pattern.compile("(\\+|\\-|warn:)(\\w+)\\s*") - private fun collectLanguageFeatureMap(directives: String): Map { - val matcher = languagePattern.matcher(directives) + val matcher = LANGUAGE_FEATURE_PATTERN.matcher(directives) if (!matcher.find()) { Assert.fail( "Wrong syntax in the '// !$LANGUAGE_DIRECTIVE: ...' directive:\n" +