User: joe Date: 23 Jan 24 14:50 Revision: 7b7c035363d8bc6b816dceab027510bb1a997f93 Summary: Check we're actually on Fabric TeamCity URL: https://ci.mcdev.io/viewModification.html?tab=vcsModificationFiles&modId=9039&personal=false Index: src/main/kotlin/platform/fabric/util/fabric-util.kt =================================================================== --- src/main/kotlin/platform/fabric/util/fabric-util.kt (revision 7b7c035363d8bc6b816dceab027510bb1a997f93) +++ src/main/kotlin/platform/fabric/util/fabric-util.kt (revision 7b7c035363d8bc6b816dceab027510bb1a997f93) @@ -0,0 +1,29 @@ +/* + * Minecraft Development for IntelliJ + * + * https://mcdev.io/ + * + * Copyright (C) 2024 minecraft-dev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, version 3.0 only. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + +package com.demonwav.mcdev.platform.fabric.util + +import com.demonwav.mcdev.facet.MinecraftFacet +import com.demonwav.mcdev.platform.fabric.FabricModuleType +import com.demonwav.mcdev.util.findModule +import com.intellij.psi.PsiElement + +val PsiElement.isFabric: Boolean get() = + findModule()?.let { MinecraftFacet.getInstance(it) }?.isOfType(FabricModuleType) == true Index: src/main/kotlin/platform/mixin/handlers/injectionPoint/CtorHeadInjectionPoint.kt =================================================================== --- src/main/kotlin/platform/mixin/handlers/injectionPoint/CtorHeadInjectionPoint.kt (revision 4600b6d55a58492a9a4f46cad97a916507057b15) +++ src/main/kotlin/platform/mixin/handlers/injectionPoint/CtorHeadInjectionPoint.kt (revision 7b7c035363d8bc6b816dceab027510bb1a997f93) @@ -20,6 +20,7 @@ package com.demonwav.mcdev.platform.mixin.handlers.injectionPoint +import com.demonwav.mcdev.platform.fabric.util.isFabric import com.demonwav.mcdev.platform.mixin.inspection.injector.CtorHeadNoUnsafeInspection import com.demonwav.mcdev.platform.mixin.reference.MixinSelector import com.demonwav.mcdev.platform.mixin.util.findOrConstructSourceMethod @@ -60,7 +61,7 @@ // avoid adding unsafe = true when it's unnecessary on Fabric val noUnsafeInspection = project.findInspection(CtorHeadNoUnsafeInspection.SHORT_NAME) - if (noUnsafeInspection?.ignoreForFabric == true) { + if (reference.isFabric && noUnsafeInspection?.ignoreForFabric == true) { return } Index: src/main/kotlin/platform/mixin/inspection/injector/CtorHeadNoUnsafeInspection.kt =================================================================== --- src/main/kotlin/platform/mixin/inspection/injector/CtorHeadNoUnsafeInspection.kt (revision 4600b6d55a58492a9a4f46cad97a916507057b15) +++ src/main/kotlin/platform/mixin/inspection/injector/CtorHeadNoUnsafeInspection.kt (revision 7b7c035363d8bc6b816dceab027510bb1a997f93) @@ -20,14 +20,12 @@ package com.demonwav.mcdev.platform.mixin.inspection.injector -import com.demonwav.mcdev.facet.MinecraftFacet -import com.demonwav.mcdev.platform.fabric.FabricModuleType +import com.demonwav.mcdev.platform.fabric.util.isFabric import com.demonwav.mcdev.platform.mixin.inspection.MixinInspection import com.demonwav.mcdev.platform.mixin.inspection.fix.AnnotationAttributeFix import com.demonwav.mcdev.platform.mixin.util.MixinConstants import com.demonwav.mcdev.util.constantStringValue import com.demonwav.mcdev.util.constantValue -import com.demonwav.mcdev.util.findModule import com.intellij.codeInspection.ProblemsHolder import com.intellij.psi.JavaElementVisitor import com.intellij.psi.PsiAnnotation @@ -55,8 +53,7 @@ override fun buildVisitor(holder: ProblemsHolder): PsiElementVisitor { if (ignoreForFabric) { - val isFabric = holder.file.findModule()?.let { MinecraftFacet.getInstance(it) }?.isOfType(FabricModuleType) - ?: false + val isFabric = holder.file.isFabric if (isFabric) { return PsiElementVisitor.EMPTY_VISITOR } Index: src/main/kotlin/platform/mixin/inspection/injector/InjectIntoConstructorInspection.kt =================================================================== --- src/main/kotlin/platform/mixin/inspection/injector/InjectIntoConstructorInspection.kt (revision 4600b6d55a58492a9a4f46cad97a916507057b15) +++ src/main/kotlin/platform/mixin/inspection/injector/InjectIntoConstructorInspection.kt (revision 7b7c035363d8bc6b816dceab027510bb1a997f93) @@ -20,8 +20,7 @@ package com.demonwav.mcdev.platform.mixin.inspection.injector -import com.demonwav.mcdev.facet.MinecraftFacet -import com.demonwav.mcdev.platform.fabric.FabricModuleType +import com.demonwav.mcdev.platform.fabric.util.isFabric import com.demonwav.mcdev.platform.mixin.handlers.InjectorAnnotationHandler import com.demonwav.mcdev.platform.mixin.handlers.MixinAnnotationHandler import com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.AtResolver @@ -34,7 +33,6 @@ import com.demonwav.mcdev.util.constantValue import com.demonwav.mcdev.util.findAnnotation import com.demonwav.mcdev.util.findAnnotations -import com.demonwav.mcdev.util.findModule import com.intellij.codeInspection.ProblemsHolder import com.intellij.psi.JavaElementVisitor import com.intellij.psi.PsiClass @@ -61,8 +59,7 @@ } override fun buildVisitor(holder: ProblemsHolder): PsiElementVisitor { - val isFabric = holder.file.findModule()?.let { MinecraftFacet.getInstance(it) }?.isOfType(FabricModuleType) - ?: false + val isFabric = holder.file.isFabric return object : JavaElementVisitor() { override fun visitMethod(method: PsiMethod) { val injectAnnotation = method.findAnnotation(INJECT) ?: return Index: src/main/kotlin/platform/mixin/inspection/injector/UnnecessaryUnsafeInspection.kt =================================================================== --- src/main/kotlin/platform/mixin/inspection/injector/UnnecessaryUnsafeInspection.kt (revision 4600b6d55a58492a9a4f46cad97a916507057b15) +++ src/main/kotlin/platform/mixin/inspection/injector/UnnecessaryUnsafeInspection.kt (revision 7b7c035363d8bc6b816dceab027510bb1a997f93) @@ -20,8 +20,7 @@ package com.demonwav.mcdev.platform.mixin.inspection.injector -import com.demonwav.mcdev.facet.MinecraftFacet -import com.demonwav.mcdev.platform.fabric.FabricModuleType +import com.demonwav.mcdev.platform.fabric.util.isFabric import com.demonwav.mcdev.platform.mixin.handlers.MixinAnnotationHandler import com.demonwav.mcdev.platform.mixin.inspection.MixinInspection import com.demonwav.mcdev.platform.mixin.inspection.fix.AnnotationAttributeFix @@ -30,7 +29,6 @@ import com.demonwav.mcdev.platform.mixin.util.isConstructor import com.demonwav.mcdev.util.constantValue import com.demonwav.mcdev.util.findInspection -import com.demonwav.mcdev.util.findModule import com.demonwav.mcdev.util.ifEmpty import com.intellij.codeInspection.ProblemsHolder import com.intellij.openapi.project.Project @@ -62,8 +60,7 @@ } override fun buildVisitor(holder: ProblemsHolder): PsiElementVisitor { - val isFabric = holder.file.findModule()?.let { MinecraftFacet.getInstance(it) }?.isOfType(FabricModuleType) - ?: false + val isFabric = holder.file.isFabric val alwaysUnnecessary = isFabric && alwaysUnnecessaryOnFabric val requiresUnsafeForCtorHeadOnFabric = holder.project.findInspection(CtorHeadNoUnsafeInspection.SHORT_NAME) @@ -98,8 +95,6 @@ } companion object { - const val SHORT_NAME = "UnnecessaryUnsafe" - fun mightTargetConstructor(project: Project, at: PsiAnnotation): Boolean { val injectorAnnotation = at.parents(false) .takeWhile { it !is PsiClass }