Code cleanups (#1484)
* Code cleanups
* Remove @OptIn(FeatureInAlphaState::class) from generating editor config functionality.
* Remove irrelevant code
* Remove @FeatureInAlphaState from "List<Rule>.lint(...)" function
* Remove functions previously used to lint and format spec files (unit tests) which have been replaced with normal unit tests.
* Remove @FeatureInAlphaState from tests which no longer calls methods which are marked with @FeatureInAlphaState
Co-authored-by: paul-dingemans <paul-dingemans@users.noreply.github.com>
diff --git a/buildSrc/src/main/kotlin/ktlint-publication.gradle.kts b/buildSrc/src/main/kotlin/ktlint-publication.gradle.kts
index fde1d29..4f898d7 100644
--- a/buildSrc/src/main/kotlin/ktlint-publication.gradle.kts
+++ b/buildSrc/src/main/kotlin/ktlint-publication.gradle.kts
@@ -81,7 +81,7 @@
/**
* Following signing parameters must be configured in `$HOME/.gradle/gradle.properties`:
- * ```
+ * ```properties
* signing.keyId=12345678
* signing.password=some_password
* signing.secretKeyRingFile=/Users/yourusername/.gnupg/secring.gpg
diff --git a/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/KtLint.kt b/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/KtLint.kt
index 7b5414e..718961d 100644
--- a/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/KtLint.kt
+++ b/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/KtLint.kt
@@ -4,7 +4,6 @@
import com.pinterest.ktlint.core.api.EditorConfigOverride
import com.pinterest.ktlint.core.api.EditorConfigOverride.Companion.emptyEditorConfigOverride
import com.pinterest.ktlint.core.api.EditorConfigProperties
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.api.UsesEditorConfigProperties
import com.pinterest.ktlint.core.internal.EditorConfigGenerator
import com.pinterest.ktlint.core.internal.EditorConfigLoader
@@ -41,9 +40,6 @@
private val kotlinPsiFileFactoryProvider = KotlinPsiFileFactoryProvider()
private val editorConfigLoader = EditorConfigLoader(FileSystems.getDefault())
- @OptIn(FeatureInAlphaState::class)
- private val editorConfigGenerator = EditorConfigGenerator(editorConfigLoader)
-
/**
* @param fileName path of file to lint/format
* @param text Contents of file to lint/format
@@ -162,7 +158,6 @@
.forEach { e -> params.cb(e, false) }
}
- @OptIn(FeatureInAlphaState::class)
private fun prepareCodeForLinting(
psiFileFactory: PsiFileFactory,
params: ExperimentalParams
@@ -217,8 +212,7 @@
}
@Deprecated(
- message = "Should not be a part of public api. Will be removed in future release.",
- level = DeprecationLevel.WARNING
+ message = "Should not be a part of public api. Will be removed in future release."
)
public fun normalizeText(text: String): String {
return text
@@ -376,7 +370,6 @@
* indent-size=4
* ```
*/
- @FeatureInAlphaState
public fun generateKotlinEditorConfigSection(
params: ExperimentalParams
): String {
@@ -384,7 +377,7 @@
requireNotNull(filePath) {
"Please pass path to existing Kotlin file"
}
- return editorConfigGenerator.generateEditorconfig(
+ return EditorConfigGenerator(editorConfigLoader).generateEditorconfig(
filePath,
params.rules,
params.userData.isAndroidCodeStyle,
diff --git a/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/api/OptInFeatures.kt b/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/api/OptInFeatures.kt
index 7399882..85dd361 100644
--- a/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/api/OptInFeatures.kt
+++ b/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/api/OptInFeatures.kt
@@ -13,8 +13,7 @@
public annotation class FeatureInAlphaState
@RequiresOptIn(
- message = "This Ktlint feature is experimental, and may change in the future releases.",
- level = RequiresOptIn.Level.WARNING
+ message = "This Ktlint feature is experimental, and may change in the future releases."
)
@Retention(AnnotationRetention.BINARY)
@Target(
diff --git a/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/api/UsesEditorConfigProperties.kt b/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/api/UsesEditorConfigProperties.kt
index 2f34213..c111558 100644
--- a/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/api/UsesEditorConfigProperties.kt
+++ b/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/api/UsesEditorConfigProperties.kt
@@ -64,7 +64,7 @@
newValue != property.getValueAs() ->
logger.trace {
"Value of '.editorconfig' property '${editorConfigProperty.type.name}' is overridden " +
- "from '${property?.sourceValue}' to '$newValue'"
+ "from '${property.sourceValue}' to '$newValue'"
}
}
return newValue
@@ -120,7 +120,7 @@
/**
* If set, it maps the actual value set for the property, to another valid value for that property. See example
* below where
- * ```
+ * ```kotlin
* propertyMapper = { property, isAndroidCodeStyle ->
* when {
* property == null ->
diff --git a/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/EditorConfigGenerator.kt b/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/EditorConfigGenerator.kt
index 72957df..a3f2f23 100644
--- a/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/EditorConfigGenerator.kt
+++ b/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/EditorConfigGenerator.kt
@@ -1,7 +1,6 @@
package com.pinterest.ktlint.core.internal
import com.pinterest.ktlint.core.Rule
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.api.UsesEditorConfigProperties
import com.pinterest.ktlint.core.initKtLintKLogger
import java.nio.file.Path
@@ -15,7 +14,6 @@
*
* Rule should implement [UsesEditorConfigProperties] interface to support this.
*/
-@FeatureInAlphaState
internal class EditorConfigGenerator(
private val editorConfigLoader: EditorConfigLoader
) {
diff --git a/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/EditorConfigLoader.kt b/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/EditorConfigLoader.kt
index 8b125c2..0fa1c00 100644
--- a/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/EditorConfigLoader.kt
+++ b/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/EditorConfigLoader.kt
@@ -4,7 +4,6 @@
import com.pinterest.ktlint.core.api.EditorConfigOverride
import com.pinterest.ktlint.core.api.EditorConfigOverride.Companion.emptyEditorConfigOverride
import com.pinterest.ktlint.core.api.EditorConfigProperties
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.api.UsesEditorConfigProperties
import com.pinterest.ktlint.core.initKtLintKLogger
import java.nio.charset.StandardCharsets
@@ -25,7 +24,6 @@
*
* Contains internal in-memory cache to speedup lookup.
*/
-@OptIn(FeatureInAlphaState::class)
public class EditorConfigLoader(
private val fs: FileSystem
) {
diff --git a/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/IdNamingPolicy.kt b/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/IdNamingPolicy.kt
index 27c6a5f..5fd72ce 100644
--- a/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/IdNamingPolicy.kt
+++ b/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/IdNamingPolicy.kt
@@ -4,7 +4,7 @@
* Provides policy to have consistent and restricted `id` field naming style.
*/
internal object IdNamingPolicy {
- private const val SIMPLE_ID_REGEX = "[a-z]+([-][a-z]+)*"
+ private const val SIMPLE_ID_REGEX = "[a-z]+(-[a-z]+)*"
private val ruleIdRegex = "($SIMPLE_ID_REGEX:)?($SIMPLE_ID_REGEX)".toRegex()
private val ruleSetIdRegex = "($SIMPLE_ID_REGEX)".toRegex()
diff --git a/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/RuleSorter.kt b/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/RuleSorter.kt
index 6954cdb..a61c9c5 100644
--- a/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/RuleSorter.kt
+++ b/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/RuleSorter.kt
@@ -158,7 +158,7 @@
val ruleReferencesToUnblock = blockedRuleReferences.findRulesBlockedBy(ruleReference.toQualifiedRuleId())
if (ruleReferencesToUnblock.isNotEmpty()) {
newRuleReferences.addAll(ruleReferencesToUnblock)
- blockedRuleReferences.removeAll(ruleReferencesToUnblock)
+ blockedRuleReferences.removeAll(ruleReferencesToUnblock.toSet())
}
}
check(blockedRuleReferences.isEmpty()) {
diff --git a/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/SuppressionLocatorBuilder.kt b/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/SuppressionLocatorBuilder.kt
index 27acb52..4acfa51 100644
--- a/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/SuppressionLocatorBuilder.kt
+++ b/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/SuppressionLocatorBuilder.kt
@@ -195,7 +195,7 @@
}
else -> {
// Disable specific rule if it the annotion value is mapped to a specific rule
- annotationValueToRuleMapping.get(it)
+ annotationValueToRuleMapping[it]
}
}
}
diff --git a/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/VisitorProvider.kt b/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/VisitorProvider.kt
index 7f0ca3e..0113c07 100644
--- a/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/VisitorProvider.kt
+++ b/ktlint-core/src/main/kotlin/com/pinterest/ktlint/core/internal/VisitorProvider.kt
@@ -71,7 +71,7 @@
)
}
}
- val ruleReferenceWithoutEntriesToBeSkipped = enabledRuleReferences - ruleReferencesToBeSkipped
+ val ruleReferenceWithoutEntriesToBeSkipped = enabledRuleReferences - ruleReferencesToBeSkipped.toSet()
if (debug && ruleReferenceWithoutEntriesToBeSkipped.isEmpty()) {
println(
"[DEBUG] Skipping file as no enabled rules are found to be executed"
diff --git a/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/KtLintTest.kt b/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/KtLintTest.kt
index ae3680f..a4a9690 100644
--- a/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/KtLintTest.kt
+++ b/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/KtLintTest.kt
@@ -1,7 +1,6 @@
package com.pinterest.ktlint.core
import com.pinterest.ktlint.core.DummyRuleWithCustomEditorConfigProperty.Companion.SOME_CUSTOM_RULE_PROPERTY
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.api.UsesEditorConfigProperties
import com.pinterest.ktlint.core.ast.isRoot
import org.assertj.core.api.Assertions.assertThat
@@ -11,7 +10,6 @@
import org.junit.jupiter.api.Nested
import org.junit.jupiter.api.Test
-@OptIn(FeatureInAlphaState::class)
class KtLintTest {
/**
* API Consumers directly use the ktlint-core module. Tests in this module should guarantee that the API is kept
@@ -362,7 +360,6 @@
}
}
-@OptIn(FeatureInAlphaState::class)
private class DummyRuleWithCustomEditorConfigProperty :
Rule("dummy-rule-with-custom-editor-config-property"),
UsesEditorConfigProperties {
diff --git a/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/UsesEditorConfigPropertiesTest.kt b/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/UsesEditorConfigPropertiesTest.kt
index 95a35aa..76bb44a 100644
--- a/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/UsesEditorConfigPropertiesTest.kt
+++ b/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/UsesEditorConfigPropertiesTest.kt
@@ -1,7 +1,6 @@
package com.pinterest.ktlint.core
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.api.UsesEditorConfigProperties
import org.assertj.core.api.Assertions.assertThat
import org.ec4j.core.model.Property
@@ -9,7 +8,6 @@
import org.jetbrains.kotlin.com.intellij.psi.impl.source.DummyHolderElement
import org.junit.jupiter.api.Test
-@OptIn(FeatureInAlphaState::class)
class UsesEditorConfigPropertiesTest {
class PropertyValueTester : UsesEditorConfigProperties {
override val editorConfigProperties: List<UsesEditorConfigProperties.EditorConfigProperty<*>>
diff --git a/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/internal/EditorConfigGeneratorTest.kt b/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/internal/EditorConfigGeneratorTest.kt
index b6d49f0..3375f43 100644
--- a/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/internal/EditorConfigGeneratorTest.kt
+++ b/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/internal/EditorConfigGeneratorTest.kt
@@ -3,7 +3,6 @@
import com.google.common.jimfs.Configuration
import com.google.common.jimfs.Jimfs
import com.pinterest.ktlint.core.Rule
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.api.UsesEditorConfigProperties
import java.nio.file.FileSystem
import java.nio.file.Files
@@ -13,7 +12,6 @@
import org.jetbrains.kotlin.com.intellij.lang.ASTNode
import org.junit.jupiter.api.Test
-@OptIn(FeatureInAlphaState::class)
internal class EditorConfigGeneratorTest {
private val tempFileSystem = Jimfs.newFileSystem(Configuration.forCurrentPlatform())
private val editorConfigLoader = EditorConfigLoader(tempFileSystem)
diff --git a/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/internal/EditorConfigLoaderTest.kt b/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/internal/EditorConfigLoaderTest.kt
index 765ce14..a87c127 100644
--- a/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/internal/EditorConfigLoaderTest.kt
+++ b/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/internal/EditorConfigLoaderTest.kt
@@ -5,7 +5,6 @@
import com.pinterest.ktlint.core.Rule
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.insertNewLineProperty
import com.pinterest.ktlint.core.api.EditorConfigOverride
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.api.UsesEditorConfigProperties
import com.pinterest.ktlint.core.internal.EditorConfigLoader.Companion.convertToRawValues
import com.pinterest.ktlint.ruleset.standard.FinalNewlineRule
@@ -19,7 +18,6 @@
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.Test
-@OptIn(FeatureInAlphaState::class)
internal class EditorConfigLoaderTest {
private val tempFileSystem = Jimfs.newFileSystem(Configuration.forCurrentPlatform())
private val editorConfigLoader = EditorConfigLoader(tempFileSystem)
diff --git a/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/internal/SuppressionLocatorBuilderTest.kt b/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/internal/SuppressionLocatorBuilderTest.kt
index 915e14c..b542713 100644
--- a/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/internal/SuppressionLocatorBuilderTest.kt
+++ b/ktlint-core/src/test/kotlin/com/pinterest/ktlint/core/internal/SuppressionLocatorBuilderTest.kt
@@ -4,14 +4,11 @@
import com.pinterest.ktlint.core.LintError
import com.pinterest.ktlint.core.Rule
import com.pinterest.ktlint.core.RuleSet
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.ast.ElementType
-import java.util.ArrayList
import org.assertj.core.api.Assertions.assertThat
import org.jetbrains.kotlin.com.intellij.lang.ASTNode
import org.junit.jupiter.api.Test
-@OptIn(FeatureInAlphaState::class)
class SuppressionLocatorBuilderTest {
@Test
fun `Given that NoFooIdentifierRule finds a violation (eg verifying that the test rules actually works)`() {
diff --git a/ktlint-ruleset-experimental/src/main/kotlin/com/pinterest/ktlint/ruleset/experimental/CommentWrappingRule.kt b/ktlint-ruleset-experimental/src/main/kotlin/com/pinterest/ktlint/ruleset/experimental/CommentWrappingRule.kt
index dfa80ef..ae527cf 100644
--- a/ktlint-ruleset-experimental/src/main/kotlin/com/pinterest/ktlint/ruleset/experimental/CommentWrappingRule.kt
+++ b/ktlint-ruleset-experimental/src/main/kotlin/com/pinterest/ktlint/ruleset/experimental/CommentWrappingRule.kt
@@ -2,7 +2,6 @@
import com.pinterest.ktlint.core.Rule
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.api.UsesEditorConfigProperties
import com.pinterest.ktlint.core.ast.ElementType.BLOCK_COMMENT
import com.pinterest.ktlint.core.ast.ElementType.EOL_COMMENT
@@ -20,7 +19,6 @@
* Checks external wrapping of block comments. Wrapping inside the comment is not altered. A block comment following
* another element on the same line is replaced with an EOL comment, if possible.
*/
-@OptIn(FeatureInAlphaState::class)
public class CommentWrappingRule :
Rule("$experimentalRulesetId:comment-wrapping"),
UsesEditorConfigProperties {
diff --git a/ktlint-ruleset-experimental/src/main/kotlin/com/pinterest/ktlint/ruleset/experimental/DiscouragedCommentLocationRule.kt b/ktlint-ruleset-experimental/src/main/kotlin/com/pinterest/ktlint/ruleset/experimental/DiscouragedCommentLocationRule.kt
index 3e17a4e..9f8a405 100644
--- a/ktlint-ruleset-experimental/src/main/kotlin/com/pinterest/ktlint/ruleset/experimental/DiscouragedCommentLocationRule.kt
+++ b/ktlint-ruleset-experimental/src/main/kotlin/com/pinterest/ktlint/ruleset/experimental/DiscouragedCommentLocationRule.kt
@@ -15,7 +15,7 @@
* handled by default IntelliJ IDEA code formatter. We should put no effort in making and keeping ktlint in sync with
* such bad code formatting.
*
- * ```
+ * ```kotlin
* fun <T>
* // some comment
* foo(t: T) = "some-result"
diff --git a/ktlint-ruleset-experimental/src/main/kotlin/com/pinterest/ktlint/ruleset/experimental/FunctionSignatureRule.kt b/ktlint-ruleset-experimental/src/main/kotlin/com/pinterest/ktlint/ruleset/experimental/FunctionSignatureRule.kt
index 4a52312..599ab14 100644
--- a/ktlint-ruleset-experimental/src/main/kotlin/com/pinterest/ktlint/ruleset/experimental/FunctionSignatureRule.kt
+++ b/ktlint-ruleset-experimental/src/main/kotlin/com/pinterest/ktlint/ruleset/experimental/FunctionSignatureRule.kt
@@ -5,7 +5,6 @@
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.indentSizeProperty
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.indentStyleProperty
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.maxLineLengthProperty
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.api.UsesEditorConfigProperties
import com.pinterest.ktlint.core.ast.ElementType.ANNOTATION_ENTRY
import com.pinterest.ktlint.core.ast.ElementType.BLOCK
@@ -38,7 +37,6 @@
import org.jetbrains.kotlin.com.intellij.psi.impl.source.tree.LeafPsiElement
import org.jetbrains.kotlin.utils.addToStdlib.ifTrue
-@OptIn(FeatureInAlphaState::class)
public class FunctionSignatureRule :
Rule(
id = "function-signature",
@@ -201,13 +199,11 @@
.children()
.firstOrNull { it.elementType == VALUE_PARAMETER }
- if (firstParameterInList == null) {
+ whiteSpaceCorrection += if (firstParameterInList == null) {
// handle empty parameter list
- whiteSpaceCorrection +=
- fixWhiteSpacesInEmptyValueParameterList(node, emit, autoCorrect, dryRun)
+ fixWhiteSpacesInEmptyValueParameterList(node, emit, autoCorrect, dryRun)
} else {
- whiteSpaceCorrection +=
- fixWhiteSpacesBeforeFirstParameterInValueParameterList(node, emit, autoCorrect, multiline, dryRun) +
+ fixWhiteSpacesBeforeFirstParameterInValueParameterList(node, emit, autoCorrect, multiline, dryRun) +
fixWhiteSpacesBetweenParametersInValueParameterList(node, emit, autoCorrect, multiline, dryRun) +
fixWhiteSpaceBeforeClosingParenthesis(node, emit, autoCorrect, multiline, dryRun)
}
diff --git a/ktlint-ruleset-experimental/src/main/kotlin/com/pinterest/ktlint/ruleset/experimental/KdocWrappingRule.kt b/ktlint-ruleset-experimental/src/main/kotlin/com/pinterest/ktlint/ruleset/experimental/KdocWrappingRule.kt
index 6d42959..f373ff2 100644
--- a/ktlint-ruleset-experimental/src/main/kotlin/com/pinterest/ktlint/ruleset/experimental/KdocWrappingRule.kt
+++ b/ktlint-ruleset-experimental/src/main/kotlin/com/pinterest/ktlint/ruleset/experimental/KdocWrappingRule.kt
@@ -2,7 +2,6 @@
import com.pinterest.ktlint.core.Rule
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.api.UsesEditorConfigProperties
import com.pinterest.ktlint.core.ast.ElementType.KDOC
import com.pinterest.ktlint.core.ast.ElementType.KDOC_END
@@ -19,7 +18,6 @@
/**
* Checks external wrapping of KDoc comment. Wrapping inside the KDoc comment is not altered.
*/
-@OptIn(FeatureInAlphaState::class)
public class KdocWrappingRule :
Rule("$experimentalRulesetId:kdoc-wrapping"),
UsesEditorConfigProperties {
diff --git a/ktlint-ruleset-experimental/src/test/kotlin/com/pinterest/ktlint/ruleset/experimental/FunctionSignatureRuleTest.kt b/ktlint-ruleset-experimental/src/test/kotlin/com/pinterest/ktlint/ruleset/experimental/FunctionSignatureRuleTest.kt
index b746d51..41da58b 100644
--- a/ktlint-ruleset-experimental/src/test/kotlin/com/pinterest/ktlint/ruleset/experimental/FunctionSignatureRuleTest.kt
+++ b/ktlint-ruleset-experimental/src/test/kotlin/com/pinterest/ktlint/ruleset/experimental/FunctionSignatureRuleTest.kt
@@ -1,6 +1,5 @@
package com.pinterest.ktlint.ruleset.experimental
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.ruleset.experimental.FunctionSignatureRule.Companion.functionSignatureWrappingMinimumParametersProperty
import com.pinterest.ktlint.ruleset.standard.NoMultipleSpacesRule
import com.pinterest.ktlint.ruleset.standard.SpacingAroundAngleBracketsRule
@@ -15,7 +14,6 @@
import org.junit.jupiter.api.Nested
import org.junit.jupiter.api.Test
-@OptIn(FeatureInAlphaState::class)
class FunctionSignatureRuleTest {
private val functionSignatureWrappingRuleAssertThat = FunctionSignatureRule().assertThat()
@@ -130,7 +128,7 @@
val code =
"""
// No max line length marker!
- fun f(string: String): String = string.toUpperCase()
+ fun f(string: String): String = string.uppercase(Locale.getDefault())
""".trimIndent()
functionSignatureWrappingRuleAssertThat(code).hasNoLintViolations()
}
diff --git a/ktlint-ruleset-experimental/src/test/kotlin/com/pinterest/ktlint/ruleset/experimental/SpacingAroundUnaryOperatorRuleTest.kt b/ktlint-ruleset-experimental/src/test/kotlin/com/pinterest/ktlint/ruleset/experimental/SpacingAroundUnaryOperatorRuleTest.kt
index fa2fbfd..47d9f4e 100644
--- a/ktlint-ruleset-experimental/src/test/kotlin/com/pinterest/ktlint/ruleset/experimental/SpacingAroundUnaryOperatorRuleTest.kt
+++ b/ktlint-ruleset-experimental/src/test/kotlin/com/pinterest/ktlint/ruleset/experimental/SpacingAroundUnaryOperatorRuleTest.kt
@@ -3,7 +3,6 @@
import com.pinterest.ktlint.ruleset.standard.SpacingAroundUnaryOperatorRule
import com.pinterest.ktlint.test.KtLintAssertThat.Companion.assertThat
import com.pinterest.ktlint.test.LintViolation
-import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test
class SpacingAroundUnaryOperatorRuleTest {
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/ArgumentListWrappingRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/ArgumentListWrappingRule.kt
index 7becf7b..242c6f2 100644
--- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/ArgumentListWrappingRule.kt
+++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/ArgumentListWrappingRule.kt
@@ -5,7 +5,6 @@
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.indentSizeProperty
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.indentStyleProperty
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.maxLineLengthProperty
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.api.UsesEditorConfigProperties
import com.pinterest.ktlint.core.ast.ElementType
import com.pinterest.ktlint.core.ast.ElementType.ELSE
@@ -39,7 +38,6 @@
* - maxLineLength exceeded (and separating arguments with \n would actually help)
* in addition, "(" and ")" must be on separates line if any of the arguments are (otherwise on the same)
*/
-@OptIn(FeatureInAlphaState::class)
class ArgumentListWrappingRule :
Rule("argument-list-wrapping"),
UsesEditorConfigProperties {
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/FilenameRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/FilenameRule.kt
index dc2c996..487a0ae 100644
--- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/FilenameRule.kt
+++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/FilenameRule.kt
@@ -92,6 +92,6 @@
}
private companion object {
- val pascalCaseRegEx = Regex("""^[A-Z][A-Za-z0-9]*$""")
+ val pascalCaseRegEx = Regex("""^[A-Z][A-Za-z\d]*$""")
}
}
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/FinalNewlineRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/FinalNewlineRule.kt
index 9628004..a845fe2 100644
--- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/FinalNewlineRule.kt
+++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/FinalNewlineRule.kt
@@ -2,14 +2,12 @@
import com.pinterest.ktlint.core.Rule
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.insertNewLineProperty
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.api.UsesEditorConfigProperties
import com.pinterest.ktlint.core.ast.isRoot
import org.jetbrains.kotlin.com.intellij.lang.ASTNode
import org.jetbrains.kotlin.com.intellij.psi.PsiWhiteSpace
import org.jetbrains.kotlin.com.intellij.psi.impl.source.tree.PsiWhiteSpaceImpl
-@OptIn(FeatureInAlphaState::class)
public class FinalNewlineRule :
Rule(
id = "final-newline",
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/ImportOrderingRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/ImportOrderingRule.kt
index 5427fe4..fb0bb8f 100644
--- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/ImportOrderingRule.kt
+++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/ImportOrderingRule.kt
@@ -1,7 +1,6 @@
package com.pinterest.ktlint.ruleset.standard
import com.pinterest.ktlint.core.Rule
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.api.UsesEditorConfigProperties
import com.pinterest.ktlint.core.ast.ElementType
import com.pinterest.ktlint.core.ast.isRoot
@@ -37,7 +36,6 @@
*
* In case the custom property is not provided, the rule defaults to alphabetical order in case of "android" flag supplied, or to idea otherwise.
*/
-@OptIn(FeatureInAlphaState::class)
public class ImportOrderingRule :
Rule("import-ordering"),
UsesEditorConfigProperties {
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/IndentationRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/IndentationRule.kt
index ed321f8..dd9c640 100644
--- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/IndentationRule.kt
+++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/IndentationRule.kt
@@ -6,7 +6,6 @@
import com.pinterest.ktlint.core.Rule
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.indentSizeProperty
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.indentStyleProperty
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.api.UsesEditorConfigProperties
import com.pinterest.ktlint.core.ast.ElementType.ARROW
import com.pinterest.ktlint.core.ast.ElementType.BINARY_EXPRESSION
@@ -101,7 +100,6 @@
* Current limitations:
* - "all or nothing" (currently, rule can only be disabled for an entire file)
*/
-@OptIn(FeatureInAlphaState::class)
public class IndentationRule :
Rule(
id = "indent",
@@ -986,9 +984,7 @@
.filterNot { it.startsWith("\"\"\"") }
.filterNot { it.endsWith("\"\"\"") }
.filterNot { it.isBlank() }
- val prefixLength = nonBlankLines
- .map { it.indentLength() }
- .minOrNull() ?: 0
+ val prefixLength = nonBlankLines.minOfOrNull { it.indentLength() } ?: 0
val distinctIndentCharacters = nonBlankLines
.joinToString(separator = "") {
it.splitIndentAt(prefixLength).first
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/MaxLineLengthRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/MaxLineLengthRule.kt
index 1f161b9..812d9ab 100644
--- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/MaxLineLengthRule.kt
+++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/MaxLineLengthRule.kt
@@ -2,7 +2,6 @@
import com.pinterest.ktlint.core.Rule
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.maxLineLengthProperty
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.api.UsesEditorConfigProperties
import com.pinterest.ktlint.core.ast.ElementType
import com.pinterest.ktlint.core.ast.isPartOf
@@ -19,7 +18,6 @@
import org.jetbrains.kotlin.psi.KtImportDirective
import org.jetbrains.kotlin.psi.KtPackageDirective
-@OptIn(FeatureInAlphaState::class)
class MaxLineLengthRule :
Rule(
id = "max-line-length",
@@ -154,7 +152,7 @@
return elements
.filterIsInstance(PsiElement::class.java)
.filter { it.text.matches(isValueBetweenBackticks) }
- .sumBy(PsiElement::getTextLength)
+ .sumOf(PsiElement::getTextLength)
}
private companion object {
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/NoTrailingSpacesRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/NoTrailingSpacesRule.kt
index fbe961a..20985fb 100644
--- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/NoTrailingSpacesRule.kt
+++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/NoTrailingSpacesRule.kt
@@ -78,6 +78,6 @@
takeLast(1) == " "
private companion object {
- val SPACE_OR_TAB_BEFORE_NEWLINE_REGEX = Regex("[ ]+\\n")
+ val SPACE_OR_TAB_BEFORE_NEWLINE_REGEX = Regex(" +\\n")
}
}
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/NoWildcardImportsRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/NoWildcardImportsRule.kt
index 5cf13c1..eb8f784 100644
--- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/NoWildcardImportsRule.kt
+++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/NoWildcardImportsRule.kt
@@ -1,7 +1,6 @@
package com.pinterest.ktlint.ruleset.standard
import com.pinterest.ktlint.core.Rule
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.api.UsesEditorConfigProperties
import com.pinterest.ktlint.core.ast.ElementType.IMPORT_DIRECTIVE
import com.pinterest.ktlint.core.ast.isRoot
@@ -10,7 +9,6 @@
import org.jetbrains.kotlin.com.intellij.lang.ASTNode
import org.jetbrains.kotlin.psi.KtImportDirective
-@OptIn(FeatureInAlphaState::class)
public class NoWildcardImportsRule :
Rule("no-wildcard-imports"),
UsesEditorConfigProperties {
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/ParameterListWrappingRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/ParameterListWrappingRule.kt
index 1c2d3e4..a825443 100644
--- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/ParameterListWrappingRule.kt
+++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/ParameterListWrappingRule.kt
@@ -5,7 +5,6 @@
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.indentSizeProperty
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.indentStyleProperty
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.maxLineLengthProperty
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.api.UsesEditorConfigProperties
import com.pinterest.ktlint.core.ast.ElementType.FUNCTION_LITERAL
import com.pinterest.ktlint.core.ast.ElementType.FUNCTION_TYPE
@@ -36,7 +35,6 @@
import org.jetbrains.kotlin.psi.KtTypeArgumentList
import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType
-@OptIn(FeatureInAlphaState::class)
class ParameterListWrappingRule :
Rule("parameter-list-wrapping"),
UsesEditorConfigProperties {
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/TrailingCommaRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/TrailingCommaRule.kt
index 2d747a7..33e0c89 100644
--- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/TrailingCommaRule.kt
+++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/TrailingCommaRule.kt
@@ -1,7 +1,6 @@
package com.pinterest.ktlint.ruleset.experimental.trailingcomma
import com.pinterest.ktlint.core.Rule
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.api.UsesEditorConfigProperties
import com.pinterest.ktlint.core.ast.ElementType
import com.pinterest.ktlint.core.ast.children
@@ -52,7 +51,6 @@
;
}
-@OptIn(FeatureInAlphaState::class)
public class TrailingCommaRule :
Rule(
id = "trailing-comma",
diff --git a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/ArgumentListWrappingRuleTest.kt b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/ArgumentListWrappingRuleTest.kt
index 95a91e8..9397ee0 100644
--- a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/ArgumentListWrappingRuleTest.kt
+++ b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/ArgumentListWrappingRuleTest.kt
@@ -1,14 +1,12 @@
package com.pinterest.ktlint.ruleset.standard
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.maxLineLengthProperty
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.test.KtLintAssertThat.Companion.assertThat
import com.pinterest.ktlint.test.LintViolation
import com.pinterest.ktlint.test.MULTILINE_STRING_QUOTE
import org.junit.jupiter.api.Nested
import org.junit.jupiter.api.Test
-@FeatureInAlphaState
class ArgumentListWrappingRuleTest {
private val argumentListWrappingRuleAssertThat = ArgumentListWrappingRule().assertThat()
diff --git a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/FinalNewlineRuleTest.kt b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/FinalNewlineRuleTest.kt
index 02c83bc..39790a8 100644
--- a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/FinalNewlineRuleTest.kt
+++ b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/FinalNewlineRuleTest.kt
@@ -1,13 +1,11 @@
package com.pinterest.ktlint.ruleset.standard
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.insertNewLineProperty
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.test.KtLintAssertThat.Companion.assertThat
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.Nested
import org.junit.jupiter.api.Test
-@OptIn(FeatureInAlphaState::class)
class FinalNewlineRuleTest {
private val finalNewlineRuleAssertThat = FinalNewlineRule().assertThat()
diff --git a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/IndentationRuleTest.kt b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/IndentationRuleTest.kt
index 96a7285..b3a976a 100644
--- a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/IndentationRuleTest.kt
+++ b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/IndentationRuleTest.kt
@@ -2,7 +2,6 @@
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.indentSizeProperty
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.indentStyleProperty
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.test.KtLintAssertThat.Companion.assertThat
import com.pinterest.ktlint.test.LintViolation
import com.pinterest.ktlint.test.MULTILINE_STRING_QUOTE
@@ -17,7 +16,6 @@
import org.junit.jupiter.params.provider.ValueSource
@Suppress("RemoveCurlyBracesFromTemplate")
-@FeatureInAlphaState
internal class IndentationRuleTest {
private val indentationRuleAssertThat = IndentationRule().assertThat()
@@ -458,7 +456,7 @@
val code: String =
"""
fun foo1(bar: String) =
- bar.toUpperCase()
+ bar.uppercase(Locale.getDefault())
.trim()
.length.also {
println("done")
@@ -470,7 +468,7 @@
val formattedCode =
"""
fun foo1(bar: String) =
- bar.toUpperCase()
+ bar.uppercase(Locale.getDefault())
.trim()
.length.also {
println("done")
@@ -491,7 +489,7 @@
val formattedCode =
"""
fun foo1(bar: String) =
- ${TAB}bar.toUpperCase()
+ ${TAB}bar.uppercase(Locale.getDefault())
${TAB}${TAB}.trim()
${TAB}${TAB}.length.also {
${TAB}${TAB}${TAB}println("done")
@@ -1781,16 +1779,6 @@
).isFormattedAs(formattedCode)
}
- val foo1 = 0 + 1 + when {
- else -> 2 + 3
- } + 4
- val foo2 = when {
- true -> 0 + 1 + when {
- else -> 2 + 3
- } + 4
- else -> -1
- }
-
@Test
fun `Given a when-statement in a list of additions`() {
val code =
diff --git a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/MaxLineLengthRuleTest.kt b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/MaxLineLengthRuleTest.kt
index 0fe0f69..de5a297 100644
--- a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/MaxLineLengthRuleTest.kt
+++ b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/MaxLineLengthRuleTest.kt
@@ -1,7 +1,6 @@
package com.pinterest.ktlint.ruleset.standard
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.maxLineLengthProperty
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.ruleset.standard.MaxLineLengthRule.Companion.ignoreBackTickedIdentifierProperty
import com.pinterest.ktlint.test.KtLintAssertThat.Companion.EOL_CHAR
import com.pinterest.ktlint.test.KtLintAssertThat.Companion.MAX_LINE_LENGTH_MARKER
@@ -13,7 +12,6 @@
import org.junit.jupiter.api.Nested
import org.junit.jupiter.api.Test
-@OptIn(FeatureInAlphaState::class)
class MaxLineLengthRuleTest {
private val maxLineLengthRuleAssertThat = MaxLineLengthRule().assertThat()
diff --git a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/NoBlankLinesInChainedMethodCallsRuleTest.kt b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/NoBlankLinesInChainedMethodCallsRuleTest.kt
index 4a03cfe..f5df475 100644
--- a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/NoBlankLinesInChainedMethodCallsRuleTest.kt
+++ b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/NoBlankLinesInChainedMethodCallsRuleTest.kt
@@ -13,14 +13,14 @@
fun foo(inputText: String) {
inputText
- .toLowerCase()
+ .lowercase(Locale.getDefault())
}
""".trimIndent()
val formattedCode =
"""
fun foo(inputText: String) {
inputText
- .toLowerCase()
+ .lowercase(Locale.getDefault())
}
""".trimIndent()
noBlankLinesInChainedMethodCallsRuleAssertThat(code)
diff --git a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/NoConsecutiveBlankLinesRuleTest.kt b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/NoConsecutiveBlankLinesRuleTest.kt
index d7f3a35..24e79dd 100644
--- a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/NoConsecutiveBlankLinesRuleTest.kt
+++ b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/NoConsecutiveBlankLinesRuleTest.kt
@@ -178,7 +178,7 @@
fun foo(inputText: String) {
inputText
- .toLowerCase()
+ .lowercase(Locale.getDefault())
}
""".trimIndent()
@@ -193,7 +193,7 @@
inputText
- .toLowerCase()
+ .lowercase(Locale.getDefault())
}
""".trimIndent()
@@ -204,7 +204,7 @@
fun foo(inputText: String) {
inputText
- .toLowerCase()
+ .lowercase(Locale.getDefault())
}
""".trimIndent()
)
diff --git a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/NoWildcardImportsRuleTest.kt b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/NoWildcardImportsRuleTest.kt
index cae7306..2797cd6 100644
--- a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/NoWildcardImportsRuleTest.kt
+++ b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/NoWildcardImportsRuleTest.kt
@@ -1,6 +1,5 @@
package com.pinterest.ktlint.ruleset.standard
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.ruleset.standard.NoWildcardImportsRule.Companion.packagesToUseImportOnDemandProperty
import com.pinterest.ktlint.test.KtLintAssertThat.Companion.assertThat
import com.pinterest.ktlint.test.LintViolation
@@ -8,7 +7,6 @@
import org.junit.jupiter.api.Nested
import org.junit.jupiter.api.Test
-@FeatureInAlphaState
class NoWildcardImportsRuleTest {
private val noWildcardImportsRuleAssertThat = NoWildcardImportsRule().assertThat()
diff --git a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/ParameterListWrappingRuleTest.kt b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/ParameterListWrappingRuleTest.kt
index 71b5c24..0897955 100644
--- a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/ParameterListWrappingRuleTest.kt
+++ b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/ParameterListWrappingRuleTest.kt
@@ -1,12 +1,10 @@
package com.pinterest.ktlint.ruleset.standard
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.maxLineLengthProperty
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.test.KtLintAssertThat.Companion.assertThat
import com.pinterest.ktlint.test.LintViolation
import org.junit.jupiter.api.Test
-@FeatureInAlphaState
class ParameterListWrappingRuleTest {
private val parameterListWrappingRuleAssertThat =
ParameterListWrappingRule()
diff --git a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/SpacingAroundOperatorsRuleTest.kt b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/SpacingAroundOperatorsRuleTest.kt
index c041395..8976be7 100644
--- a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/SpacingAroundOperatorsRuleTest.kt
+++ b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/SpacingAroundOperatorsRuleTest.kt
@@ -2,7 +2,6 @@
import com.pinterest.ktlint.test.KtLintAssertThat.Companion.assertThat
import com.pinterest.ktlint.test.LintViolation
-import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Nested
import org.junit.jupiter.api.Test
import org.junit.jupiter.params.ParameterizedTest
diff --git a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/SpacingAroundUnaryOperatorRuleTest.kt b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/SpacingAroundUnaryOperatorRuleTest.kt
index a72a0d7..a7be4e1 100644
--- a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/SpacingAroundUnaryOperatorRuleTest.kt
+++ b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/SpacingAroundUnaryOperatorRuleTest.kt
@@ -2,7 +2,6 @@
import com.pinterest.ktlint.test.KtLintAssertThat.Companion.assertThat
import com.pinterest.ktlint.test.LintViolation
-import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test
class SpacingAroundUnaryOperatorRuleTest {
diff --git a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/TrailingCommaRuleTest.kt b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/TrailingCommaRuleTest.kt
index 3e5736a..50ff175 100644
--- a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/TrailingCommaRuleTest.kt
+++ b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/TrailingCommaRuleTest.kt
@@ -1,6 +1,5 @@
package com.pinterest.ktlint.ruleset.standard
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.ruleset.experimental.trailingcomma.TrailingCommaRule
import com.pinterest.ktlint.ruleset.experimental.trailingcomma.TrailingCommaRule.Companion.allowTrailingCommaOnCallSiteProperty
import com.pinterest.ktlint.ruleset.experimental.trailingcomma.TrailingCommaRule.Companion.allowTrailingCommaProperty
@@ -8,7 +7,6 @@
import com.pinterest.ktlint.test.LintViolation
import org.junit.jupiter.api.Test
-@OptIn(FeatureInAlphaState::class)
class TrailingCommaRuleTest {
private val trailingCommaRuleAssertThat =
TrailingCommaRule()
diff --git a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/WrappingRuleTest.kt b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/WrappingRuleTest.kt
index d668cce..d9a900d 100644
--- a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/WrappingRuleTest.kt
+++ b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/WrappingRuleTest.kt
@@ -1,15 +1,11 @@
package com.pinterest.ktlint.ruleset.standard
import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties
-import com.pinterest.ktlint.core.api.DefaultEditorConfigProperties.indentStyleProperty
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.test.KtLintAssertThat.Companion.assertThat
import com.pinterest.ktlint.test.LintViolation
-import org.assertj.core.api.Assertions.assertThat
import org.ec4j.core.model.PropertyType.IndentStyleValue.tab
import org.junit.jupiter.api.Test
-@FeatureInAlphaState
internal class WrappingRuleTest {
private val wrappingRuleAssertThat = WrappingRule().assertThat()
diff --git a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/importordering/ImportOrderingEditorconfigTest.kt b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/importordering/ImportOrderingEditorconfigTest.kt
index 2d1316a..ea007f9 100644
--- a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/importordering/ImportOrderingEditorconfigTest.kt
+++ b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/importordering/ImportOrderingEditorconfigTest.kt
@@ -1,14 +1,11 @@
package com.pinterest.ktlint.ruleset.standard.importordering
import com.pinterest.ktlint.core.api.EditorConfigProperties
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.ruleset.standard.ImportOrderingRule
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test
-@OptIn(FeatureInAlphaState::class)
class ImportOrderingEditorconfigTest {
-
@Test
fun `import ordering gets written correctly to editorconfig`() {
val properties: EditorConfigProperties = emptyMap()
diff --git a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/importordering/ImportOrderingRuleAsciiTest.kt b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/importordering/ImportOrderingRuleAsciiTest.kt
index c68b232..51045a8 100644
--- a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/importordering/ImportOrderingRuleAsciiTest.kt
+++ b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/importordering/ImportOrderingRuleAsciiTest.kt
@@ -1,11 +1,9 @@
package com.pinterest.ktlint.ruleset.standard.importordering
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.ruleset.standard.ImportOrderingRule
import com.pinterest.ktlint.test.KtLintAssertThat.Companion.assertThat
import org.junit.jupiter.api.Test
-@OptIn(FeatureInAlphaState::class)
class ImportOrderingRuleAsciiTest {
private val importOrderingRuleAssertThat = ImportOrderingRule().assertThat()
diff --git a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/importordering/ImportOrderingRuleCustomTest.kt b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/importordering/ImportOrderingRuleCustomTest.kt
index 600111d..da46544 100644
--- a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/importordering/ImportOrderingRuleCustomTest.kt
+++ b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/importordering/ImportOrderingRuleCustomTest.kt
@@ -1,12 +1,10 @@
package com.pinterest.ktlint.ruleset.standard.importordering
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.ruleset.standard.ImportOrderingRule
import com.pinterest.ktlint.ruleset.standard.ImportOrderingRule.Companion.ideaImportsLayoutProperty
import com.pinterest.ktlint.test.KtLintAssertThat.Companion.assertThat
import org.junit.jupiter.api.Test
-@OptIn(FeatureInAlphaState::class)
class ImportOrderingRuleCustomTest {
private val importOrderingRuleAssertThat = ImportOrderingRule().assertThat()
diff --git a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/importordering/ImportOrderingRuleIdeaTest.kt b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/importordering/ImportOrderingRuleIdeaTest.kt
index c2a6e2f..1ff831a 100644
--- a/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/importordering/ImportOrderingRuleIdeaTest.kt
+++ b/ktlint-ruleset-standard/src/test/kotlin/com/pinterest/ktlint/ruleset/standard/importordering/ImportOrderingRuleIdeaTest.kt
@@ -1,12 +1,10 @@
package com.pinterest.ktlint.ruleset.standard.importordering
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.ruleset.standard.ImportOrderingRule
import com.pinterest.ktlint.test.KtLintAssertThat.Companion.assertThat
import com.pinterest.ktlint.test.LintViolation
import org.junit.jupiter.api.Test
-@OptIn(FeatureInAlphaState::class)
class ImportOrderingRuleIdeaTest {
private val importOrderingRuleAssertThat = ImportOrderingRule().assertThat()
diff --git a/ktlint-test/src/main/kotlin/com/pinterest/ktlint/test/RuleExtension.kt b/ktlint-test/src/main/kotlin/com/pinterest/ktlint/test/RuleExtension.kt
index 8c0d9f2..8900586 100644
--- a/ktlint-test/src/main/kotlin/com/pinterest/ktlint/test/RuleExtension.kt
+++ b/ktlint-test/src/main/kotlin/com/pinterest/ktlint/test/RuleExtension.kt
@@ -5,14 +5,10 @@
import com.pinterest.ktlint.core.Rule
import com.pinterest.ktlint.core.RuleSet
import com.pinterest.ktlint.core.api.EditorConfigOverride
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.initKtLintKLogger
import com.pinterest.ktlint.core.setDefaultLoggerModifier
import com.pinterest.ruleset.test.DumpASTRule
import mu.KotlinLogging
-import org.assertj.core.api.Assertions.assertThat
-import org.assertj.core.util.diff.DiffUtils.diff
-import org.assertj.core.util.diff.DiffUtils.generateUnifiedDiff
import org.jetbrains.kotlin.utils.addToStdlib.ifTrue
private val logger =
@@ -66,7 +62,6 @@
.plus(listOfNotNull(dumpAstRuleSet))
}
-@FeatureInAlphaState
public fun List<Rule>.lint(
lintedFilePath: String? = null,
text: String,
@@ -109,97 +104,3 @@
)
return KtLint.format(experimentalParams)
}
-
-@FeatureInAlphaState
-public fun Rule.diffFileLint(
- path: String,
- // TODO: Set default value once method is no longer annotated with FeatureInAlphaState and function
- // diffFileLint(String, Map<String, String>) is removed.
- editorConfigOverride: EditorConfigOverride
-): String {
- val resourceText = getResourceAsText(path).replace("\r\n", "\n")
- val dividerIndex = resourceText.lastIndexOf("\n// expect\n")
- if (dividerIndex == -1) {
- throw RuntimeException("$path must contain '// expect' line")
- }
- val input = resourceText.substring(0, dividerIndex)
- val expected = resourceText.substring(dividerIndex + 1).split('\n').mapNotNull { line ->
- if (line.isBlank() || line == "// expect") {
- null
- } else {
- line.trimMargin("// ").split(':', limit = 3).let { expectation ->
- if (expectation.size != 3) {
- throw RuntimeException("$path expectation must be a triple <line>:<column>:<message>")
- // " (<message> is not allowed to contain \":\")")
- }
- val message = expectation[2]
- val detail = message.removeSuffix(" (cannot be auto-corrected)")
- LintError(expectation[0].toInt(), expectation[1].toInt(), id, detail, message == detail)
- }
- }
- }
- val actual = listOf(this).lint(
- text = input,
- editorConfigOverride = editorConfigOverride,
- script = true
- )
- val str = { err: LintError ->
- val ruleId = if (err.ruleId != id) " (${err.ruleId})" else ""
- val correctionStatus = if (!err.canBeAutoCorrected) " (cannot be auto-corrected)" else ""
- "${err.line}:${err.col}:${err.detail}$ruleId$correctionStatus"
- }
- val diff =
- generateUnifiedDiff(
- "expected",
- "actual",
- expected.map(str),
- diff(expected.map(str), actual.map(str)),
- expected.size + actual.size
- ).joinToString("\n")
- return diff.ifEmpty { "" }
-}
-
-@FeatureInAlphaState
-public fun Rule.diffFileFormat(
- srcPath: String,
- expectedPath: String,
- editorConfigOverride: EditorConfigOverride = EditorConfigOverride.emptyEditorConfigOverride
-): String = listOf(this).diffFileFormat(srcPath, expectedPath, editorConfigOverride)
-
-@FeatureInAlphaState
-public fun List<Rule>.diffFileFormat(
- srcPath: String,
- expectedPath: String,
- editorConfigOverride: EditorConfigOverride = EditorConfigOverride.emptyEditorConfigOverride
-): String {
- val actual = format(
- lintedFilePath = null,
- text = getResourceAsText(srcPath),
- editorConfigOverride = editorConfigOverride,
- script = true
- ).split('\n')
- val expected = getResourceAsText(expectedPath).split('\n')
- val diff =
- generateUnifiedDiff(expectedPath, "output", expected, diff(expected, actual), expected.size + actual.size)
- .joinToString("\n")
- return diff.ifEmpty { "" }
-}
-
-@FeatureInAlphaState
-public fun Rule.assertThatFileFormat(
- srcPath: String,
- expectedPath: String,
- // TODO: Set default value once method is no longer annotated with FeatureInAlphaState and function
- // diffFileLint(String, Map<String, String>) is removed.
- editorConfigOverride: EditorConfigOverride,
- userData: Map<String, String> = emptyMap()
-) {
- val actual = listOf(this).format(null, getResourceAsText(srcPath), editorConfigOverride, userData, script = true).split('\n')
- val expected = getResourceAsText(expectedPath).split('\n')
- assertThat(actual).isEqualTo(expected)
-}
-
-private fun getResourceAsText(path: String) =
- (ClassLoader.getSystemClassLoader().getResourceAsStream(path) ?: throw RuntimeException("$path not found"))
- .bufferedReader()
- .readText()
diff --git a/ktlint-test/src/main/kotlin/com/pinterest/ktlint/test/RuleSetProviderTest.kt b/ktlint-test/src/main/kotlin/com/pinterest/ktlint/test/RuleSetProviderTest.kt
index 10edb16..d8b1503 100644
--- a/ktlint-test/src/main/kotlin/com/pinterest/ktlint/test/RuleSetProviderTest.kt
+++ b/ktlint-test/src/main/kotlin/com/pinterest/ktlint/test/RuleSetProviderTest.kt
@@ -19,8 +19,8 @@
?: arrayListOf()
val provider = rulesetClass
- val providerRules = provider.newInstance().get().rules.map { it::class.java.simpleName }
- val diff = packageRules - providerRules
+ val providerRules = provider.getDeclaredConstructor().newInstance().get().rules.map { it::class.java.simpleName }
+ val diff = packageRules - providerRules.toSet()
assertThat(diff)
.withFailMessage("%s is missing to provide the following rules: \n%s", provider.simpleName, diff.joinToString(separator = "\n"))
.hasSize(0)
diff --git a/ktlint/build.gradle.kts b/ktlint/build.gradle.kts
index cf1259e..99172b2 100644
--- a/ktlint/build.gradle.kts
+++ b/ktlint/build.gradle.kts
@@ -5,7 +5,7 @@
`ktlint-kotlin-common`
alias(libs.plugins.shadow)
alias(libs.plugins.checksum)
- `signing`
+ signing
}
tasks.jar {
diff --git a/ktlint/src/main/kotlin/com/pinterest/ktlint/internal/FileUtils.kt b/ktlint/src/main/kotlin/com/pinterest/ktlint/internal/FileUtils.kt
index 17f16be..d6ae735 100644
--- a/ktlint/src/main/kotlin/com/pinterest/ktlint/internal/FileUtils.kt
+++ b/ktlint/src/main/kotlin/com/pinterest/ktlint/internal/FileUtils.kt
@@ -3,7 +3,6 @@
import com.pinterest.ktlint.core.KtLint
import com.pinterest.ktlint.core.LintError
import com.pinterest.ktlint.core.RuleSet
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.initKtLintKLogger
import java.io.File
import java.nio.file.FileSystem
@@ -163,7 +162,6 @@
/**
* Run lint over common kotlin file or kotlin script file.
*/
-@OptIn(FeatureInAlphaState::class)
internal fun lintFile(
fileName: String,
fileContents: String,
@@ -191,7 +189,6 @@
/**
* Format a kotlin file or script file
*/
-@OptIn(FeatureInAlphaState::class)
internal fun formatFile(
fileName: String,
fileContents: String,
diff --git a/ktlint/src/main/kotlin/com/pinterest/ktlint/internal/GenerateEditorConfigSubCommand.kt b/ktlint/src/main/kotlin/com/pinterest/ktlint/internal/GenerateEditorConfigSubCommand.kt
index 5500fa8..8eea31a 100644
--- a/ktlint/src/main/kotlin/com/pinterest/ktlint/internal/GenerateEditorConfigSubCommand.kt
+++ b/ktlint/src/main/kotlin/com/pinterest/ktlint/internal/GenerateEditorConfigSubCommand.kt
@@ -1,7 +1,6 @@
package com.pinterest.ktlint.internal
import com.pinterest.ktlint.core.KtLint
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.initKtLintKLogger
import mu.KotlinLogging
import picocli.CommandLine
@@ -23,7 +22,6 @@
@CommandLine.Spec
private lateinit var commandSpec: CommandLine.Model.CommandSpec
- @OptIn(FeatureInAlphaState::class)
override fun run() {
commandSpec.commandLine().printHelpOrVersionUsage()
diff --git a/ktlint/src/main/kotlin/com/pinterest/ktlint/internal/IntellijIDEAIntegration.kt b/ktlint/src/main/kotlin/com/pinterest/ktlint/internal/IntellijIDEAIntegration.kt
index 30808bc..d864bb0 100644
--- a/ktlint/src/main/kotlin/com/pinterest/ktlint/internal/IntellijIDEAIntegration.kt
+++ b/ktlint/src/main/kotlin/com/pinterest/ktlint/internal/IntellijIDEAIntegration.kt
@@ -1,7 +1,6 @@
package com.pinterest.ktlint.internal
import com.github.shyiko.klob.Glob
-import com.pinterest.ktlint.core.api.FeatureInAlphaState
import com.pinterest.ktlint.core.internal.EditorConfigLoader
import com.pinterest.ktlint.core.internal.EditorConfigLoader.Companion.convertToRawValues
import java.io.ByteArrayInputStream
@@ -26,7 +25,6 @@
@Suppress("UNUSED_PARAMETER")
@Throws(IOException::class)
- @OptIn(FeatureInAlphaState::class)
fun apply(workDir: Path, dryRun: Boolean, android: Boolean = false, local: Boolean = false): Array<Path> {
val editorConfigProperties = EditorConfigLoader(FileSystems.getDefault())
.loadPropertiesForFile(null, isStdIn = true, rules = emptySet())