Sync upstream#11
Merged
Merged
Conversation
…ins. No longer throws when a method call is on an array. Closes FabricMC#147
The previous implementation did not properly handle pseudo-instructions, sometimes leading to unnecessary mismatches.
The transformer expects binary names and internal format ones can cause unexpected behaviour in several places.
Fixes FabricMC#166. Previously `ClassInfo`s were used unsynchronized when writing classes.
* New Maven Central publishing * Only Java 21
Co-authored-by: LlamaLad7 <l3gomindstorms@gmail.com>
…C#176) * Initial attempt at exposing will-be-transformed-ness of classes via mixin * Use mixin environment properly * Fix some ordering * Make processingCouldTransform default true and log error * Simplify logic slightly * Address feedback, sans checkstyle * Hopefully fix checkstyle * Log class name as well * Address feedback Require that environment passed to `couldTransformClass` be current, and integrate check before `ClassNode` creation in `transformClass` that takes bytes. * Use locking logic from applyMixins to avoid reentrance issues * Extract common locking logic * Add optional byte argument to couldTransform checks * Revert "Add optional byte argument to couldTransform checks" This reverts commit 925fa61. * Revert "Extract common locking logic" This reverts commit 155fe15. * Extract common locking logic, but nicer * Shift around to reduce diff * Remove unnecessary changes * Remove more unnecessary format changes * Update log message to match method name
Analyze jdk classes through reflection instead of asm
…bricMC#157) * Fix enum MixinEnvironment.Option parsing always using the default * Incorporate Chocohead's suggestion
fix java8 interface mixin
* Close resource streams for mixin configs. * Close resource streams for mixin configs. * Simplify * Remove Unneeded changes & Import --------- Co-authored-by: cputnam-a11y <unknown@cputnam-a11y.github.io>
Gated since this is technically breaking.
This can be expensive to compute since it requires loading ClassInfos for outer classes, and it is a useless warning anyway which only worsens logspam.
The semantics of staticness are likely not identical, but I haven't been able to find a case where they differ. The old one is horribly heuristic anyway.
…is enabled. The verifier will catch this anyway, this just gives us a better error which blames the particular mixin, but it's very expensive to check so best avoided in the default case.
) * Fix: Use actual parameter names instead of generic 'argN' names * Address review FabricMC#191 (review) * De-dupe code * Implement review * Address review * Address review --------- Co-authored-by: joe <burtonjae@hotmail.co.uk>
This was a very strange exception to have in the first place, and the default path works fine. Notably, you are also allowed to have enums inside Mixins, in which case those would be given different names for each target class and therefore any switch tables referencing them are *not* safe to share.
mitchej123
approved these changes
Mar 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.