Static code analysis for Kotlin
This is a point release for Detekt 1.23.0
, where we added support for Kotlin 1.9.23
and fixed several bugs that got reported by the community.
We would like to thank the following contributors that made this release possible: @BraisGabin, @psuzn, @t-kameyama.
This is a point release for Detekt 1.23.0
, where we added support for Kotlin 1.9.22
and fixed several bugs that
got reported by the community.
USELESS_ELVIS
in UnreachableCode
- #6624
We would like to thank the following contributors that made this release possible: @3flex, @TWiStErRob, @atulgpt, @matejdro
This is a point release for Detekt 1.23.0
, where we added support for Kotlin 1.9.21
and fixed several bugs that
got reported by the community.
We would like to thank the following contributors that made this release possible: @3flex, @BraisGabin, @Gosunet, @atulgpt, @t-kameyama
This is a point release for Detekt 1.23.0
, where we added support for Kotlin 1.9.10
and fixed several bugs that
got reported by the community.
NOTE: This is a republishing of 1.23.2 which was accidentally published against Kotlin 1.9.0 instead of 1.9.10
IgnoredReturnValue
with scope functions - #6446
We would like to thank the following contributors that made this release possible: @3flex, @arturbosch, @atulgpt, @kkocel, @marschwar, @pablobaxter, @t-kameyama
NOTE: Please use version 1.23.3 instead - Version 1.23.2 was accidentally built against Kotlin 1.9.0 instead of 1.9.10 https://github.com/detekt/detekt/releases/tag/v1.23.3
This is a point release for Detekt 1.23.0
, where we added support for Kotlin 1.9.10
and fixed several bugs that
got reported by the community.
IgnoredReturnValue
with scope functions - #6446
We would like to thank the following contributors that made this release possible: @3flex, @arturbosch, @atulgpt, @kkocel, @marschwar, @pablobaxter, @t-kameyama
This is a point release for Detekt 1.23.0
, where we added support for Kotlin 1.9.0
and fixed several bugs that
got reported by the community.
..<
and rangeTo
in the ForEachOnRange
rule - #6197
UseDataClass
if class contains non-property parameters - #6173
replaceIndent
and prependIndent
- #6154
We would like to thank the following contributors that made this release possible: @3flex, @Goooler, @Hexcles, @PoisonedYouth, @TWiStErRob, @VirtualParticle, @atulgpt, @cortinico, @dzirbel, @eygraber, @marschwar, @rmarquis, @segunfamisa, @severn-everett, @t-kameyama
We're so proud to announce the next upcoming stable release of detekt: 1.23.0 🚀 This release is coming with 25 new rules and much more.
We moved the detekt-compiler-plugin to the main repo, and you can now use it in your builds following the official documentation.
This release also marks the beginning of development of 2.x from the main branch! You can follow the progress here
We want to take the opportunity to thank our Sponsors and our Contributors for testing, bug reporting and helping us release this new version of Detekt. You're more than welcome to join our community on the #detekt channel on KotlinLang's Slack (you can get an invite here).
detekt-compiler-plugin
. The Detekt Compiler plugin is still experimental, but we're moving it closer to Detekt to make it easier to integrate. From now on the compiler plugin will follow the same versioning schema as Detekt. We invite you to try it and provide feedback till we stabilize it. You can read more about it in the official documentation page - #5492
BracesOnIfStatements
- #5700
BracesOnWhenStatements
- #5838
CastNullableToNonNullableType
- #5653
DoubleNegativeLambda
- #5937
ForbiddenAnnotation
- #5515
PropertyUsedBeforeDeclaration
- #6062
StringShouldBeRawString
- #5705
SuspendFunSwallowedCancellation
- #5666
UnusedParameter
- #5722
UnusedPrivateProperty
- #5722
UseLet
- #6091
UnnecessaryBracesAroundTrailingLambda
- #6029
detekt-formatting
ruleset:
ClassName
- #6037
EnumWrapping
- #6028
FunctionName
- #6037
IfElseBracing
- #6028
IfElseWrapping
- #6028
MultilineExpressionWrapping
- #6028
NoBlankLineInList
- #6028
NoConsecutiveComments
- #6028
NoEmptyFirstLineInClassBody
- #6028
NoSingleLineBlockCommentRule
- #6104
ParameterWrapping
- #6028
PropertyName
- #6037
PropertyWrapping
- #6028
StringTemplateIndent
- #6028
TryCatchFinallySpacing
- #6028
UnnecessaryAbstractClass
now only runs with type resolution - #5829
UnusedPrivateMember
has been refactored with some of its logic moved to UnusedParameter
and UnusedPrivateProperty
- #5722
ignoreOverridden
config from BooleanPropertyNaming
, ConstructorParameterNaming
, FunctionNaming
, VariableNaming
and FunctionParameterNaming
as not useful for those rules - #5718
ignoredSubjectTypes
to rule ElseCaseInsteadOfExhaustiveWhen
to specify types that should be ignored by the rule (#5623) - #5634
allowOperators
to rule DataClassContainsFunctions
- #5658
MandatoryBracesIfStatements
has been removed in favor of BracesOnIfStatements
- #5700
ignoreWhenContainingVariableDeclaration
to UseIfInsteadOfWhen
to ignore captured variables - #5681
detekt-formatting
ruleset now accepts an indentSize
parameter (see the full list here).detekt-formatting
ruleset are now turned on by default (see the full list here).includes
/excludes
logic on the config file as they were overriding each other - #5782
detekt-test-utils
. The recommended testing framework is JUnit - #5785
v6.8.3
- #5616
v8.1
, AGP 8.0.1
, Kotlin 1.8.21
and KtLint 0.49.1
(see #5893 #5723 #5877 #6028 #6043 #5995 #5996)comments
with a list of regexes to ForbiddenComment
- #5981
requireRootInDeclaration
check in InvalidPackageDeclaration
- #6045
detekt-versions.properties
instead of versions.properties
- #6006
allowOmitUnit
to rule LibraryCodeMustSpecifyReturnType
- #5861
Unit
for ImplicitUnitReturnType rule - #5857
TestConfig
usages - #5801
name
that return name after backticks - #5719
CanBeNonNullable
rule - #5714
MaxLineLength
- #5583
dependenciesAsNames
- #6059
ClassNaming
and FunctionNaming
- #6019
detekt-generator
- #5854
generateWebsite
- #5849
@Suppress("ReturnCount")
- #5841
times
method, use stdlib's repeat
instead. - #5774
We would like to thank the following contributors that made this release possible: @3flex, @BeBAKE, @BraisGabin, @Goooler, @SaumyaBhushan, @TWiStErRob, @VitalyVPinchuk, @adef145, @asomov, @atulgpt, @chao2zhang, @cketti, @cortinico, @drawers, @dzirbel, @igorwojda, @lexa-diky, @luanpotter, @marschwar, @mjovanc, @mmorozkov, @ncteisen, @osipxd, @ov7a, @schalkms, @t-kameyama, @tresni
See all issues at: 1.23.0
detekt-compiler-plugin
. The Detekt Compiler plugin is still experimental but we're moving it closer to Detekt to make it easier to integrate. From now on the compiler plugin will follow the same versioning schema as Detekt. We invite you to try it and provide feedback till we stabilize it. - #5492
BracesOnIfStatements
- #5700
BracesOnWhenStatements
- #5838
CastNullableToNonNullableType
- #5653
DoubleNegativeLambda
- #5937
ForbiddenAnnotation
- #5515
StringShouldBeRawString
- #5705
SuspendFunSwallowedCancellation
- #5666
UnusedParameter
- #5722
UnusedPrivateProperty
- #5722
detekt-formatting
ruleset:
EnumWrapping
- #6028
IfElseBracing
- #6028
IfElseWrapping
- #6028
MultilineExpressionWrapping
- #6028
NoBlankLineInList
- #6028
NoConsecutiveComments
- #6028
NoEmptyFirstLineInClassBody
- #6028
ParameterWrapping
- #6028
PropertyWrapping
- #6028
StringTemplateIndent
- #6028
TryCatchFinallySpacing
- #6028
UnnecessaryAbstractClass
now only runs with type resolution - #5829
UnusedPrivateMember
has been refactored with some of its logic moved to UnusedParameter
and UnusedPrivateProperty
- #5722
ignoreOverridden
config from BooleanPropertyNaming
, ConstructorParameterNaming
, FunctionNaming
, VariableNaming
and FunctionParameterNaming
as not useful for those rules - #5718
ignoredSubjectTypes
to rule ElseCaseInsteadOfExhaustiveWhen
to specify types that should be ignored by the rule (#5623) - #5634
allowOperators
to rule DataClassContainsFunctions
- #5658
MandatoryBracesIfStatements
has been removed in favor of BracesOnIfStatements
- #5700
ignoreWhenContainingVariableDeclaration
to UseIfInsteadOfWhen
to ignore captured variables - #5681
detekt-formatting
ruleset now accepts an indentSize
parameter (see the full list here).detekt-formatting
ruleset are now turned on by default (see the full list here).includes
/excludes
logic on the config file as they were overriding each other - #5782
detekt-test-utils
. The recommended testing framework is JUnit - #5785
v6.8.3
- #5616
v8.0.2
, AGP 8.0.0
, Kotlin 1.8.21
and KtLint 0.49.0
(see #5893 #5723 #5877 #6028 #6043 #5995)requireRootInDeclaration
check in InvalidPackageDeclaration
- #6045
detekt-versions.properties
instead of versions.properties
- #6006
allowOmitUnit
to rule LibraryCodeMustSpecifyReturnType
- #5861
Unit
for ImplicitUnitReturnType rule - #5857
TestConfig
usages - #5801
name
that return name after backticks - #5719
CanBeNonNullable
rule - #5714
MaxLineLength
- #5583
ClassNaming
and FunctionNaming
- #6019
detekt-generator
- #5854
generateWebsite
- #5849
@Suppress("ReturnCount")
- #5841
times
method, use stdlib's repeat
instead. - #5774
We would like to thank the following contributors that made this release possible: @3flex, @BeBAKE, @BraisGabin, @Goooler, @SaumyaBhushan, @TWiStErRob, @VitalyVPinchuk, @adef145, @asomov, @atulgpt, @chao2zhang, @cketti, @cortinico, @drawers, @dzirbel, @igorwojda, @lexa-diky, @luanpotter, @marschwar, @mjovanc, @mmorozkov, @ncteisen, @osipxd, @ov7a, @schalkms, @t-kameyama
See all issues at: 1.23.0
detekt-compiler-plugin
. The Detekt Compiler plugin is still experimental but we're moving it closer to Detekt to make it easier to integrate. From now on the compiler plugin will follow the same versioning schema as Detekt. We invite you to try it and provide feedback till we stabilize it. - #5492
BracesOnIfStatements
- #5700
BracesOnWhenStatements
- #5838
CastNullableToNonNullableType
- #5653
DoubleNegativeLambda
- #5937
ForbiddenAnnotation
- #5515
StringShouldBeRawString
- #5705
SuspendFunSwallowedCancellation
- #5666
UnusedParameter
- #5722
UnusedPrivateProperty
- #5722
detekt-formatting
ruleset:
EnumWrapping
- #6028
IfElseBracing
- #6028
IfElseWrapping
- #6028
MultilineExpressionWrapping
- #6028
NoBlankLineInList
- #6028
NoConsecutiveComments
- #6028
NoEmptyFirstLineInClassBody
- #6028
ParameterWrapping
- #6028
PropertyWrapping
- #6028
StringTemplateIndent
- #6028
TryCatchFinallySpacing
- #6028
UnnecessaryAbstractClass
now only runs with type resolution - #5829
UnusedPrivateMember
has been refactored with some of its logic moved to UnusedParameter
and UnusedPrivateProperty
- #5722
ignoreOverridden
config from BooleanPropertyNaming
, ConstructorParameterNaming
, FunctionNaming
, VariableNaming
and FunctionParameterNaming
as not useful for those rules - #5718
ignoredSubjectTypes
to rule ElseCaseInsteadOfExhaustiveWhen
to specify types that should be ignored by the rule (#5623) - #5634
allowOperators
to rule DataClassContainsFunctions
- #5658
MandatoryBracesIfStatements
has been removed in favor of BracesOnIfStatements
- #5700
ignoreWhenContainingVariableDeclaration
to UseIfInsteadOfWhen
to ignore captured variables - #5681
detekt-formatting
ruleset now accepts an indentSize
parameter (see the full list here).detekt-formatting
ruleset are now turned on by default (see the full list here).includes
/excludes
logic on the config file as they were overriding each other - #5782
detekt-test-utils
. The recommended testing framework is JUnit - #5785
v6.8.3
- #5616
v8.0.2
, AGP 7.4.2
, Kotlin 1.8.20
and KtLint 0.49.0
(see #5893 #5723 #5877 #6028)detekt-versions.properties
instead of versions.properties
- #6006
@Internal
- #5978
allowOmitUnit
to rule LibraryCodeMustSpecifyReturnType
- #5861
Unit
for ImplicitUnitReturnType rule - #5857
TestConfig
usages - #5801
name
that return name after backticks - #5719
CanBeNonNullable
rule - #5714
MaxLineLength
- #5583
ClassNaming
and FunctionNaming
- #6019
detekt-generator
- #5854
generateWebsite
- #5849
@Suppress("ReturnCount")
- #5841
times
method, use stdlib's repeat
instead. - #5774
We would like to thank the following contributors that made this release possible: @3flex, @BeBAKE, @BraisGabin, @Goooler, @SaumyaBhushan, @TWiStErRob, @VitalyVPinchuk, @adef145, @asomov, @atulgpt, @chao2zhang, @cortinico, @drawers, @dzirbel, @igorwojda, @lexa-diky, @luanpotter, @marschwar, @mjovanc, @mmorozkov, @ncteisen, @osipxd, @ov7a, @schalkms, @t-kameyama
detekt-compiler-plugin
. From now on the compiler plugin will follow the same versioning schema as detekt. While still experimental, we invite you to try it and provide feedback till we stabilize it. - #5492
UnnecessaryAbstractClass
now only runs with type resolution - #5829
UnusedPrivateMember
has been refactored with some of its logic moved to UnusedParameter
and UnusedPrivateProperty
- #5722
ignoreOverridden
config from BooleanPropertyNaming
, ConstructorParameterNaming
, FunctionNaming
, VariableNaming
and FunctionParameterNaming
as not useful for those rules - #5718
ignoredSubjectTypes
to rule ElseCaseInsteadOfExhaustiveWhen
to specify types that should be ignored by the rule (#5623) - #5634
allowOperators
to rule DataClassContainsFunctions
- #5658
MandatoryBracesIfStatements
has been removed in favor of BracesOnIfStatements
- #5700
ignoreWhenContainingVariableDeclaration
to UseIfInsteadOfWhen
to ignore captured variables - #5681
includes
/excludes
logic on the config file as they were overriding each other - #5782
detekt-test-utils
. The recommended testing framework is JUnit - #5785
v6.8.3
- #5616
v8.0.2
, AGP 7.4.2
, Kotlin 1.8.20
and KtLint 0.48.2
(see #5893 #5723 #5877)Unit
for ImplicitUnitReturnType rule - #5857
TestConfig
usages - #5801
name
that return name after backticks - #5719
CanBeNonNullable
rule - #5714
MaxLineLength
- #5583
detekt-generator
- #5854
generateWebsite
- #5849
@Suppress("ReturnCount")
- #5841
times
method, use stdlib's repeat
instead. - #5774