Replace @requiresTypeResolution kdoc tag with @RequiresTypeResolution annotation (#3579)

* Change indentation according to ktlint

* Add test case to verify requiresTypeResolution flag

* Add RequiresTypeResolution annotation

* Generate documentation based on RequiresTypeResolution annotation

* Use @RequiresTypeResolution instead of kdoc tag

* Update documentation for @RequiresTypeResolution

* Remove support for @requiresTypeResolution kdoc tag

* Add @RequiresTypeResolution to public api

* Move extension functions to separate files

* Remove @RequiresOptIn from public api

* Update annotation comment

Co-authored-by: Markus Schwarz <post@markus-schwarz.net>
This commit is contained in:
marschwar
2021-03-27 06:33:53 +01:00
committed by GitHub
parent dfdec5cd17
commit 7c4a690014
48 changed files with 312 additions and 180 deletions

View File

@@ -7,6 +7,7 @@ import io.gitlab.arturbosch.detekt.api.Entity
import io.gitlab.arturbosch.detekt.api.Issue
import io.gitlab.arturbosch.detekt.api.Severity
import io.gitlab.arturbosch.detekt.api.ThresholdRule
import io.gitlab.arturbosch.detekt.api.internal.RequiresTypeResolution
import org.jetbrains.kotlin.psi.KtCallExpression
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.calls.callUtil.getParameterForArgument
@@ -28,8 +29,8 @@ import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
* </compliant>
*
* @configuration threshold - number of parameters that triggers this inspection (default: `3`)
* @requiresTypeResolution
*/
@RequiresTypeResolution
class NamedArguments(
config: Config = Config.empty,
threshold: Int = DEFAULT_FUNCTION_THRESHOLD

View File

@@ -7,6 +7,7 @@ import io.gitlab.arturbosch.detekt.api.Entity
import io.gitlab.arturbosch.detekt.api.Issue
import io.gitlab.arturbosch.detekt.api.Rule
import io.gitlab.arturbosch.detekt.api.Severity
import io.gitlab.arturbosch.detekt.api.internal.RequiresTypeResolution
import org.jetbrains.kotlin.psi.KtSafeQualifiedExpression
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
@@ -37,13 +38,15 @@ import org.jetbrains.kotlin.types.isNullable
* } ?: emptyList()
* </compliant>
*
* @requiresTypeResolution
*/
@RequiresTypeResolution
class ReplaceSafeCallChainWithRun(config: Config = Config.empty) : Rule(config) {
override val issue = Issue(javaClass.simpleName, Severity.Maintainability,
override val issue = Issue(
javaClass.simpleName, Severity.Maintainability,
"Chains of safe calls on non-nullable types can be surrounded with run {}",
Debt.TEN_MINS)
Debt.TEN_MINS
)
override fun visitSafeQualifiedExpression(expression: KtSafeQualifiedExpression) {
super.visitSafeQualifiedExpression(expression)