You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It's currently impossible to reference instances of private inner classes (specifically, of other mods, which can't traditionally be access transformed) in method signatures. Coercing arguments also doesn't seem to be possible, as Mixin strictly expects the signature to be A$B, so defining the argument as Object fails at runtime. @Local expects A$B as well. This leaves no options for targeting the instance.
Example class:
classA {
method(Bb);
staticclassB {}
}
Example mixin:
interfaceIExtendedB {}
@Mixin(B.class)
classmBimplementsIExtendedB {}
@Mixin(A.class)
classmA {
@Inject(method = "method", ...)
publicvoidinjection(A.Bb, CallbackInfoci) {} // oops! fails at compile-timepublicvoidinjection(CallbackInfoci, @LocalIExtendedBb) {} // oops! fails at runtimepublicvoidinjection(CallbackInfoci, @LocalObjectb) {} // oops! failed to validate at runtime
}
The text was updated successfully, but these errors were encountered:
It's currently impossible to reference instances of private inner classes (specifically, of other mods, which can't traditionally be access transformed) in method signatures. Coercing arguments also doesn't seem to be possible, as Mixin strictly expects the signature to be
A$B
, so defining the argument asObject
fails at runtime.@Local
expectsA$B
as well. This leaves no options for targeting the instance.Example class:
Example mixin:
The text was updated successfully, but these errors were encountered: