Biome Makeover

Biome Makeover

4M Downloads

AnalyzerException on load

Fourmisain opened this issue ยท 3 comments

commented

I'm getting this with only Biome Makeover 1.3.3 (the reupload from 5 minutes ago, but also the one before) and Fabric API 0.32.5:

org.objectweb.asm.tree.analysis.AnalyzerException: Error at instruction 800: Cannot invoke "org.spongepowered.asm.mixin.transformer.ClassInfo.hasSuperClass(org.spongepowered.asm.mixin.transformer.ClassInfo)" because the return value of "org.spongepowered.asm.mixin.transformer.ClassInfo.forType(org.objectweb.asm.Type, org.spongepowered.asm.mixin.transformer.ClassInfo$TypeLookup)" is null
at org.objectweb.asm.tree.analysis.Analyzer.analyze(Analyzer.java:296)
at org.spongepowered.asm.util.Locals.generateLocalVariableTable(Locals.java:394)
at org.spongepowered.asm.util.Locals.getGeneratedLocalVariableTable(Locals.java:363)
at org.spongepowered.asm.util.Locals.getLocalVariableAt(Locals.java:317)
at org.spongepowered.asm.util.Locals.getLocalVariableAt(Locals.java:287)
at org.spongepowered.asm.util.Locals.getLocalsAt(Locals.java:174)
at org.spongepowered.asm.mixin.injection.callback.CallbackInjector.inject(CallbackInjector.java:439)
at org.spongepowered.asm.mixin.injection.code.Injector.inject(Injector.java:264)
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.inject(InjectionInfo.java:385)
at org.spongepowered.asm.mixin.transformer.MixinTargetContext.applyInjections(MixinTargetContext.java:1284)
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyInjections(MixinApplicatorStandard.java:1042)
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:395)
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:320)
at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:345)
at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:569)
at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:351)
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:208)
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:178)
at org.spongepowered.asm.mixin.transformer.FabricMixinTransformerProxy.transformClassBytes(FabricMixinTransformerProxy.java:23)
at net.fabricmc.loader.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:157)
at net.fabricmc.loader.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:150)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
at net.minecraft.class_2794.(class_2794.java:53)
at net.minecraft.class_2378.method_29114(class_2378.java:232)
at net.minecraft.class_2378.method_29110(class_2378.java:246)
at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:723)
at net.minecraft.class_2378.(class_2378.java:245)
at net.minecraft.class_2966.method_12851(class_2966.java:42)
at net.minecraft.client.main.Main.main(Main.java:137)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:226)
at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:146)
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196)
at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231)
at org.multimc.EntryPoint.listen(EntryPoint.java:143)
at org.multimc.EntryPoint.main(EntryPoint.java:34)
Caused by: java.lang.NullPointerException: Cannot invoke "org.spongepowered.asm.mixin.transformer.ClassInfo.hasSuperClass(org.spongepowered.asm.mixin.transformer.ClassInfo)" because the return value of "org.spongepowered.asm.mixin.transformer.ClassInfo.forType(org.objectweb.asm.Type, org.spongepowered.asm.mixin.transformer.ClassInfo$TypeLookup)" is null
at org.spongepowered.asm.util.asm.MixinVerifier.isAssignableFrom(MixinVerifier.java:104)
at org.objectweb.asm.tree.analysis.SimpleVerifier.isSubTypeOf(SimpleVerifier.java:213)
at org.objectweb.asm.tree.analysis.BasicVerifier.binaryOperation(BasicVerifier.java:301)
at org.objectweb.asm.tree.analysis.BasicVerifier.binaryOperation(BasicVerifier.java:43)
at org.objectweb.asm.tree.analysis.Frame.execute(Frame.java:521)
at org.objectweb.asm.tree.analysis.Analyzer.analyze(Analyzer.java:188)
... 43 more

commented

No longer an issue in the upcoming 1.18.1 release (yay).

commented

Yeah as far as I'm aware this is a bug with mixin, I've asked for help with it but nobody seems to have any solution.

If anyone has any ideas, lemme know.
It's caused by this mixin, https://github.com/Lemonszz/Biome-Makeover/blob/master/src/main/java/party/lemons/biomemakeover/mixin/NoiseChunkGeneratorMixin.java#L52

The content of the mixin is irrelevant.

The error isn't harmful in any way, the game works as expected, this is more annoying than harmful

commented

I just realized that it was you who I saw in discord, asking about it (since February too)!

This seems to be the place where the exception gets logged:
https://github.com/SpongePowered/Mixin/blob/b1cd46c8c4960eae026bcd6dd9bafb59cafa4d52/src/main/java/org/spongepowered/asm/util/Locals.java#L397-L401

Interestingly, it doesn't abort and the rest of the code is still executed, so that may be why it still works in the end.

This looks like something that should be asked in the SpongePowered #mixin discord channel or potentially even opened as an issue on the Mixin GitHub.
I think Fabric uses a slightly modified Mixin version, though I'm guessing the error is unrelated to that.