-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
class B extends A implements I{} class A { void foo(); } interface I {void foo();} #12
Comments
? |
The above case fails to remap A.foo->A.bar in the case I.foo->I.bar |
- Exchanged ForgeMod for our own ForgeModderTools. - Removed some settings that were equal to the default settings - they only clutter up the page. - Removed all child .gitignores - added new entries to the parent .gitignore. - 1.0.0 -> 2.5.1. - com.khorn.minecraft -> com.khorn.terraincontrol
Possibly related and also broken: In other words, implementing an interface function in a superclass that doesn't implement the interface breaks all kinds of shit, badly. Renaming needs to traverse the inheritance tree in both directions. |
Would like to bump this, actually. It's been a while. |
@iChun it can't actually be fixed properly without generating synthetic redirect methods, which is a whole extra can of worms. |
Ahh, @AbrarSyed pointed me in your direction cause I was prodding him about ATs not transforming methods which override a super.method which was ATed to.. eg from protected to public, requiring multiple AT lines like these: https://github.com/MinecraftForge/MinecraftForge/blob/master/src/main/resources/forge_at.cfg#L127-L132 Might be a separate issue altogether for all I know but thought I'd just mention it now. |
Thats a completely different issue, you should probably open a ticket for it. |
Dang, I'm in bed now. I'll try to remember in the morning but I'll probably
|
Probably not, for simple cases such as the above anyway. However that being said our AT code was relicensed directly from Forge by cpw, so any bugs are either the result of: |
I'm also running into this problem. Has anyone addressed it or found a work around? |
There are work arounds. They often result in extra boilerplate, but its fairly simple to avoid the described situation, usually by adding redirects in the child classes. |
This is a major source of boilerplate and confusion in Forestry. |
Also the infamous "getWorld()" bugs. ;) |
For the IAgriCrop interface, this renames the getPos and getWorld methods so as to not match the methods inherited from TileEntity. The only uses so far were in the mutation strategies. And the newly named methods just call the original named methods via 'this'. This workaround is for a re-obfuscation bug in Special Source, a program that ForgeGradle depends on. MinecraftForge/ForgeGradle#205 md-5/SpecialSource#12
No description provided.
The text was updated successfully, but these errors were encountered: