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 }