Move static constants with builtin names to :core:descriptors.common module

This commit is contained in:
Dmitriy Novozhilov
2020-08-16 22:57:12 +03:00
parent 2e92fe9be9
commit 7a7fe77b8e
180 changed files with 1085 additions and 1025 deletions
@@ -35,7 +35,7 @@ import org.jetbrains.kotlin.analyzer.ResolverForProject.Companion.resolverForMod
import org.jetbrains.kotlin.analyzer.ResolverForProject.Companion.resolverForScriptDependenciesName
import org.jetbrains.kotlin.analyzer.ResolverForProject.Companion.resolverForSdkName
import org.jetbrains.kotlin.analyzer.ResolverForProject.Companion.resolverForSpecialInfoName
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.caches.resolve.KotlinCacheService
import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.context.GlobalContext
@@ -518,7 +518,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
}
private companion object {
private val SUPPRESS_ANNOTATION_SHORT_NAME = KotlinBuiltIns.FQ_NAMES.suppress.shortName().identifier
private val SUPPRESS_ANNOTATION_SHORT_NAME = KotlinBuiltInsNames.FqNames.suppress.shortName().identifier
}
}
@@ -528,4 +528,4 @@ fun IdeaModuleInfo.supportsAdditionalBuiltInsMembers(project: Project): Boolean
.supportsFeature(LanguageFeature.AdditionalBuiltInsMembers)
}
val IdeaModuleInfo.sdk: Sdk? get() = dependencies().firstIsInstanceOrNull<SdkInfo>()?.sdk
val IdeaModuleInfo.sdk: Sdk? get() = dependencies().firstIsInstanceOrNull<SdkInfo>()?.sdk
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.idea.decompiler.stubBuilder
import com.intellij.openapi.diagnostic.Logger
import com.intellij.psi.PsiElement
import com.intellij.psi.stubs.StubElement
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.builtins.isNumberedFunctionClassFqName
import org.jetbrains.kotlin.descriptors.SourceElement
import org.jetbrains.kotlin.idea.decompiler.stubBuilder.flags.*
@@ -64,7 +64,7 @@ private class ClassClsStubBuilder(
private val supertypeIds = run {
val supertypeIds = classProto.supertypes(c.typeTable).map { c.nameResolver.getClassId(it.className) }
//empty supertype list if single supertype is Any
if (supertypeIds.singleOrNull()?.let { KotlinBuiltIns.FQ_NAMES.any == it.asSingleFqName().toUnsafe() } == true) {
if (supertypeIds.singleOrNull()?.let { KotlinBuiltInsNames.FqNames.any == it.asSingleFqName().toUnsafe() } == true) {
listOf()
} else {
supertypeIds
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.idea.decompiler.stubBuilder
import com.intellij.psi.PsiElement
import com.intellij.psi.stubs.StubElement
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.builtins.isBuiltinFunctionClass
import org.jetbrains.kotlin.lexer.KtModifierKeywordToken
import org.jetbrains.kotlin.lexer.KtTokens
@@ -24,7 +24,6 @@ import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.stubs.KotlinUserTypeStub
import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes
import org.jetbrains.kotlin.psi.stubs.impl.*
import org.jetbrains.kotlin.resolve.DescriptorUtils
import org.jetbrains.kotlin.serialization.deserialization.ProtoContainer
import org.jetbrains.kotlin.serialization.deserialization.getClassId
import org.jetbrains.kotlin.serialization.deserialization.getName
@@ -33,7 +32,7 @@ import org.jetbrains.kotlin.utils.doNothing
import java.util.*
// TODO: see DescriptorRendererOptions.excludedTypeAnnotationClasses for decompiler
private val ANNOTATIONS_NOT_LOADED_FOR_TYPES = setOf(KotlinBuiltIns.FQ_NAMES.parameterName)
private val ANNOTATIONS_NOT_LOADED_FOR_TYPES = setOf(KotlinBuiltInsNames.FqNames.parameterName)
class TypeClsStubBuilder(private val c: ClsStubBuilderContext) {
fun createTypeReferenceStub(
@@ -96,7 +95,7 @@ class TypeClsStubBuilder(private val c: ClsStubBuilderContext) {
val shouldBuildAsFunctionType = isBuiltinFunctionClass(classId) && type.argumentList.none { it.projection == Projection.STAR }
if (shouldBuildAsFunctionType) {
val (extensionAnnotations, notExtensionAnnotations) = annotations.partition {
it.classId.asSingleFqName() == KotlinBuiltIns.FQ_NAMES.extensionFunctionType
it.classId.asSingleFqName() == KotlinBuiltInsNames.FqNames.extensionFunctionType
}
val isExtension = extensionAnnotations.isNotEmpty()
@@ -195,8 +194,8 @@ class TypeClsStubBuilder(private val c: ClsStubBuilderContext) {
val classId = c.nameResolver.getClassId(parameterType.className)
val fqName = classId.asSingleFqName()
assert(
fqName == DescriptorUtils.CONTINUATION_INTERFACE_FQ_NAME_EXPERIMENTAL
|| fqName == DescriptorUtils.CONTINUATION_INTERFACE_FQ_NAME_RELEASE
fqName == KotlinBuiltInsNames.CONTINUATION_INTERFACE_FQ_NAME_EXPERIMENTAL
|| fqName == KotlinBuiltInsNames.CONTINUATION_INTERFACE_FQ_NAME_RELEASE
) {
"Last parameter type of suspend function must be Continuation, but it is $fqName"
}
@@ -338,7 +337,7 @@ class TypeClsStubBuilder(private val c: ClsStubBuilderContext) {
private fun Type.isDefaultUpperBound(): Boolean {
return this.hasClassName() &&
c.nameResolver.getClassId(className).let { KotlinBuiltIns.FQ_NAMES.any == it.asSingleFqName().toUnsafe() } &&
c.nameResolver.getClassId(className).let { KotlinBuiltInsNames.FqNames.any == it.asSingleFqName().toUnsafe() } &&
this.nullable
}
}
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.idea.decompiler.stubBuilder
import com.intellij.psi.PsiElement
import com.intellij.psi.stubs.StubElement
import com.intellij.util.io.StringRef
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.descriptors.SourceElement
import org.jetbrains.kotlin.idea.decompiler.stubBuilder.flags.FlagsToModifiers
import org.jetbrains.kotlin.idea.stubindex.KotlinFileStubForIde
@@ -139,7 +139,7 @@ fun createStubForTypeName(
): KotlinUserTypeStub {
val substituteWithAny = typeClassId.isLocal
val fqName = if (substituteWithAny) KotlinBuiltIns.FQ_NAMES.any
val fqName = if (substituteWithAny) KotlinBuiltInsNames.FqNames.any
else typeClassId.asSingleFqName().toUnsafe()
val segments = fqName.pathSegments().asReversed()
@@ -21,7 +21,7 @@ import com.intellij.codeInspection.SuppressIntentionAction
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.idea.KotlinIdeaAnalysisBundle
import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.util.addAnnotation
@@ -63,7 +63,7 @@ class KotlinSuppressIntentionAction private constructor(
val id = "\"$suppressKey\""
when (suppressAt) {
is KtModifierListOwner -> suppressAt.addAnnotation(
KotlinBuiltIns.FQ_NAMES.suppress,
KotlinBuiltInsNames.FqNames.suppress,
id,
whiteSpaceText = if (kind.newLineNeeded) "\n" else " ",
addToExistingAnnotation = { entry ->
@@ -150,7 +150,7 @@ class KotlinSuppressIntentionAction private constructor(
}
private fun suppressAnnotationText(id: String, withAt: Boolean = true) =
"${if (withAt) "@" else ""}${KotlinBuiltIns.FQ_NAMES.suppress.shortName()}($id)"
"${if (withAt) "@" else ""}${KotlinBuiltInsNames.FqNames.suppress.shortName()}($id)"
private fun findSuppressAnnotation(annotated: KtAnnotated): KtAnnotationEntry? {
val context = annotated.analyze()
@@ -164,7 +164,7 @@ class KotlinSuppressIntentionAction private constructor(
private fun findSuppressAnnotation(context: BindingContext, annotationEntries: List<KtAnnotationEntry>): KtAnnotationEntry? {
return annotationEntries.firstOrNull { entry ->
context.get(BindingContext.ANNOTATION, entry)?.fqName == KotlinBuiltIns.FQ_NAMES.suppress
context.get(BindingContext.ANNOTATION, entry)?.fqName == KotlinBuiltInsNames.FqNames.suppress
}
}
}
@@ -9,6 +9,7 @@ import com.intellij.psi.PsiClass
import com.intellij.psi.PsiDocCommentOwner
import com.intellij.psi.PsiNamedElement
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.idea.core.completion.DeclarationLookupObject
@@ -74,7 +75,7 @@ fun isDeprecatedAtCallSite(descriptor: DeclarationDescriptor, languageVersionSet
if (!isDeprecatedAtDeclarationSite) return false
return computeLevelForDeprecatedSinceKotlin(
descriptor.original.annotations.findAnnotation(KotlinBuiltIns.FQ_NAMES.deprecatedSinceKotlin) ?: return true,
descriptor.original.annotations.findAnnotation(KotlinBuiltInsNames.FqNames.deprecatedSinceKotlin) ?: return true,
languageVersionSettings.apiVersion
) != null
}
@@ -9,14 +9,14 @@ import com.intellij.openapi.project.Project
import com.intellij.psi.JavaPsiFacade
import com.intellij.psi.PsiClass
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.idea.util.application.runReadAction
import org.jetbrains.kotlin.idea.util.runWithAlternativeResolveEnabled
fun getKotlinJvmRuntimeMarkerClass(project: Project, scope: GlobalSearchScope): PsiClass? {
return runReadAction {
project.runWithAlternativeResolveEnabled {
JavaPsiFacade.getInstance(project).findClass(KotlinBuiltIns.FQ_NAMES.unit.asString(), scope)
JavaPsiFacade.getInstance(project).findClass(KotlinBuiltInsNames.FqNames.unit.asString(), scope)
}
}
}
}
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.idea.frontend.api.types
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.name.ClassId
val KtType.isUnit: Boolean get() = isClassTypeWithClassId(DefaultTypeClassIds.UNIT)
@@ -16,5 +17,5 @@ fun KtType.isClassTypeWithClassId(classId: ClassId): Boolean {
}
private object DefaultTypeClassIds {
val UNIT = ClassId.topLevel(KotlinBuiltIns.FQ_NAMES.unit.toSafe())
}
val UNIT = ClassId.topLevel(KotlinBuiltInsNames.FqNames.unit.toSafe())
}
@@ -24,7 +24,7 @@ import com.intellij.psi.search.DelegatingGlobalSearchScope
import com.intellij.psi.search.FileTypeIndex
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.annotations.CalledInBackground
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.idea.KotlinFileType
import org.jetbrains.kotlin.idea.KotlinJvmBundle
import org.jetbrains.kotlin.idea.core.util.getKotlinJvmRuntimeMarkerClass
@@ -290,7 +290,7 @@ fun hasKotlinJsRuntimeInScope(module: Module): Boolean {
}
fun hasKotlinCommonRuntimeInScope(scope: GlobalSearchScope): Boolean {
return IDEVirtualFileFinder(scope).hasMetadataPackage(KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME)
return IDEVirtualFileFinder(scope).hasMetadataPackage(KotlinBuiltInsNames.BUILT_INS_PACKAGE_FQ_NAME)
}
class LibraryKindSearchScope(
@@ -29,7 +29,6 @@ import org.jetbrains.kotlin.platform.TargetPlatform
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
import org.jetbrains.kotlin.psi.KtCodeFragment
import org.jetbrains.kotlin.psi.externalDescriptors
import org.jetbrains.kotlin.resolve.ResolutionAnchorProvider
import org.jetbrains.kotlin.resolve.scopes.MemberScope
import org.jetbrains.kotlin.types.KotlinType
import org.jetbrains.kotlin.types.Variance
@@ -217,4 +216,4 @@ internal class DebugLabelPropertyDescriptor(
/*isActual = */false,
/*isExternal = */false,
/*isDelegated = */false
)
)
@@ -7,22 +7,22 @@ package org.jetbrains.kotlin.idea.debugger.sequence.trace.dsl
import com.intellij.debugger.streams.trace.dsl.Types
import com.intellij.debugger.streams.trace.impl.handler.type.*
import org.jetbrains.kotlin.builtins.KotlinBuiltIns.FQ_NAMES
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames.FqNames
object KotlinSequenceTypes : Types {
override val ANY: GenericType = ClassTypeImpl(FQ_NAMES.any.asString(), "kotlin.Any()")
override val ANY: GenericType = ClassTypeImpl(FqNames.any.asString(), "kotlin.Any()")
override val BOOLEAN: GenericType = ClassTypeImpl(FQ_NAMES._boolean.asString(), "false")
val BYTE: GenericType = ClassTypeImpl(FQ_NAMES._byte.asString(), "0")
val SHORT: GenericType = ClassTypeImpl(FQ_NAMES._short.asString(), "0")
val CHAR: GenericType = ClassTypeImpl(FQ_NAMES._char.asString(), "0.toChar()")
override val INT: GenericType = ClassTypeImpl(FQ_NAMES._int.asString(), "0")
override val LONG: GenericType = ClassTypeImpl(FQ_NAMES._long.asString(), "0L")
val FLOAT: GenericType = ClassTypeImpl(FQ_NAMES._float.asString(), "0.0f")
override val DOUBLE: GenericType = ClassTypeImpl(FQ_NAMES._double.asString(), "0.0")
override val STRING: GenericType = ClassTypeImpl(FQ_NAMES.string.asString(), "\"\"")
override val EXCEPTION: GenericType = ClassTypeImpl(FQ_NAMES.throwable.asString(), "kotlin.Throwable()")
override val VOID: GenericType = ClassTypeImpl(FQ_NAMES.unit.asString(), "Unit")
override val BOOLEAN: GenericType = ClassTypeImpl(FqNames._boolean.asString(), "false")
val BYTE: GenericType = ClassTypeImpl(FqNames._byte.asString(), "0")
val SHORT: GenericType = ClassTypeImpl(FqNames._short.asString(), "0")
val CHAR: GenericType = ClassTypeImpl(FqNames._char.asString(), "0.toChar()")
override val INT: GenericType = ClassTypeImpl(FqNames._int.asString(), "0")
override val LONG: GenericType = ClassTypeImpl(FqNames._long.asString(), "0L")
val FLOAT: GenericType = ClassTypeImpl(FqNames._float.asString(), "0.0f")
override val DOUBLE: GenericType = ClassTypeImpl(FqNames._double.asString(), "0.0")
override val STRING: GenericType = ClassTypeImpl(FqNames.string.asString(), "\"\"")
override val EXCEPTION: GenericType = ClassTypeImpl(FqNames.throwable.asString(), "kotlin.Throwable()")
override val VOID: GenericType = ClassTypeImpl(FqNames.unit.asString(), "Unit")
val NULLABLE_ANY: GenericType = nullable { ANY }
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.idea.conversion.copy
import com.intellij.psi.util.parents
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
@@ -119,10 +119,10 @@ class JavaContextDeclarationRenderer {
private fun StringBuilder.renderFqName(fqName: FqNameUnsafe) {
val stringFqName = when (fqName) {
KotlinBuiltIns.FQ_NAMES.unit -> "void"
KotlinBuiltInsNames.FqNames.unit -> "void"
else -> JavaToKotlinClassMap.mapKotlinToJava(fqName)?.asSingleFqName() ?: fqName.asString()
}
append(stringFqName)
}
}
}
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.idea.inspections
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.project.Project
import com.intellij.psi.codeStyle.CodeStyleManager
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.descriptors.DeclarationDescriptorWithVisibility
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
@@ -110,7 +110,7 @@ class DeprecatedCallableAddReplaceWithInspection : AbstractApplicabilityBasedIns
val descriptor = resolvedCall.resultingDescriptor.containingDeclaration
val descriptorFqName = DescriptorUtils.getFqName(descriptor).toSafe()
if (descriptorFqName != KotlinBuiltIns.FQ_NAMES.deprecated) continue
if (descriptorFqName != KotlinBuiltInsNames.FqNames.deprecated) continue
val args = resolvedCall.valueArguments.mapKeys { it.key.name.asString() }
val replaceWithArguments = args["replaceWith"] /*TODO: kotlin.deprecated::replaceWith.name*/
@@ -231,6 +231,6 @@ class DeprecatedCallableAddReplaceWithInspection : AbstractApplicabilityBasedIns
}
companion object {
val DEPRECATED_NAME = KotlinBuiltIns.FQ_NAMES.deprecated.shortName()
val DEPRECATED_NAME = KotlinBuiltInsNames.FqNames.deprecated.shortName()
}
}
}
@@ -12,7 +12,7 @@ import com.intellij.codeInspection.ProblemsHolder
import com.intellij.openapi.module.ModuleUtilCore
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiElementVisitor
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.config.ApiVersion
import org.jetbrains.kotlin.idea.KotlinBundle
import org.jetbrains.kotlin.idea.caches.resolve.analyze
@@ -88,14 +88,14 @@ class JavaCollectionsStaticMethodInspection : AbstractKotlinInspection() {
}
private fun KotlinType.isMutableList() =
constructor.declarationDescriptor?.fqNameSafe == KotlinBuiltIns.FQ_NAMES.mutableList
constructor.declarationDescriptor?.fqNameSafe == KotlinBuiltInsNames.FqNames.mutableList
private fun KotlinType.isMutableListOrSubtype(): Boolean {
return isMutableList() || constructor.supertypes.reversed().any { it.isMutableList() }
}
private fun KotlinType.isList() =
constructor.declarationDescriptor?.fqNameSafe == KotlinBuiltIns.FQ_NAMES.list
constructor.declarationDescriptor?.fqNameSafe == KotlinBuiltInsNames.FqNames.list
private fun KotlinType.isListOrSubtype(): Boolean {
return isList() || constructor.supertypes.reversed().any { it.isList() }
@@ -12,6 +12,7 @@ import com.intellij.codeInspection.ProblemsHolder
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiElementVisitor
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.idea.KotlinBundle
import org.jetbrains.kotlin.idea.MainFunctionDetector
@@ -76,7 +77,7 @@ private class ChangeMainFunctionReturnTypeToUnitFix(private val hasExplicitRetur
if (function.hasBlockBody()) {
function.typeReference = null
} else {
function.setType(KotlinBuiltIns.FQ_NAMES.unit.asString())
function.setType(KotlinBuiltInsNames.FqNames.unit.asString())
}
}
}
@@ -10,7 +10,7 @@ import com.intellij.codeInspection.*
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.text.StringUtil
import com.intellij.psi.PsiElementVisitor
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.diagnostics.DiagnosticFactory
import org.jetbrains.kotlin.diagnostics.Errors.*
import org.jetbrains.kotlin.idea.KotlinBundle
@@ -27,7 +27,7 @@ class MigrateDiagnosticSuppressionInspection : AbstractKotlinInspection(), Clean
if (annotationEntry.calleeExpression?.text != "Suppress") return
val context = annotationEntry.analyze(BodyResolveMode.PARTIAL)
val descriptor = context[BindingContext.ANNOTATION, annotationEntry] ?: return
if (descriptor.fqName != KotlinBuiltIns.FQ_NAMES.suppress) return
if (descriptor.fqName != KotlinBuiltInsNames.FqNames.suppress) return
for (argument in annotationEntry.valueArguments) {
val expression = argument.getArgumentExpression() as? KtStringTemplateExpression ?: continue
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.idea.inspections
import com.intellij.codeInspection.*
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiElementVisitor
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.idea.KotlinBundle
import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.caches.resolve.resolveToCall
@@ -43,7 +43,7 @@ class RedundantUnitExpressionInspection : AbstractKotlinInspection(), CleanupLoc
val parent = referenceExpression.parent ?: return false
if (parent is KtReturnExpression) {
val expectedReturnType = parent.expectedReturnType() ?: return false
return expectedReturnType.nameIfStandardType != KotlinBuiltIns.FQ_NAMES.any.shortName() && !expectedReturnType.isMarkedNullable
return expectedReturnType.nameIfStandardType != KotlinBuiltInsNames.FqNames.any.shortName() && !expectedReturnType.isMarkedNullable
}
if (parent is KtBlockExpression) {
@@ -73,7 +73,7 @@ class RedundantUnitExpressionInspection : AbstractKotlinInspection(), CleanupLoc
}
private fun KtExpression.isUnitLiteral(): Boolean =
KotlinBuiltIns.FQ_NAMES.unit.shortName() == (this as? KtNameReferenceExpression)?.getReferencedNameAsName()
KotlinBuiltInsNames.FqNames.unit.shortName() == (this as? KtNameReferenceExpression)?.getReferencedNameAsName()
private fun KtReturnExpression.expectedReturnType(): KotlinType? {
val functionDescriptor = getTargetFunctionDescriptor(analyze()) ?: return null
@@ -16,6 +16,7 @@ import com.intellij.openapi.project.Project
import com.intellij.profile.codeInspection.ProjectInspectionProfileManager
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.idea.KotlinBundle
import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.core.canOmitDeclaredType
@@ -168,7 +169,7 @@ class UseExpressionBodyInspection(private val convertEmptyToUnit: Boolean) : Abs
if (!declaration.hasDeclaredReturnType() && declaration is KtNamedFunction && block.statements.isNotEmpty()) {
val valueType = value.analyze().getType(value)
if (valueType == null || !KotlinBuiltIns.isUnit(valueType)) {
declaration.setType(KotlinBuiltIns.FQ_NAMES.unit.asString(), shortenReferences = true)
declaration.setType(KotlinBuiltInsNames.FqNames.unit.asString(), shortenReferences = true)
}
}
@@ -218,4 +219,4 @@ class UseExpressionBodyInspection(private val convertEmptyToUnit: Boolean) : Abs
}
}
}
}
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.idea.inspections.collections
import com.intellij.codeInspection.ProblemHighlightType
import com.intellij.openapi.util.TextRange
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.idea.KotlinBundle
import org.jetbrains.kotlin.idea.quickfix.ReplaceSelectorOfQualifiedExpressionFix
import org.jetbrains.kotlin.psi.KtExpression
@@ -17,9 +17,9 @@ import org.jetbrains.kotlin.psi.psiUtil.startOffset
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
import org.jetbrains.kotlin.resolve.calls.callUtil.getType
import org.jetbrains.kotlin.resolve.calls.inference.model.TypeVariableTypeConstructor
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
import org.jetbrains.kotlin.types.KotlinType
import org.jetbrains.kotlin.resolve.calls.inference.model.TypeVariableTypeConstructor
import org.jetbrains.kotlin.types.TypeUtils
import org.jetbrains.kotlin.types.isFlexible
import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf
@@ -96,5 +96,5 @@ class UselessCallOnCollectionInspection : AbstractUselessCallInspection() {
}
}
private fun KotlinType?.isList() = this?.constructor?.declarationDescriptor?.fqNameSafe == KotlinBuiltIns.FQ_NAMES.list
}
private fun KotlinType?.isList() = this?.constructor?.declarationDescriptor?.fqNameSafe == KotlinBuiltInsNames.FqNames.list
}
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.idea.intentions
import com.intellij.openapi.editor.Editor
import org.jetbrains.kotlin.KtNodeTypes
import org.jetbrains.kotlin.builtins.KOTLIN_REFLECT_FQ_NAME
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames.KOTLIN_REFLECT_FQ_NAME
import org.jetbrains.kotlin.builtins.isExtensionFunctionType
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
import org.jetbrains.kotlin.descriptors.ClassDescriptor
@@ -140,4 +140,4 @@ class ConvertReferenceToLambdaIntention : SelfTargetingOffsetIndependentIntentio
companion object {
private val SOURCE_RENDERER = IdeDescriptorRenderers.SOURCE_CODE
}
}
}
@@ -14,6 +14,7 @@ import com.intellij.openapi.util.TextRange
import com.intellij.psi.PsiComment
import com.intellij.psi.PsiDocumentManager
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.descriptors.CallableDescriptor
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
import org.jetbrains.kotlin.idea.KotlinBundle
@@ -224,7 +225,7 @@ class SpecifyTypeExplicitlyIntention : SelfTargetingRangeIntention<KtCallableDec
val project = declaration.project
val expression = createTypeExpressionForTemplate(exprType, declaration, useTypesFromOverridden = true) ?: return
declaration.setType(KotlinBuiltIns.FQ_NAMES.any.asString())
declaration.setType(KotlinBuiltInsNames.FqNames.any.asString())
PsiDocumentManager.getInstance(project).commitAllDocuments()
PsiDocumentManager.getInstance(project).doPostponedOperationsAndUnblockDocument(editor.document)
@@ -9,6 +9,7 @@ import com.intellij.psi.PsiElement
import com.intellij.psi.tree.IElementType
import org.jetbrains.kotlin.KtNodeTypes
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.builtins.isKSuspendFunctionType
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.idea.caches.resolve.analyze
@@ -294,7 +295,7 @@ private val ARRAY_OF_METHODS = setOf(ArrayFqNames.ARRAY_OF_FUNCTION) +
fun KtCallExpression.isArrayOfMethod(): Boolean {
val resolvedCall = resolveToCall() ?: return false
val descriptor = resolvedCall.candidateDescriptor
return (descriptor.containingDeclaration as? PackageFragmentDescriptor)?.fqName == KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME &&
return (descriptor.containingDeclaration as? PackageFragmentDescriptor)?.fqName == KotlinBuiltInsNames.BUILT_INS_PACKAGE_FQ_NAME &&
ARRAY_OF_METHODS.contains(descriptor.name)
}
@@ -357,7 +358,7 @@ internal fun Sequence<PsiElement>.lastWithPersistedElementOrNull(elementShouldPe
}
fun KotlinType.reflectToRegularFunctionType(): KotlinType {
val isTypeAnnotatedWithExtensionFunctionType = annotations.findAnnotation(KotlinBuiltIns.FQ_NAMES.extensionFunctionType) != null
val isTypeAnnotatedWithExtensionFunctionType = annotations.findAnnotation(KotlinBuiltInsNames.FqNames.extensionFunctionType) != null
val parameterCount = if (isTypeAnnotatedWithExtensionFunctionType) arguments.size - 2 else arguments.size - 1
val classDescriptor =
if (isKSuspendFunctionType) builtIns.getSuspendFunction(parameterCount) else builtIns.getFunction(parameterCount)
@@ -5,7 +5,7 @@
package org.jetbrains.kotlin.idea.intentions.loopToCallChain.result
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.descriptors.CallableDescriptor
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
@@ -138,7 +138,7 @@ class AddToCollectionTransformation(
when (collectionKind) {
CollectionKind.LIST -> {
when {
canChangeInitializerType(collectionInitialization, KotlinBuiltIns.FQ_NAMES.list, state.outerLoop) -> {
canChangeInitializerType(collectionInitialization, KotlinBuiltInsNames.FqNames.list, state.outerLoop) -> {
return if (argumentIsInputVariable) {
val assignToList = AssignToListTransformation(state.outerLoop, collectionInitialization, state.lazySequence)
TransformationMatch.Result(assignToList)
@@ -156,7 +156,7 @@ class AddToCollectionTransformation(
}
}
canChangeInitializerType(collectionInitialization, KotlinBuiltIns.FQ_NAMES.mutableList, state.outerLoop) -> {
canChangeInitializerType(collectionInitialization, KotlinBuiltInsNames.FqNames.mutableList, state.outerLoop) -> {
if (argumentIsInputVariable) {
val transformation = AssignToMutableListTransformation(state.outerLoop, collectionInitialization)
return TransformationMatch.Result(transformation)
@@ -167,11 +167,11 @@ class AddToCollectionTransformation(
CollectionKind.SET -> {
val assignToSetTransformation = when {
canChangeInitializerType(collectionInitialization, KotlinBuiltIns.FQ_NAMES.set, state.outerLoop) -> {
canChangeInitializerType(collectionInitialization, KotlinBuiltInsNames.FqNames.set, state.outerLoop) -> {
AssignToSetTransformation(state.outerLoop, collectionInitialization)
}
canChangeInitializerType(collectionInitialization, KotlinBuiltIns.FQ_NAMES.mutableSet, state.outerLoop) -> {
canChangeInitializerType(collectionInitialization, KotlinBuiltInsNames.FqNames.mutableSet, state.outerLoop) -> {
AssignToMutableSetTransformation(state.outerLoop, collectionInitialization)
}
@@ -214,13 +214,13 @@ class AddToCollectionTransformation(
private fun KtExpression?.isRangeLiteral() = this is KtBinaryExpression && operationToken == KtTokens.RANGE
private fun DeclarationDescriptor.isCollectionAdd(): Boolean {
if ((containingDeclaration as? ClassDescriptor)?.fqNameSafe == KotlinBuiltIns.FQ_NAMES.mutableCollection) {
if ((containingDeclaration as? ClassDescriptor)?.fqNameSafe == KotlinBuiltInsNames.FqNames.mutableCollection) {
return true
}
val overrides = (this as? CallableDescriptor)?.overriddenTreeUniqueAsSequence(true) ?: return false
return overrides.any {
(it.containingDeclaration as? ClassDescriptor)?.fqNameSafe == KotlinBuiltIns.FQ_NAMES.mutableCollection
(it.containingDeclaration as? ClassDescriptor)?.fqNameSafe == KotlinBuiltInsNames.FqNames.mutableCollection
}
}
@@ -5,23 +5,23 @@
package org.jetbrains.kotlin.idea.kdoc
import org.jetbrains.kotlin.builtins.KotlinBuiltIns.FQ_NAMES
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames.FqNames
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor
import org.jetbrains.kotlin.resolve.DescriptorUtils
private val boringBuiltinClasses = setOf(
FQ_NAMES.unit,
FQ_NAMES._byte,
FQ_NAMES._short,
FQ_NAMES._int,
FQ_NAMES._long,
FQ_NAMES._char,
FQ_NAMES._boolean,
FQ_NAMES._float,
FQ_NAMES._double,
FQ_NAMES.string,
FQ_NAMES.array,
FQ_NAMES.any
FqNames.unit,
FqNames._byte,
FqNames._short,
FqNames._int,
FqNames._long,
FqNames._char,
FqNames._boolean,
FqNames._float,
FqNames._double,
FqNames.string,
FqNames.array,
FqNames.any
)
fun ClassifierDescriptor.isBoringBuiltinClass(): Boolean = DescriptorUtils.getFqName(this) in boringBuiltinClasses
fun ClassifierDescriptor.isBoringBuiltinClass(): Boolean = DescriptorUtils.getFqName(this) in boringBuiltinClasses
@@ -11,7 +11,7 @@ import com.intellij.psi.*
import com.intellij.psi.search.GlobalSearchScope
import com.intellij.psi.search.searches.ReferencesSearch
import org.jetbrains.kotlin.asJava.LightClassUtil
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
import org.jetbrains.kotlin.descriptors.annotations.KotlinTarget
import org.jetbrains.kotlin.diagnostics.Diagnostic
@@ -151,11 +151,11 @@ private fun KtAnnotationEntry.getActualTargetList(): List<KotlinTarget> {
}
private fun KtClass.addAnnotationTargets(annotationTargets: List<KotlinTarget>, psiFactory: KtPsiFactory) {
val retentionAnnotationName = KotlinBuiltIns.FQ_NAMES.retention.shortName().asString()
val retentionAnnotationName = KotlinBuiltInsNames.FqNames.retention.shortName().asString()
if (annotationTargets.any { it == KotlinTarget.EXPRESSION }) {
val retentionEntry = annotationEntries.firstOrNull { it.typeReference?.text == retentionAnnotationName }
val newRetentionEntry = psiFactory.createAnnotationEntry(
"@$retentionAnnotationName(${KotlinBuiltIns.FQ_NAMES.annotationRetention.shortName()}.${AnnotationRetention.SOURCE.name})"
"@$retentionAnnotationName(${KotlinBuiltInsNames.FqNames.annotationRetention.shortName()}.${AnnotationRetention.SOURCE.name})"
)
if (retentionEntry == null) {
addAnnotationEntry(newRetentionEntry)
@@ -164,7 +164,7 @@ private fun KtClass.addAnnotationTargets(annotationTargets: List<KotlinTarget>,
}
}
val targetAnnotationName = KotlinBuiltIns.FQ_NAMES.target.shortName().asString()
val targetAnnotationName = KotlinBuiltInsNames.FqNames.target.shortName().asString()
val targetAnnotationEntry = annotationEntries.find { it.typeReference?.text == targetAnnotationName } ?: run {
val text = "@$targetAnnotationName${annotationTargets.toArgumentListString()}"
addAnnotationEntry(psiFactory.createAnnotationEntry(text))
@@ -185,4 +185,4 @@ private fun KtClass.addAnnotationTargets(annotationTargets: List<KotlinTarget>,
private fun List<KotlinTarget>.toArgumentListString() = joinToString(separator = ", ", prefix = "(", postfix = ")") { it.asNameString() }
private fun KotlinTarget.asNameString() = "${KotlinBuiltIns.FQ_NAMES.annotationTarget.shortName().asString()}.$name"
private fun KotlinTarget.asNameString() = "${KotlinBuiltInsNames.FqNames.annotationTarget.shortName().asString()}.$name"
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.idea.quickfix
import com.intellij.codeInsight.intention.IntentionAction
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.descriptors.annotations.KotlinTarget
import org.jetbrains.kotlin.diagnostics.Diagnostic
import org.jetbrains.kotlin.idea.KotlinBundle
@@ -22,14 +22,14 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
object RestrictedRetentionForExpressionAnnotationFactory : KotlinIntentionActionsFactory() {
private val sourceRetention = "${KotlinBuiltIns.FQ_NAMES.annotationRetention.asString()}.${AnnotationRetention.SOURCE.name}"
private val sourceRetentionAnnotation = "@${KotlinBuiltIns.FQ_NAMES.retention.asString()}($sourceRetention)"
private val sourceRetention = "${KotlinBuiltInsNames.FqNames.annotationRetention.asString()}.${AnnotationRetention.SOURCE.name}"
private val sourceRetentionAnnotation = "@${KotlinBuiltInsNames.FqNames.retention.asString()}($sourceRetention)"
override fun doCreateActions(diagnostic: Diagnostic): List<IntentionAction> {
val annotationEntry = diagnostic.psiElement as? KtAnnotationEntry ?: return emptyList()
val containingClass = annotationEntry.containingClass() ?: return emptyList()
val retentionAnnotation = containingClass.annotation(KotlinBuiltIns.FQ_NAMES.retention)
val targetAnnotation = containingClass.annotation(KotlinBuiltIns.FQ_NAMES.target)
val retentionAnnotation = containingClass.annotation(KotlinBuiltInsNames.FqNames.retention)
val targetAnnotation = containingClass.annotation(KotlinBuiltInsNames.FqNames.target)
val expressionTargetArgument = if (targetAnnotation != null) findExpressionTargetArgument(targetAnnotation) else null
return listOfNotNull(
@@ -114,4 +114,4 @@ object RestrictedRetentionForExpressionAnnotationFactory : KotlinIntentionAction
}
}
}
}
}
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.idea.quickfix
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.codegen.ExpressionCodegen
import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.idea.KotlinBundle
@@ -26,10 +27,10 @@ import org.jetbrains.kotlin.types.typeUtil.isUnsignedNumberType
import kotlin.math.floor
private val valueRanges = mapOf(
KotlinBuiltIns.FQ_NAMES._byte to Byte.MIN_VALUE.toLong()..Byte.MAX_VALUE.toLong(),
KotlinBuiltIns.FQ_NAMES._short to Short.MIN_VALUE.toLong()..Short.MAX_VALUE.toLong(),
KotlinBuiltIns.FQ_NAMES._int to Int.MIN_VALUE.toLong()..Int.MAX_VALUE.toLong(),
KotlinBuiltIns.FQ_NAMES._long to Long.MIN_VALUE..Long.MAX_VALUE
KotlinBuiltInsNames.FqNames._byte to Byte.MIN_VALUE.toLong()..Byte.MAX_VALUE.toLong(),
KotlinBuiltInsNames.FqNames._short to Short.MIN_VALUE.toLong()..Short.MAX_VALUE.toLong(),
KotlinBuiltInsNames.FqNames._int to Int.MIN_VALUE.toLong()..Int.MAX_VALUE.toLong(),
KotlinBuiltInsNames.FqNames._long to Long.MIN_VALUE..Long.MAX_VALUE
)
class WrongPrimitiveLiteralFix(element: KtConstantExpression, type: KotlinType) : KotlinQuickFixAction<KtExpression>(element) {
@@ -9,7 +9,7 @@ import com.intellij.codeInsight.intention.IntentionAction
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.diagnostics.Diagnostic
import org.jetbrains.kotlin.diagnostics.Errors
import org.jetbrains.kotlin.idea.KotlinBundle
@@ -200,7 +200,7 @@ class MigrateExternalExtensionFix(declaration: KtNamedDeclaration) : KotlinQuick
}
if (declaration is KtFunction) {
declaration.addAnnotation(KotlinBuiltIns.FQ_NAMES.suppress, "\"NOTHING_TO_INLINE\"")
declaration.addAnnotation(KotlinBuiltInsNames.FqNames.suppress, "\"NOTHING_TO_INLINE\"")
}
convertNativeAnnotationToJsName(declaration, annotations)
@@ -12,6 +12,7 @@ import com.intellij.psi.PsiElement
import com.intellij.psi.search.GlobalSearchScope
import com.intellij.psi.search.searches.ReferencesSearch
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltInsNames
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.impl.TypeAliasConstructorDescriptor
import org.jetbrains.kotlin.diagnostics.Diagnostic
@@ -79,7 +80,7 @@ abstract class DeprecatedSymbolUsageFixBase(
contextElement: KtReferenceExpression?,
replaceInWholeProject: Boolean
): ReplaceWith? {
val annotation = descriptor.annotations.findAnnotation(KotlinBuiltIns.FQ_NAMES.deprecated) ?: return null
val annotation = descriptor.annotations.findAnnotation(KotlinBuiltInsNames.FqNames.deprecated) ?: return null
val replaceWithValue =
annotation.argumentValue(Deprecated::replaceWith.name)?.safeAs<AnnotationValue>()?.value ?: return null
val pattern = replaceWithValue.argumentValue(kotlin.ReplaceWith::expression.name)?.safeAs<StringValue>()?.value ?: return null