Comments (5)
To make this clear, it has nothing to do with things being synthetic or not. This is a bug in FML, or at least a misunderstanding of design.
The SRG names are meant to be unique and treated as a lookup in a single dictionary
Having them split by FML means that record names do not get the field names as they are intended.
The fix would be to update FML's Naming Service, but it can also be fixed on our end by duplicating the data into both csv files. So feel free to PR FG to add "f_" to the list of methods so it's retroactive.
from forgegradle.
The record field accessor methods are likely marked as synthetic by the compiler, which likely means they should not even be in the decompile.
Are you trying to reflect them at runtime and hitting an error, or is it a "they seem to be missing"? Because I would generally expect them to be missing. Note that at runtime deobf, they probably deobf to their field name because they're synthetic.
from forgegradle.
Runtime deobf doesn't work at all because the default modlauncher naming service loads its method mappings from methods.csv
. And since record method names are filtered out from that file due to this bug, remap calls will always fall back to the obfuscated name.
All the required method names are already present in the SRG input of OfficialChannelProvider
, they just get filtered out because they begin with the field name prefix f_
.
from forgegradle.
Fixing name service is quite doable. We'd need to identify the special case where the method is a field name somehow..
from forgegradle.
The point is they shouldn't be special cased. It'd just need to load both the methods and fields csv into a single dictionary.
from forgegradle.
Related Issues (20)
- Test HOT 3
- Support Gradle 8 HOT 8
- Version range matching sometimes does not give expected result
- Error "Cannot mutate content repository descriptor" HOT 6
- Cannot mutate content repository descriptor when using `jarJar.component` HOT 3
- Task 'runClient' not found in root project 'mods'. HOT 1
- Cannot guild 1.8.9 with Forgegradle HOT 1
- [FG6] `reobfJar` fails when Mixin writes an empty tsrg file HOT 1
- Problems running RunClient HOT 1
- Issues with fg.deobf HOT 6
- ForgeGradle fails to find remapped mods with `exclusiveContent` repositories HOT 3
- Gradle 8.2 Error HOT 2
- gradle build fails for Minecraft 1.20.1 and MinecraftForge 47.0.43 with jarJar enabled HOT 2
- setupDecompWorkspace not working. HOT 2
- Support Gradle 8.2+ HOT 6
- Access Transformers with `clean` task cause compile errors HOT 1
- Index 0 out of bounds for length 0 in reobfJar HOT 4
- Latest Git version fails to build with GradleUtils version 2.3.0+ HOT 1
- Incorrect work of the decompiler HOT 14
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from forgegradle.