This repository has been archived by the owner on Jul 6, 2022. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
10.2.1
->10.3.0
1.19.0
->1.20.0
1.6.10
->1.7.0
1.6.20
->1.7.0
1.6.20
->1.7.0
1.6.20
->1.7.0
1.6.20
->1.7.0
1.6.20
->1.7.0
1.6.20
->1.7.0
1.1.6
->2.0.3
Release Notes
detekt/detekt
v1.20.0
We're extremely excited to share with you all the next upcoming stable release of Detekt:
1.20.0
🎉This release is coming with 16 new rules, new API and functionalities and several stability improvements.
First, much thanks to our sponsors ❤️ as we were able to buy a domain and move our website to https://detekt.dev/.
As for the feature shipped, we work a lot on the Reporting side: we added a new type of reporting, improved the styling of the existing one and
generally reduced the unnecessary warnings of run with type resolution.
For rules like
ForbiddenMethod
where you can configure a signature of a method you want to use in your rule, we added a new syntaxthat allows to reference generic methods & extension functions.
We update a lot of the libraries we depend on bringing Detekt up to the ecosystem: KtLint 0.45.2, Kotlin 1.6.20 and Gradle 7.4.2 to name a few.
Finally, we also migrated all of our tests from Spek to JUnit. This was a huge effort that will hopefully make easier for contributors
to be involved with Detekt.
As always, we want to take the opportunity to thank 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).
Notable Changes
formatting
ruleset provided by Detekt is updated to use this new mechanism - #4352LiteFindingsReport
(which is more compact reporting and similar to other tools in the ecosystem. You can see an example here) - #4449.FindingsReport
andFileBasedFindingsReporter
- #44641.19.0
for users usingignoreAnnotated
running without type resolution - #4570ForbiddenMethod
where you can specify a method name in the config file, now we added support for:v7.4.2
, AGP7.1.3
and Kotlin1.6.20
(see #4530 #4573 #4133 #4277 #4665)0.45.2
(see #4227 #4630 #4645 #4690)Changelog
AnnotationExcluder
- #4518formatting
- #4473Suppressor
s - #4440UnnecessaryAbstractClass
- #4399inner
classes - #4344Dependency Updates
Housekeeping & Refactorings
setReportOutputConventions
- #4546AnnotationExcluder
tests - #4368See all issues at: 1.20.0
Kotlin/dokka
v1.7.0
Improvements
General
Kotlin
1.7.0,IntelliJ
Platform 213Java
fields with accessors, now properly interpreted asval
/var
properties (https://github.com/Kotlin/dokka/pull/2481, https://github.com/Kotlin/dokka/pull/2532, https://github.com/Kotlin/dokka/pull/2540)@Deprecated
members withHIDDEN
level (https://github.com/Kotlin/dokka/pull/2486)HTML format
Javadoc format
Javadoc
pages generation deterministic (https://github.com/Kotlin/dokka/pull/2479)jQuery
to avoid multiple CVEs, thanks to @ToppleTheNun (https://github.com/Kotlin/dokka/issues/1938)GFM format
Kotlin-as-Java plugin
Java
access modifiers into function signatures, thanks to @tripolkaandrey (https://github.com/Kotlin/dokka/pull/2510)Gradle runner
dokka-analysis
dependencycompileOnly
, this should help avoid compatibility problems if different versions ofKotlin
are bundled inGradle
andDokka
(https://github.com/Kotlin/dokka/pull/2521)Gradle
tasks, thanks to @3flex (https://github.com/Kotlin/dokka/pull/2500)Gradle
runner, thanks to @3flex (https://github.com/Kotlin/dokka/pull/2502)Gradle
runner, thanks to @3flex (https://github.com/Kotlin/dokka/pull/2501)Fixes
General bugfixes
Security
log4j
1.2 that came as a transitive dependency (https://github.com/Kotlin/dokka/issues/2488)Plugin API
base.ftl
template: nowheader.ftl
,footer.ftl
andpage_metadata.ftl
can be overridden individually (https://github.com/Kotlin/dokka/pull/2432)Other
Thanks to all the contributors!
v1.6.21
This is a bugfix release that mostly enables building documentation for multiplatform projects that utilize
.klib
libraries.Changes
jsoup
dependency to avoid CVE-2021-37714 (#2448)Bugfixes
KLIB
libraries for common platform, previously led toERROR CLASS
instead of references in documentation (#2441)v1.6.20
Features
documentedVisibilities
setting that allows including/excluding any visibility modifier in documentation. This is a more flexible replacement forincludeNonPublic
, which has now been deprecated (https://github.com/Kotlin/dokka/pull/2270)HTML format changes
val
/var
keywords and default values (https://github.com/Kotlin/dokka/pull/2313)Bugfixes
OutOfMemoryError: Metaspace
-related issues for the majority of cases (https://github.com/Kotlin/dokka/pull/2216)@
symbol within code blocks in.md
files doesn't lead to cropped documents anymore (https://github.com/Kotlin/dokka/pull/2418)isBoolean
instead ofgetBoolean
(https://github.com/Kotlin/dokka/pull/2356), thanks to @CharlesG-Branch!Plugin API Changes
General Improvements
package-info.java
(https://github.com/Kotlin/dokka/pull/2331), thanks to @ember-rose!<h1>
/<h2>
/<h3>
) in Javadoc (https://github.com/Kotlin/dokka/pull/2345), thanks to @asfalcone!expect
-actual
keywords (https://github.com/Kotlin/dokka/pull/2316)Known issues
.klib
libraries may experience problems. There will be a separate1.6.21
release that will address this issue shortly.JetBrains/kotlin
v1.7.0
Analysis API. FIR
KT-50864
Analysis API: ISE: "KtCallElement should always resolve to a KtCallInfo" is thrown on call resolution inside plusAssign targetKT-50252
Analysis API: Implement FirModuleResolveStates for librariesKT-50862
Analsysis API: do not create use site subsitution override symbolsAnalysis API. FIR Low Level API
KT-50729
Type bound is not fully resolvedKT-50728
Lazy resolve of extension function from 'kotlin' package breaks over unresolved typeKT-50271
Analysis API: get rid of using FirRefWithValidityCheckBackend. Native. Debug
KT-50558
K/N Debugger. Error is not displayed in variables view for catch blockCompiler
New Features
KT-26245
Add ability to specify generic type parameters as not-nullKT-45165
Remove JVM target version 1.6KT-27435
Allow implementation by delegation to inlined value of inline classKT-47939
Support method references to functional interface constructorsKT-50775
Support IR partial linkage in Kotlin/Native (disabled by default)KT-51737
Kotlin/Native: Remove unnecessary safepoints on watchosArm32 and iosArm32 targetsKT-44249
NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER with type usage in higher order functionPerformance Improvements
KT-48233
Switching to JVM IR backend increases compilation time by more than 15%KT-51699
Kotlin/Native: runtime has no LTO in debug binariesKT-34466
Use optimized switch over enum only when all entries are constant enum entry expressionsKT-50861
FIR: Combination of array set convention and plusAssign works exponentiallyKT-47171
For loop doesn't avoid boxing with value class iterators (JVM)KT-29199
'next' calls for iterators of merged primitive progressive values are not specializedKT-50585
JVM IR: Array constructor loop should use IINCKT-22429
Optimize 'for' loop code generation for reversed arraysKT-50074
Performance regression in String-based 'when' with single equality clauseKT-22334
Compiler backend could generate smaller code for loops using range such as integer..array.size -1KT-35272
Unnecessary null check on unsafe cast after not-null assertion operatorKT-27427
Optimize nullable check introduced with 'as' castFixes
KT-46762
Finalize support for jspecifyKT-51499
@file:OptIn doesn't cover override methodsKT-52037
FIR: add error in 1.7.0 branch if run with non-compatible pluginsKT-46756
Release the K2/JVM compiler in AlphaKT-49715
IR: "IllegalStateException: Function has no body: FUN name:toString" during IR lowering with shadowed extension inside interfaceKT-45508
False negative ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED on a fake override with an abstract super class memberKT-28078
Report error "Public property exposes its private type" for primary constructor properties instead of warningKT-49017
Forbid usages of super or super if in fact it accesses an abstract memberKT-38078
Prohibit calling methods from Any with "super" qualifier once they are overridden as abstract in superclassKT-52363
Evaluate impact of qualifiedthis
behavior change warningsKT-52561
JVM: Coroutine state machine loses value after a check-induced smart castKT-52311
java.lang.VerifyError: Bad type on operand stackKT-41124
Inconsistency of exceptions at init block for an enum entry with and without a qualifier nameKT-46860
Make safe calls always nullableKT-52503
New green code appeared at the callable reference resolutionKT-51925
Native: "IllegalStateException: Symbol for kotlinx.cinterop/CStructVar|null[0] is unbound" caused by inline functionKT-49317
"IllegalStateException: Parent of this declaration is not a class: FUN LOCAL_FUNCTION_FOR_LAMBDA" with parameter of suspend type with the default parameterKT-51844
New errors in overload resolution involving vararg extension methodsKT-52006
"java.lang.Throwable: Unbalanced tree Exception" on indexing kotlin projectKT-51223
Report warning about conflicting inherited members from deserialized dependenciesKT-51439
FE 1.0: implement type variance conflict deprecation on qualifier type argumentsKT-51433
FE 1.0: implement warnings about label resolve changesKT-51317
Regression in resolution of lambdas where expected type has an extension receiver parameterKT-45935
JVM IR: Add not-null assertion for explicit definitely not-null parametersKT-51818
"ClassCastException: class CoroutineSingletons cannot be cast to class" with suspendCoroutineUninterceptedOrReturn and coroutinesKT-51718
JVM / IR: "VerifyError: Bad type on operand stack" caused by nullable variable inside suspend functionKT-51927
Native:The symbol of unexpected type encountered during IR deserialization
error when multiple libraries have non-conflicting declarations with the same nameKT-52394
JVM: Missing annotation on method with value class return type when a subclass is present in the same file in Kotlin 1.7.0-BetaKT-51640
FIR: remove warning about "far from being production ready"KT-45553
FIR: support hiding declaration from star import by as importKT-52404
Prolong deprecation cycle for errors at contravariant usages of star projected argument from JavaKT-50734
TYPE_MISMATCH: NonNull parameter with a type of Nullable type argument causes compiler warningKT-51235
JVM / IR: "AbstractMethodError: Receiver class does not define or inherit an implementation of the resolved method" when property with inline class type is overridden to return Nothing?KT-48935
NI: Multiple generic parameter type constraints are not applied as expected when the parameter is of function typeKT-49661
NI: No TYPE_INFERENCE_UPPER_BOUND_VIOLATED when argument is inferred by return typeKT-50877
Inconsistent flexible typeKT-51988
"NPE: getContainingDeclaration…lDeclarationType.REGULAR) must not be null" when using @BuilderInference with multiple type argumentsKT-48890
Revert Opt-In restriction "Overriding methods can only have opt-in annotations that are present on their basic declarations."KT-52035
FIR: add error in 1.7.0 branch if run on JS / Native configurationKT-45461
NI: False negative TYPE_INFERENCE_UPPER_BOUND_VIOLATED when passing an argument to a function with generic constraintsKT-52146
JVM IR: "AssertionError: Primitive array expected" on vararg of SAM types with self-type and star projectionKT-50730
Implement error for a super class constructor call on a function interface in supertypes listKT-52040
JVM: ClassFormatError Illegal method name "expectFailure$__proxy-0"KT-50845
Postpone rxjava errors reporting in the strict mode till 1.8 due to found broken casesKT-51979
"AssertionError: No modifier list, but modifier has been found by the analyzer" exception on incorrect Java interface overrideKT-51759
FIR DFA: false positive "Variable must be initialized"KT-50378
Unresolved reference for method in Jsoup library in a kts script fileKT-34919
"Visibility is unknown yet" when named parameter in a function type used in a typealias implemented by an abstract classKT-51893
Duplicated [OVERRIDE_DEPRECATION] on overridden propertiesKT-41034
K2: Change evaluation semantics for combination of safe calls and convention operatorsKT-51843
Functional interface constructor references are incorrectly allowed in 1.6.20 without any compiler flagsKT-51914
False positive RETURN_TYPE_MISMATCH in intellij ultimateKT-51711
Compiler warning is displayed in case there is 'if' else branch used with elvisKT-33517
Kotlin ScriptEngine does not respect async code when using bindingsKT-51850
FIR cannot resolve ambiguity with different SinceKotlin/DeprecatedSinceKotlinKT-44705
Deprecate using non-exhaustive if's and when's in rhs of elvisKT-44510
FIR DFA: smartcast after elvis with escaping lambdaKT-44879
FIR DFA: Trackinc
anddec
operator calls in preliminary loop visitorKT-51758
FIR: explicit API mode errors should not be reported for effectively internal / private entitiesKT-51203
FIR: Inconsistent RETURN_TYPE_MISMATCH and TYPE_MISMATCH reporting on functions and propertiesKT-51624
FIR: false-positive INAPPLICABLE_LATEINIT_MODIFIER for lateinit properties with unresolved typesKT-51204
FIR IC: Incremental compilation fails on nested crossinlineKT-51798
Fix ISE from IR backend when data class inherits equals/hashCode/toString with incompatible signatureKT-46187
FIR: OVERLOAD_RESOLUTION_AMBIGUITY on SAM-converted callable reference to List::plusKT-51761
Incorrect NONE_APPLICABLE in expect classKT-51756
FIR: false positive NO_VALUE_FOR_PARAMETER in expect class delegated constructor callKT-49778
Support cast to DefinitelyNotNull type in NativeKT-51441
-Xpartial-linkage option specified in Gradle build script is not passed to Native linkerKT-34515
NI: "AssertionError: Base expression was not processed: POSTFIX_EXPRESSION" with double not-null assertion to bracketsKT-48546
PSI2IR: "org.jetbrains.kotlin.psi2ir.generators.ErrorExpressionException: null: KtCallExpression" with recursive property access in lazy blockKT-28109
"AssertionError: No setter call" for incrementing parenthesized result of indexed access convention operatorKT-46136
Unsubstituted return type inferred for a function returning anonymous object upcast to supertypeKT-51364
FIR: ambiguity due to String constructors clashKT-51621
FIR: visible VS invisible qualifier conflictKT-50468
FIR compilers fails with CCE when meets top-level destructionKT-51557
Inline stack frame is not shown for default inline lambdaKT-51358
OptIn: show default warning/error message in case of empty message argumentKT-44152
FIR2IR fails on declarations from java stdlib if java classes are loaded from PSI instead of binariesKT-50949
PSI2IR: NSEE fromArgumentsGenerationUtilsKt.createFunctionForSuspendConversion
with providing lambda as argument with suspend typeKT-39256
ArrayStoreException with list of anonymous objects with inferred types created in reified extension functionKT-39883
Deprecate computing constant values of complex boolean expressions in when condition branches and conditions of loopsKT-36952
Exception during codegen: cannot pop operand off an empty stack (reference equality, implicit boxing, type check)KT-51233
AssertionError in JavaLikeCounterLoopBuilder with ComposeKT-51254
Verify Error on passing null to type parameter extending inline classKT-50996
[FIR] Support Int -> Long conversion for property initializersKT-51000
[FIR] Support Int ->Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Mend Renovate. View repository job log here.