Extract common parts from ExperimentalUsageChecker
This commit is contained in:
+3
-3
@@ -40,8 +40,8 @@ import org.jetbrains.kotlin.renderer.DescriptorRenderer.Companion.withOptions
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier.*
|
||||
import org.jetbrains.kotlin.renderer.OverrideRenderingPolicy
|
||||
import org.jetbrains.kotlin.renderer.render
|
||||
import org.jetbrains.kotlin.resolve.checkers.ExperimentalUsageChecker
|
||||
import org.jetbrains.kotlin.resolve.checkers.ExplicitApiDeclarationChecker
|
||||
import org.jetbrains.kotlin.resolve.checkers.OptInNames
|
||||
import org.jetbrains.kotlin.resolve.checkers.explicitApiEnabled
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.setSingleOverridden
|
||||
import org.jetbrains.kotlin.util.findCallableMemberBySignature
|
||||
@@ -209,8 +209,8 @@ private val OVERRIDE_RENDERER = withOptions {
|
||||
renderUnabbreviatedType = false
|
||||
annotationFilter = {
|
||||
val annotations = it.type.constructor.declarationDescriptor?.annotations
|
||||
annotations != null && (annotations.hasAnnotation(ExperimentalUsageChecker.REQUIRES_OPT_IN_FQ_NAME) ||
|
||||
annotations.hasAnnotation(ExperimentalUsageChecker.OLD_EXPERIMENTAL_FQ_NAME))
|
||||
annotations != null && (annotations.hasAnnotation(OptInNames.REQUIRES_OPT_IN_FQ_NAME) ||
|
||||
annotations.hasAnnotation(OptInNames.OLD_EXPERIMENTAL_FQ_NAME))
|
||||
}
|
||||
presentableUnresolvedTypes = true
|
||||
informativeErrorType = false
|
||||
|
||||
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getParentOfTypesAndPredicate
|
||||
import org.jetbrains.kotlin.resolve.AnnotationChecker
|
||||
import org.jetbrains.kotlin.resolve.checkers.ExperimentalUsageChecker
|
||||
import org.jetbrains.kotlin.resolve.checkers.OptInNames
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
||||
|
||||
object ExperimentalFixesFactory : KotlinIntentionActionsFactory() {
|
||||
@@ -103,8 +103,8 @@ object ExperimentalFixesFactory : KotlinIntentionActionsFactory() {
|
||||
}
|
||||
|
||||
private val ModuleDescriptor.OPT_IN_FQ_NAME: FqName
|
||||
get() = ExperimentalUsageChecker.OPT_IN_FQ_NAME.takeIf { fqNameIsExisting(it) }
|
||||
?: ExperimentalUsageChecker.OLD_USE_EXPERIMENTAL_FQ_NAME
|
||||
get() = OptInNames.OPT_IN_FQ_NAME.takeIf { fqNameIsExisting(it) }
|
||||
?: OptInNames.OLD_USE_EXPERIMENTAL_FQ_NAME
|
||||
|
||||
|
||||
fun ModuleDescriptor.fqNameIsExisting(fqName: FqName): Boolean = resolveClassByFqName(fqName, NoLookupLocation.FROM_IDE) != null
|
||||
|
||||
@@ -24,14 +24,14 @@ import org.jetbrains.kotlin.idea.roots.invalidateProjectRoots
|
||||
import org.jetbrains.kotlin.idea.util.projectStructure.module
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.resolve.checkers.ExperimentalUsageChecker
|
||||
import org.jetbrains.kotlin.resolve.checkers.OptInNames
|
||||
|
||||
class MakeModuleExperimentalFix(
|
||||
file: KtFile,
|
||||
private val module: Module,
|
||||
private val annotationFqName: FqName
|
||||
) : KotlinQuickFixAction<KtFile>(file) {
|
||||
private val experimentalPrefix = if (module.toDescriptor()?.fqNameIsExisting(ExperimentalUsageChecker.REQUIRES_OPT_IN_FQ_NAME) == true)
|
||||
private val experimentalPrefix = if (module.toDescriptor()?.fqNameIsExisting(OptInNames.REQUIRES_OPT_IN_FQ_NAME) == true)
|
||||
"opt-in"
|
||||
else
|
||||
"use-experimental"
|
||||
@@ -64,7 +64,7 @@ class MakeModuleExperimentalFix(
|
||||
val facet = KotlinFacet.get(module) ?: return true
|
||||
val facetSettings = facet.configuration.settings
|
||||
val compilerSettings = facetSettings.compilerSettings ?: return true
|
||||
return if (annotationFqName != ExperimentalUsageChecker.REQUIRES_OPT_IN_FQ_NAME && annotationFqName != ExperimentalUsageChecker.OLD_EXPERIMENTAL_FQ_NAME) {
|
||||
return if (annotationFqName != OptInNames.REQUIRES_OPT_IN_FQ_NAME && annotationFqName != OptInNames.OLD_EXPERIMENTAL_FQ_NAME) {
|
||||
compilerArgument !in compilerSettings.additionalArgumentsAsList
|
||||
} else {
|
||||
compilerSettings.additionalArgumentsAsList.none {
|
||||
@@ -80,9 +80,9 @@ class MakeModuleExperimentalFix(
|
||||
return MakeModuleExperimentalFix(
|
||||
containingKtFile,
|
||||
module,
|
||||
ExperimentalUsageChecker.REQUIRES_OPT_IN_FQ_NAME.takeIf {
|
||||
OptInNames.REQUIRES_OPT_IN_FQ_NAME.takeIf {
|
||||
module.toDescriptor()?.fqNameIsExisting(it) == true
|
||||
} ?: ExperimentalUsageChecker.OLD_EXPERIMENTAL_FQ_NAME
|
||||
} ?: OptInNames.OLD_EXPERIMENTAL_FQ_NAME
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
|
||||
import org.jetbrains.kotlin.psi.psiUtil.hasActualModifier
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.checkers.ExperimentalUsageChecker
|
||||
import org.jetbrains.kotlin.resolve.checkers.OptInNames
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameOrNull
|
||||
import org.jetbrains.kotlin.resolve.multiplatform.OptionalAnnotationUtil
|
||||
import org.jetbrains.kotlin.resolve.source.KotlinSourceElement
|
||||
@@ -262,8 +262,8 @@ private fun KtPsiFactory.repairSuperTypeList(
|
||||
private val forbiddenAnnotationFqNames = setOf(
|
||||
OptionalAnnotationUtil.OPTIONAL_EXPECTATION_FQ_NAME,
|
||||
FqName("kotlin.ExperimentalMultiplatform"),
|
||||
ExperimentalUsageChecker.OPT_IN_FQ_NAME,
|
||||
ExperimentalUsageChecker.OLD_USE_EXPERIMENTAL_FQ_NAME
|
||||
OptInNames.OPT_IN_FQ_NAME,
|
||||
OptInNames.OLD_USE_EXPERIMENTAL_FQ_NAME
|
||||
)
|
||||
|
||||
internal fun generateCallable(
|
||||
|
||||
Reference in New Issue
Block a user