User: kyle wood Date: 27 Mar 25 03:38 Revision: 327d6413cd7fb0734ee9d76cc6472a7e0e8eec6f Summary: Fix deprecations in 2025.1 TeamCity URL: https://ci.mcdev.io/viewModification.html?tab=vcsModificationFiles&modId=9877&personal=false Index: src/main/kotlin/creator/buildsystem/gradle-steps.kt =================================================================== --- src/main/kotlin/creator/buildsystem/gradle-steps.kt (revision 4232492e6dcd37df3b5ad41147b4c6d06ff8449a) +++ src/main/kotlin/creator/buildsystem/gradle-steps.kt (revision 327d6413cd7fb0734ee9d76cc6472a7e0e8eec6f) @@ -56,10 +56,11 @@ import com.intellij.psi.PsiManager import java.nio.file.Path import java.util.concurrent.CountDownLatch +import kotlinx.coroutines.runBlocking import org.jetbrains.plugins.gradle.service.execution.GradleExternalTaskConfigurationType import org.jetbrains.plugins.gradle.service.execution.GradleRunConfiguration import org.jetbrains.plugins.gradle.service.project.open.canLinkAndRefreshGradleProject -import org.jetbrains.plugins.gradle.service.project.open.linkAndRefreshGradleProject +import org.jetbrains.plugins.gradle.service.project.open.linkAndSyncGradleProject val DEFAULT_GRADLE_VERSION = SemanticVersion.release(8, 7) val GRADLE_VERSION_KEY = Key.create("mcdev.gradleVersion") @@ -216,7 +217,9 @@ invokeLater(project.disposed) { val path = rootDirectory.toAbsolutePath().toString() if (canLinkAndRefreshGradleProject(path, project, false)) { - linkAndRefreshGradleProject(path, project) + runBlocking { + linkAndSyncGradleProject(project, path) + } showProgress(project) } Index: src/main/kotlin/creator/custom/providers/ZipTemplateProvider.kt =================================================================== --- src/main/kotlin/creator/custom/providers/ZipTemplateProvider.kt (revision 4232492e6dcd37df3b5ad41147b4c6d06ff8449a) +++ src/main/kotlin/creator/custom/providers/ZipTemplateProvider.kt (revision 327d6413cd7fb0734ee9d76cc6472a7e0e8eec6f) @@ -67,7 +67,7 @@ return panel { row(MCDevBundle("creator.ui.custom.path.label")) { - val pathChooserDescriptor = FileChooserDescriptorFactory.createSingleLocalFileDescriptor() + val pathChooserDescriptor = FileChooserDescriptorFactory.singleFile() .withTitle(MCDevBundle("creator.ui.custom.archive.dialog.title")) .withFileFilter { it.extension == "zip" } .apply { description = MCDevBundle("creator.ui.custom.archive.dialog.description") } Index: src/main/kotlin/insight/generation/MinecraftClassCreateAction.kt =================================================================== --- src/main/kotlin/insight/generation/MinecraftClassCreateAction.kt (revision 4232492e6dcd37df3b5ad41147b4c6d06ff8449a) +++ src/main/kotlin/insight/generation/MinecraftClassCreateAction.kt (revision 327d6413cd7fb0734ee9d76cc6472a7e0e8eec6f) @@ -33,7 +33,6 @@ import com.demonwav.mcdev.util.SemanticVersion import com.demonwav.mcdev.util.findModule import com.intellij.codeInsight.daemon.JavaErrorBundle -import com.intellij.codeInsight.daemon.impl.analysis.HighlightClassUtil import com.intellij.ide.actions.CreateFileFromTemplateDialog import com.intellij.ide.actions.CreateTemplateInPackageAction import com.intellij.openapi.actionSystem.CommonDataKeys @@ -47,6 +46,7 @@ import com.intellij.psi.PsiDirectory import com.intellij.psi.PsiElement import com.intellij.psi.PsiNameHelper +import com.intellij.psi.util.PsiTypesUtil import com.intellij.psi.util.PsiUtil import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes @@ -151,7 +151,7 @@ val shortName = StringUtil.getShortName(inputString) val languageLevel = PsiUtil.getLanguageLevel(directory) - return if (HighlightClassUtil.isRestrictedIdentifier(shortName, languageLevel)) { + return if (PsiTypesUtil.isRestrictedIdentifier(shortName, languageLevel)) { JavaErrorBundle.message("restricted.identifier", shortName) } else { null Index: src/main/kotlin/platform/mixin/config/reference/MixinPackage.kt =================================================================== --- src/main/kotlin/platform/mixin/config/reference/MixinPackage.kt (revision 4232492e6dcd37df3b5ad41147b4c6d06ff8449a) +++ src/main/kotlin/platform/mixin/config/reference/MixinPackage.kt (revision 327d6413cd7fb0734ee9d76cc6472a7e0e8eec6f) @@ -32,6 +32,7 @@ import com.intellij.psi.search.searches.AnnotatedElementsSearch import com.intellij.util.ArrayUtil import com.intellij.util.PlatformIcons +import com.intellij.util.Processor object MixinPackage : PackageNameReferenceProvider() { @@ -49,8 +50,8 @@ val packages = HashSet() val list = ArrayList() - for (mixin in AnnotatedElementsSearch.searchPsiClasses(mixinAnnotation, element.resolveScope)) { - val packageName = mixin.packageName ?: continue + AnnotatedElementsSearch.searchPsiClasses(mixinAnnotation, element.resolveScope).forEach(Processor { mixin -> + val packageName = mixin.packageName ?: return@Processor true if (packages.add(packageName)) { list.add(LookupElementBuilder.create(packageName).withIcon(PlatformIcons.PACKAGE_ICON)) } @@ -59,7 +60,8 @@ if (packages.add(topLevelPackage)) { list.add(LookupElementBuilder.create(topLevelPackage).withIcon(PlatformIcons.PACKAGE_ICON)) } - } + return@Processor true + }) return list.toArray() } Index: src/main/kotlin/platform/mixin/inspection/MixinCancellableInspection.kt =================================================================== --- src/main/kotlin/platform/mixin/inspection/MixinCancellableInspection.kt (revision 4232492e6dcd37df3b5ad41147b4c6d06ff8449a) +++ src/main/kotlin/platform/mixin/inspection/MixinCancellableInspection.kt (revision 327d6413cd7fb0734ee9d76cc6472a7e0e8eec6f) @@ -44,6 +44,7 @@ import com.intellij.psi.PsiReferenceExpression import com.intellij.psi.search.searches.ReferencesSearch import com.intellij.psi.util.PsiUtil +import com.intellij.util.Processor class MixinCancellableInspection : MixinInspection() { @@ -71,19 +72,21 @@ var mayUseCancel = false var definitelyUsesCancel = false - for (ref in ReferencesSearch.search(ciParam)) { + ReferencesSearch.search(ciParam).forEach(Processor { ref -> val parent = PsiUtil.skipParenthesizedExprUp(ref.element.parent) if (parent is PsiExpressionList) { // method argument, we can't tell whether it uses cancel mayUseCancel = true } - val methodCall = parent as? PsiReferenceExpression ?: continue + val methodCall = parent as? PsiReferenceExpression ?: return@Processor true if (methodCall.references.any { it.isReferenceTo(searchingFor) }) { definitelyUsesCancel = true - break + return@Processor false } - } + return@Processor true + }) + if (definitelyUsesCancel && !isCancellable) { val fixes = mutableListOf() if (!CancellableBeforeSuperCallInspection.doesInjectBeforeSuperConstructorCall(injectAnnotation)) { Index: src/main/kotlin/platform/mixin/inspection/mixinextras/UnnecessaryMutableLocalInspection.kt =================================================================== --- src/main/kotlin/platform/mixin/inspection/mixinextras/UnnecessaryMutableLocalInspection.kt (revision 4232492e6dcd37df3b5ad41147b4c6d06ff8449a) +++ src/main/kotlin/platform/mixin/inspection/mixinextras/UnnecessaryMutableLocalInspection.kt (revision 327d6413cd7fb0734ee9d76cc6472a7e0e8eec6f) @@ -44,6 +44,7 @@ import com.intellij.psi.search.searches.ReferencesSearch import com.intellij.psi.util.PsiUtil import com.intellij.psi.util.parentOfType +import com.intellij.util.Processor import com.siyeh.ig.psiutils.MethodCallUtils import org.jetbrains.plugins.groovy.intentions.style.inference.resolve @@ -95,18 +96,30 @@ for (method in OverridingMethodsSearch.search(originalMethod).findAll() + listOf(originalMethod)) { val param = method.parameterList.getParameter(paramIndex) ?: return val getMethod = paramType.findMethodsByName("get", false).firstOrNull() ?: return - for (ref in ReferencesSearch.search(param)) { + + var exitEarly = false + ReferencesSearch.search(param).forEach(Processor { ref -> if (isDelegationToSuper(ref.element, paramIndex)) { - continue + return@Processor true } - val parent = PsiUtil.skipParenthesizedExprUp(ref.element.parent) as? PsiReferenceExpression ?: return + val parent = PsiUtil.skipParenthesizedExprUp(ref.element.parent) as? PsiReferenceExpression ?: run { + exitEarly = true + return@Processor false + } if (parent.references.any { it.isReferenceTo(getMethod) }) { hasAnyGets = true } else { + exitEarly = true + return@Processor false + } + + return@Processor true + }) + + if (exitEarly) { - return - } - } + return + } + } - } if (!hasAnyGets) { // Don't annoy them if they've just made the parameter return @@ -125,11 +138,9 @@ ?: return false // For some reason ref is sometimes the identifier rather than the reference expression. Get the reference expr - val actualRef = if (ref is PsiReferenceExpression) { - ref - } else { - PsiUtil.skipParenthesizedExprUp(ref.parent) as? PsiReferenceExpression ?: return false - } + val actualRef = ref as? PsiReferenceExpression + ?: PsiUtil.skipParenthesizedExprUp(ref.parent) as? PsiReferenceExpression + ?: return false val param = PsiUtil.skipParenthesizedExprUp(actualRef) val paramList = param.parent as? PsiExpressionList ?: return false val methodCall = paramList.parent as? PsiMethodCallExpression ?: return false @@ -170,12 +181,14 @@ val innerType = param.type.unwrapLocalRef() val factory = PsiElementFactory.getInstance(method.project) param.typeElement?.replace(factory.createTypeElement(innerType)) - for (ref in ReferencesSearch.search(param)) { + ReferencesSearch.search(param).forEach(Processor { ref -> val refExpression = PsiUtil.skipParenthesizedExprUp(ref.element.parent) as? PsiReferenceExpression - ?: continue - val call = refExpression.parent as? PsiMethodCallExpression ?: continue + ?: return@Processor true + val call = refExpression.parent as? PsiMethodCallExpression ?: return@Processor true call.replace(ref.element) + + return@Processor true + }) - } - } - } + } + } +} -} Index: src/main/kotlin/util/analysis-utils.kt =================================================================== --- src/main/kotlin/util/analysis-utils.kt (revision 4232492e6dcd37df3b5ad41147b4c6d06ff8449a) +++ src/main/kotlin/util/analysis-utils.kt (revision 327d6413cd7fb0734ee9d76cc6472a7e0e8eec6f) @@ -20,13 +20,13 @@ package com.demonwav.mcdev.util -import com.intellij.codeInsight.daemon.impl.analysis.HighlightControlFlowUtil import com.intellij.psi.PsiCodeBlock import com.intellij.psi.controlFlow.AnalysisCanceledException +import com.intellij.psi.controlFlow.ControlFlowFactory import com.intellij.psi.controlFlow.ControlFlowUtil @Throws(AnalysisCanceledException::class) fun hasImplicitReturnStatement(body: PsiCodeBlock): Boolean { - val controlFlow = HighlightControlFlowUtil.getControlFlowNoConstantEvaluate(body) + val controlFlow = ControlFlowFactory.getControlFlowNoConstantEvaluate(body) return ControlFlowUtil.canCompleteNormally(controlFlow, 0, controlFlow.size) }