Improve remove/specify type intentions in Explicit API mode

Do not suggest to remove type for public declarations

 #KT-38915 Fixed

Do not show intention to specify type when corresponding quickfix is available

 #KT-39026 Fixed
This commit is contained in:
Leonid Startsev
2020-09-08 17:34:53 +03:00
parent 5f0e7c3c3f
commit bc432ecb85
8 changed files with 71 additions and 1 deletions
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.resolve.checkers
import org.jetbrains.kotlin.config.AnalysisFlags
import org.jetbrains.kotlin.config.ExplicitApiMode
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.diagnostics.Errors
import org.jetbrains.kotlin.diagnostics.reportDiagnosticOnce
@@ -122,5 +123,20 @@ class ExplicitApiDeclarationChecker : DeclarationChecker {
return true
}
fun publicReturnTypeShouldBePresentInApiMode(
element: KtCallableDeclaration,
languageVersionSettings: LanguageVersionSettings,
descriptor: DeclarationDescriptor?
): Boolean {
val isInApiMode = languageVersionSettings.getFlag(AnalysisFlags.explicitApiMode) != ExplicitApiMode.DISABLED
return isInApiMode && returnTypeRequired(
element,
descriptor,
checkForPublicApi = true,
checkForInternal = false,
checkForPrivate = false
)
}
}
}