User: joe Date: 24 Sep 23 12:19 Revision: 9793e59853492b6d6b01bda5ab437c7438c18c12 Summary: Replace some usages of PsiClassType.resolve() with PsiType.equalsToText() TeamCity URL: https://ci.mcdev.io/viewModification.html?tab=vcsModificationFiles&modId=8774&personal=false Index: src/main/kotlin/platform/bukkit/BukkitModule.kt =================================================================== --- src/main/kotlin/platform/bukkit/BukkitModule.kt (revision b13eb2594830de7089508bd1179550fc1427566a) +++ src/main/kotlin/platform/bukkit/BukkitModule.kt (revision 9793e59853492b6d6b01bda5ab437c7438c18c12) @@ -92,7 +92,7 @@ chosenClass: PsiClass, chosenName: String, data: GenerationData?, - ): PsiMethod? { + ): PsiMethod { val bukkitData = data as BukkitGenerationData val method = generateBukkitStyleEventListenerMethod( @@ -101,7 +101,7 @@ project, BukkitConstants.HANDLER_ANNOTATION, bukkitData.isIgnoreCanceled, - ) ?: return null + ) if (bukkitData.eventPriority != "NORMAL") { val list = method.modifierList @@ -217,8 +217,8 @@ project: Project, annotationName: String, setIgnoreCancelled: Boolean, - ): PsiMethod? { - val newMethod = createVoidMethodWithParameterType(project, chosenName, chosenClass) ?: return null + ): PsiMethod { + val newMethod = createVoidMethodWithParameterType(project, chosenName, chosenClass) val modifierList = newMethod.modifierList val annotation = modifierList.addAnnotation(annotationName) Index: src/main/kotlin/platform/forge/ForgeModule.kt =================================================================== --- src/main/kotlin/platform/forge/ForgeModule.kt (revision b13eb2594830de7089508bd1179550fc1427566a) +++ src/main/kotlin/platform/forge/ForgeModule.kt (revision 9793e59853492b6d6b01bda5ab437c7438c18c12) @@ -163,10 +163,10 @@ chosenClass: PsiClass, chosenName: String, data: GenerationData?, - ): PsiMethod? { + ): PsiMethod { val isFmlEvent = chosenClass.extendsOrImplements(ForgeConstants.FML_EVENT) - val method = createVoidMethodWithParameterType(project, chosenName, chosenClass) ?: return null + val method = createVoidMethodWithParameterType(project, chosenName, chosenClass) val modifierList = method.modifierList if (isFmlEvent) { Index: src/main/kotlin/platform/mcp/inspections/StackEmptyInspection.kt =================================================================== --- src/main/kotlin/platform/mcp/inspections/StackEmptyInspection.kt (revision b13eb2594830de7089508bd1179550fc1427566a) +++ src/main/kotlin/platform/mcp/inspections/StackEmptyInspection.kt (revision 9793e59853492b6d6b01bda5ab437c7438c18c12) @@ -32,7 +32,6 @@ import com.intellij.psi.JavaPsiFacade import com.intellij.psi.JavaTokenType import com.intellij.psi.PsiBinaryExpression -import com.intellij.psi.PsiClassType import com.intellij.psi.PsiExpression import com.intellij.psi.PsiField import com.intellij.psi.PsiReferenceExpression @@ -118,7 +117,7 @@ } private fun isExpressionStack(expression: PsiExpression?): Boolean { - return (expression?.type as? PsiClassType)?.resolve()?.fullQualifiedName == STACK_FQ_NAME + return expression?.type?.equalsToText(STACK_FQ_NAME) == true } private fun isExpressionEmptyConstant(expression: PsiExpression?): Boolean { Index: src/main/kotlin/platform/mixin/config/inspection/ConfigValueInspection.kt =================================================================== --- src/main/kotlin/platform/mixin/config/inspection/ConfigValueInspection.kt (revision b13eb2594830de7089508bd1179550fc1427566a) +++ src/main/kotlin/platform/mixin/config/inspection/ConfigValueInspection.kt (revision 9793e59853492b6d6b01bda5ab437c7438c18c12) @@ -40,7 +40,6 @@ import com.intellij.psi.CommonClassNames.JAVA_LANG_LONG import com.intellij.psi.CommonClassNames.JAVA_LANG_SHORT import com.intellij.psi.CommonClassNames.JAVA_LANG_STRING -import com.intellij.psi.CommonClassNames.JAVA_LANG_STRING_SHORT import com.intellij.psi.PsiArrayType import com.intellij.psi.PsiClassType import com.intellij.psi.PsiElementVisitor @@ -95,18 +94,15 @@ return true // Idk, it's fine I guess } - if (type.className == JAVA_LANG_STRING_SHORT && type.resolve()?.qualifiedName == JAVA_LANG_STRING) { + if (type.equalsToText(JAVA_LANG_STRING)) { return value is JsonStringLiteral } - if (type.className == "Boolean" && type.resolve()?.qualifiedName == CommonClassNames.JAVA_LANG_BOOLEAN) { + if (type.equalsToText(CommonClassNames.JAVA_LANG_BOOLEAN)) { return value is JsonBooleanLiteral || value is JsonNullLiteral } - if ( - shortNumberNames.contains(type.className) && - qualifiedNumberNames.contains(type.resolve()?.qualifiedName) - ) { + if (qualifiedNumberNames.any(type::equalsToText)) { return value is JsonNumberLiteral || value is JsonNullLiteral } @@ -114,8 +110,7 @@ return value is JsonObject } - private val shortNumberNames = setOf("Byte", "Character", "Double", "Float", "Integer", "Long", "Short") - private val qualifiedNumberNames = setOf( + private val qualifiedNumberNames = listOf( JAVA_LANG_BYTE, JAVA_LANG_CHARACTER, JAVA_LANG_DOUBLE, Index: src/main/kotlin/platform/mixin/folding/MixinObjectCastFoldingBuilder.kt =================================================================== --- src/main/kotlin/platform/mixin/folding/MixinObjectCastFoldingBuilder.kt (revision b13eb2594830de7089508bd1179550fc1427566a) +++ src/main/kotlin/platform/mixin/folding/MixinObjectCastFoldingBuilder.kt (revision 9793e59853492b6d6b01bda5ab437c7438c18c12) @@ -28,7 +28,6 @@ import com.intellij.openapi.util.TextRange import com.intellij.psi.CommonClassNames import com.intellij.psi.JavaRecursiveElementWalkingVisitor -import com.intellij.psi.PsiClassType import com.intellij.psi.PsiElement import com.intellij.psi.PsiJavaFile import com.intellij.psi.PsiTypeCastExpression @@ -74,7 +73,7 @@ } val innerCast = expression.operand as? PsiTypeCastExpression ?: return - if ((innerCast.type as? PsiClassType)?.resolve()?.qualifiedName == CommonClassNames.JAVA_LANG_OBJECT) { + if (innerCast.type?.equalsToText(CommonClassNames.JAVA_LANG_OBJECT) == true) { // Fold the two casts val start = (expression as? CompositeElement)?.findChildByRole(ChildRole.LPARENTH) ?: return Index: src/main/kotlin/platform/mixin/handlers/InvokerHandler.kt =================================================================== --- src/main/kotlin/platform/mixin/handlers/InvokerHandler.kt (revision b13eb2594830de7089508bd1179550fc1427566a) +++ src/main/kotlin/platform/mixin/handlers/InvokerHandler.kt (revision 9793e59853492b6d6b01bda5ab437c7438c18c12) @@ -30,9 +30,7 @@ import com.demonwav.mcdev.util.decapitalize import com.demonwav.mcdev.util.descriptor import com.demonwav.mcdev.util.findAnnotation -import com.demonwav.mcdev.util.fullQualifiedName import com.intellij.psi.PsiAnnotation -import com.intellij.psi.PsiClassType import com.intellij.psi.PsiMember import com.intellij.psi.PsiMethod import com.intellij.psi.SmartPsiElementPointer @@ -55,7 +53,7 @@ val name = getInvokerTargetName(annotation, member) ?: return emptyList() val constructor = name == "" if (constructor && - (member.returnType as? PsiClassType)?.resolve()?.fullQualifiedName?.replace('.', '/') != targetClass.name + member.returnType?.equalsToText(targetClass.name.replace('/', '.').replace('$', '.')) != true ) { return emptyList() } Index: src/main/kotlin/platform/mixin/inspection/MixinCancellableInspection.kt =================================================================== --- src/main/kotlin/platform/mixin/inspection/MixinCancellableInspection.kt (revision b13eb2594830de7089508bd1179550fc1427566a) +++ src/main/kotlin/platform/mixin/inspection/MixinCancellableInspection.kt (revision 9793e59853492b6d6b01bda5ab437c7438c18c12) @@ -23,7 +23,6 @@ import com.demonwav.mcdev.platform.mixin.util.MixinConstants.Annotations.INJECT import com.demonwav.mcdev.platform.mixin.util.MixinConstants.Classes.CALLBACK_INFO import com.demonwav.mcdev.platform.mixin.util.MixinConstants.Classes.CALLBACK_INFO_RETURNABLE -import com.demonwav.mcdev.util.fullQualifiedName import com.intellij.codeInspection.LocalQuickFixAndIntentionActionOnPsiElement import com.intellij.codeInspection.ProblemHighlightType import com.intellij.codeInspection.ProblemsHolder @@ -58,8 +57,7 @@ val isCancellable = cancellableAttribute.value == true val ciParam = method.parameterList.parameters.firstOrNull { - val className = (it.type as? PsiClassType)?.fullQualifiedName ?: return@firstOrNull false - className == CALLBACK_INFO || className == CALLBACK_INFO_RETURNABLE + it.type.equalsToText(CALLBACK_INFO) || it.type.equalsToText(CALLBACK_INFO_RETURNABLE) } ?: return val ciType = (ciParam.type as? PsiClassType)?.resolve() ?: return Index: src/main/kotlin/platform/mixin/inspection/injector/InjectCouldBeOverwriteInspection.kt =================================================================== --- src/main/kotlin/platform/mixin/inspection/injector/InjectCouldBeOverwriteInspection.kt (revision b13eb2594830de7089508bd1179550fc1427566a) +++ src/main/kotlin/platform/mixin/inspection/injector/InjectCouldBeOverwriteInspection.kt (revision 9793e59853492b6d6b01bda5ab437c7438c18c12) @@ -360,11 +360,8 @@ } companion object { - private fun isCallbackInfoParam(param: PsiParameter): Boolean { - val type = (param.type as? PsiClassType)?.resolve() ?: return false - val qName = type.qualifiedName ?: return false - return qName == MixinConstants.Classes.CALLBACK_INFO || - qName == MixinConstants.Classes.CALLBACK_INFO_RETURNABLE + private fun isCallbackInfoParam(param: PsiParameter) = + param.type.equalsToText(MixinConstants.Classes.CALLBACK_INFO) || + param.type.equalsToText(MixinConstants.Classes.CALLBACK_INFO_RETURNABLE) - } - } + } +} -} Index: src/main/kotlin/platform/mixin/inspection/injector/InvalidInjectorMethodSignatureInspection.kt =================================================================== --- src/main/kotlin/platform/mixin/inspection/injector/InvalidInjectorMethodSignatureInspection.kt (revision b13eb2594830de7089508bd1179550fc1427566a) +++ src/main/kotlin/platform/mixin/inspection/injector/InvalidInjectorMethodSignatureInspection.kt (revision 9793e59853492b6d6b01bda5ab437c7438c18c12) @@ -32,7 +32,6 @@ import com.demonwav.mcdev.platform.mixin.util.isConstructor import com.demonwav.mcdev.platform.mixin.util.isMixinExtrasSugar import com.demonwav.mcdev.util.Parameter -import com.demonwav.mcdev.util.fullQualifiedName import com.demonwav.mcdev.util.synchronize import com.intellij.codeInsight.intention.FileModifier.SafeFieldForPreview import com.intellij.codeInsight.intention.QuickFixFactory @@ -43,7 +42,6 @@ import com.intellij.openapi.project.Project import com.intellij.psi.JavaElementVisitor import com.intellij.psi.JavaPsiFacade -import com.intellij.psi.PsiClassType import com.intellij.psi.PsiElementVisitor import com.intellij.psi.PsiMethod import com.intellij.psi.PsiModifier @@ -307,9 +305,8 @@ val parameters = descriptor.psiElement as PsiParameterList // We want to preserve captured locals val locals = parameters.parameters.dropWhile { - val fqname = (it.type as? PsiClassType)?.fullQualifiedName ?: return@dropWhile true - return@dropWhile fqname != MixinConstants.Classes.CALLBACK_INFO && - fqname != MixinConstants.Classes.CALLBACK_INFO_RETURNABLE + !it.type.equalsToText(MixinConstants.Classes.CALLBACK_INFO) && + !it.type.equalsToText(MixinConstants.Classes.CALLBACK_INFO_RETURNABLE) }.drop(1) // the first element in the list is the CallbackInfo but we don't want it .takeWhile { !it.isMixinExtrasSugar } Index: src/main/kotlin/platform/mixin/inspection/mixinextras/WrongOperationParametersInspection.kt =================================================================== --- src/main/kotlin/platform/mixin/inspection/mixinextras/WrongOperationParametersInspection.kt (revision b13eb2594830de7089508bd1179550fc1427566a) +++ src/main/kotlin/platform/mixin/inspection/mixinextras/WrongOperationParametersInspection.kt (revision 9793e59853492b6d6b01bda5ab437c7438c18c12) @@ -32,7 +32,6 @@ import com.intellij.psi.JavaPsiFacade import com.intellij.psi.PsiCallExpression import com.intellij.psi.PsiClass -import com.intellij.psi.PsiClassType import com.intellij.psi.PsiElement import com.intellij.psi.PsiExpressionList import com.intellij.psi.PsiField @@ -68,7 +67,7 @@ val (operationIndex, operationParam) = containingMethod.parameterList.parameters.asSequence() .withIndex() .firstOrNull { (_, param) -> - (param.type as? PsiClassType)?.resolve()?.qualifiedName == MixinConstants.MixinExtras.OPERATION + param.type.equalsToText(MixinConstants.MixinExtras.OPERATION) } ?: return val (expectedParamTypes, paramNames) = containingMethod.parameterList.parameters.asSequence() .take(operationIndex) Index: src/main/kotlin/platform/sponge/SpongeModule.kt =================================================================== --- src/main/kotlin/platform/sponge/SpongeModule.kt (revision b13eb2594830de7089508bd1179550fc1427566a) +++ src/main/kotlin/platform/sponge/SpongeModule.kt (revision 9793e59853492b6d6b01bda5ab437c7438c18c12) @@ -61,8 +61,8 @@ chosenClass: PsiClass, chosenName: String, data: GenerationData?, - ): PsiMethod? { - val method = createVoidMethodWithParameterType(project, chosenName, chosenClass) ?: return null + ): PsiMethod { + val method = createVoidMethodWithParameterType(project, chosenName, chosenClass) val modifierList = method.modifierList val listenerAnnotation = modifierList.addAnnotation("org.spongepowered.api.event.Listener") Index: src/main/kotlin/platform/sponge/inspection/SpongeLoggingInspection.kt =================================================================== --- src/main/kotlin/platform/sponge/inspection/SpongeLoggingInspection.kt (revision b13eb2594830de7089508bd1179550fc1427566a) +++ src/main/kotlin/platform/sponge/inspection/SpongeLoggingInspection.kt (revision 9793e59853492b6d6b01bda5ab437c7438c18c12) @@ -22,14 +22,12 @@ import com.demonwav.mcdev.platform.sponge.SpongeModuleType import com.demonwav.mcdev.util.Constants -import com.demonwav.mcdev.util.fullQualifiedName import com.intellij.codeInspection.AbstractBaseJavaLocalInspectionTool import com.intellij.codeInspection.InspectionManager import com.intellij.codeInspection.ProblemDescriptor import com.intellij.codeInspection.ProblemHighlightType import com.intellij.codeInspection.ProblemsHolder import com.intellij.psi.JavaElementVisitor -import com.intellij.psi.PsiClassType import com.intellij.psi.PsiElementVisitor import com.intellij.psi.PsiField import com.intellij.psi.PsiFile @@ -60,9 +58,8 @@ override fun visitField(field: PsiField) { val element = field.typeElement ?: return - val name = (field.type as? PsiClassType)?.fullQualifiedName ?: return - if (name != Constants.JAVA_UTIL_LOGGER) { + if (!field.type.equalsToText(Constants.JAVA_UTIL_LOGGER)) { return } Index: src/main/kotlin/platform/sponge/inspection/SpongeWrongGetterTypeInspection.kt =================================================================== --- src/main/kotlin/platform/sponge/inspection/SpongeWrongGetterTypeInspection.kt (revision b13eb2594830de7089508bd1179550fc1427566a) +++ src/main/kotlin/platform/sponge/inspection/SpongeWrongGetterTypeInspection.kt (revision 9793e59853492b6d6b01bda5ab437c7438c18c12) @@ -23,7 +23,6 @@ import com.demonwav.mcdev.platform.sponge.util.SpongeConstants import com.demonwav.mcdev.platform.sponge.util.isValidSpongeListener import com.demonwav.mcdev.platform.sponge.util.resolveSpongeGetterTarget -import com.demonwav.mcdev.util.isJavaOptional import com.intellij.codeInspection.AbstractBaseUastLocalInspectionTool import com.intellij.codeInspection.InspectionManager import com.intellij.codeInspection.IntentionAndQuickFixAction @@ -36,6 +35,7 @@ import com.intellij.lang.jvm.actions.updateMethodParametersRequest import com.intellij.openapi.editor.Editor import com.intellij.openapi.project.Project +import com.intellij.psi.CommonClassNames import com.intellij.psi.JavaPsiFacade import com.intellij.psi.PsiClassType import com.intellij.psi.PsiFile @@ -126,7 +126,7 @@ private fun isOptional(type: PsiType): Boolean { val typeClass = type as? PsiClassType ?: return false - return typeClass.isJavaOptional() && typeClass.hasParameters() + return typeClass.equalsToText(CommonClassNames.JAVA_UTIL_OPTIONAL) && typeClass.hasParameters() } private fun getFirstGenericType(typeElement: PsiType): PsiType? = Index: src/main/kotlin/platform/velocity/VelocityModule.kt =================================================================== --- src/main/kotlin/platform/velocity/VelocityModule.kt (revision b13eb2594830de7089508bd1179550fc1427566a) +++ src/main/kotlin/platform/velocity/VelocityModule.kt (revision 9793e59853492b6d6b01bda5ab437c7438c18c12) @@ -51,8 +51,8 @@ chosenClass: PsiClass, chosenName: String, data: GenerationData?, - ): PsiMethod? { - val method = createVoidMethodWithParameterType(project, chosenName, chosenClass) ?: return null + ): PsiMethod { + val method = createVoidMethodWithParameterType(project, chosenName, chosenClass) val modifierList = method.modifierList val subscribeAnnotation = modifierList.addAnnotation(SUBSCRIBE_ANNOTATION) Index: src/main/kotlin/util/class-utils.kt =================================================================== --- src/main/kotlin/util/class-utils.kt (revision b13eb2594830de7089508bd1179550fc1427566a) +++ src/main/kotlin/util/class-utils.kt (revision 9793e59853492b6d6b01bda5ab437c7438c18c12) @@ -24,7 +24,6 @@ import com.intellij.navigation.AnonymousElementProvider import com.intellij.openapi.editor.Editor import com.intellij.openapi.project.Project -import com.intellij.psi.CommonClassNames import com.intellij.psi.JavaPsiFacade import com.intellij.psi.PsiClass import com.intellij.psi.PsiClassType @@ -314,10 +313,6 @@ return true } -fun PsiClass.isJavaOptional(): Boolean = this.qualifiedName == CommonClassNames.JAVA_UTIL_OPTIONAL - -fun PsiClassType.isJavaOptional(): Boolean = this.fullQualifiedName == CommonClassNames.JAVA_UTIL_OPTIONAL - class ClassNameResolutionFailedException : Exception { constructor() : super() constructor(message: String) : super(message) Index: src/main/kotlin/util/code-gen.kt =================================================================== --- src/main/kotlin/util/code-gen.kt (revision b13eb2594830de7089508bd1179550fc1427566a) +++ src/main/kotlin/util/code-gen.kt (revision 9793e59853492b6d6b01bda5ab437c7438c18c12) @@ -26,21 +26,19 @@ import com.intellij.psi.JavaPsiFacade import com.intellij.psi.PsiAnnotation import com.intellij.psi.PsiClass -import com.intellij.psi.PsiClassType import com.intellij.psi.PsiMember import com.intellij.psi.PsiMethod import com.intellij.psi.PsiType -import com.intellij.psi.search.GlobalSearchScope -fun createVoidMethodWithParameterType(project: Project, name: String, paramType: PsiClass): PsiMethod? { - val newMethod = JavaPsiFacade.getElementFactory(project).createMethod(name, PsiType.VOID) +fun createVoidMethodWithParameterType(project: Project, name: String, paramType: PsiClass): PsiMethod { + val elementFactory = JavaPsiFacade.getElementFactory(project) + val newMethod = elementFactory.createMethod(name, PsiType.VOID) val list = newMethod.parameterList - val qName = paramType.qualifiedName ?: return null - val parameter = JavaPsiFacade.getElementFactory(project) + val parameter = elementFactory .createParameter( "event", - PsiClassType.getTypeByName(qName, project, GlobalSearchScope.allScope(project)), + elementFactory.createType(paramType) ) list.add(parameter)