Skip to content

Mixins targetting LivingEntity break the IDE #2500

@panda-hackerman

Description

@panda-hackerman

Minecraft Development for IntelliJ plugin version

2024.2-1.8.5

IntelliJ version

2024.2.3

Operating System

Windows 10

Target platform

Fabric

Description of the bug

I keep getting this IDE error when trying to use a specific mixin (specifically, in LivingEntity#damage). It's a perfectly valid mixin, I believe, and compiles fine, but the highlighting is wrong for the entire method.

Image
During querying provider Mixin element line marker (class com.demonwav.mcdev.platform.mixin.insight.MixinElementLineMarkerProvider)

java.lang.ArrayIndexOutOfBoundsException: Index 15 out of bounds for length 15
	at com.demonwav.mcdev.platform.mixin.util.LocalVariables.doGetLocals$handleFrame(LocalVariables.kt:587)
	at com.demonwav.mcdev.platform.mixin.util.LocalVariables.doGetLocals(LocalVariables.kt:622)
	at com.demonwav.mcdev.platform.mixin.util.LocalVariables.getLocals(LocalVariables.kt:407)
	at com.demonwav.mcdev.platform.mixin.util.LocalVariables.getLocals(LocalVariables.kt:396)
	at com.demonwav.mcdev.platform.mixin.util.LocalInfo.getLocals(LocalInfo.kt:67)
	at com.demonwav.mcdev.platform.mixin.util.LocalInfo.matchLocals(LocalInfo.kt:79)
	at com.demonwav.mcdev.platform.mixin.util.LocalInfo.matchLocals$default(LocalInfo.kt:71)
	at com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.AbstractLoadInjectionPoint$MyCollectVisitor$accept$1.invokeSuspend(LoadInjectionPoint.kt:309)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlin.sequences.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:129)
	at kotlin.sequences.TransformingSequence$iterator$1.hasNext(Sequences.kt:214)
	at kotlin.sequences.TransformingSequence$iterator$1.hasNext(Sequences.kt:214)
	at com.demonwav.mcdev.util.SequencesKt$memoized$1.invokeSuspend(sequences.kt:42)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlin.sequences.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:129)
	at com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.CollectVisitor.visit(InjectionPoint.kt:357)
	at com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.AtResolver.isUnresolved(AtResolver.kt:194)
	at com.demonwav.mcdev.platform.mixin.handlers.InjectorAnnotationHandler.isUnresolved(InjectorAnnotationHandler.kt:105)
	at com.demonwav.mcdev.platform.mixin.handlers.InjectorAnnotationHandler.isUnresolved(InjectorAnnotationHandler.kt:92)
	at com.demonwav.mcdev.platform.mixin.handlers.MixinAnnotationHandler.isUnresolved(MixinAnnotationHandler.kt:57)
	at com.demonwav.mcdev.platform.mixin.insight.MixinElementLineMarkerProvider.getLineMarkerInfo(MixinElementLineMarkerProvider.kt:69)
	at com.intellij.codeInsight.daemon.impl.LineMarkersPass.queryProviders(LineMarkersPass.java:180)
	at com.intellij.codeInsight.daemon.impl.LineMarkersPass.lambda$doCollectMarkers$2(LineMarkersPass.java:108)
	at com.intellij.codeInsight.daemon.impl.Divider.divideInsideAndOutsideInOneRoot(Divider.java:97)
	at com.intellij.codeInsight.daemon.impl.LineMarkersPass.doCollectMarkers(LineMarkersPass.java:104)
	at com.intellij.codeInsight.daemon.impl.LineMarkersPass.doCollectInformation(LineMarkersPass.java:77)
	at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:67)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:431)
	at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.runWithSpanIgnoreThrows(trace.kt:118)
	at com.intellij.platform.diagnostic.telemetry.helpers.TraceUtil.runWithSpanThrows(TraceUtil.java:36)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$3(PassExecutorService.java:426)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.tryRunReadAction(AnyThreadWriteThreadingSupport.kt:291)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:965)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$4(PassExecutorService.java:417)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:660)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:735)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:691)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:659)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:79)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:416)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:392)
	at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.cacheFileTypesInside(FileTypeManagerImpl.java:802)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$1(PassExecutorService.java:392)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.executeByImpatientReader(AnyThreadWriteThreadingSupport.kt:486)
	at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:178)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:390)
	at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:259)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:507)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1491)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:2073)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2035)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions