Closed ds5678 closed 1 month ago
Should Il2CppArrayBase<T>.WrapNativeGenericArrayPointer(IntPtr)
become Il2CppArrayBase.WrapNativeGenericArrayPointer<T>(IntPtr)
?
https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1000
Should
Il2CppArrayBase<T>.WrapNativeGenericArrayPointer(IntPtr)
becomeIl2CppArrayBase.WrapNativeGenericArrayPointer<T>(IntPtr)
?https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1000
Now that I think about it some more, this should be a future pull request because it has implications on the generator, which I significantly changed in #124.
Is Il2CppArrayBase or are classes inheriting it directly accessed by any plugin code? If yes, this looks like a binary compatibility break.
Plugins can and do access these classes.
My pull request has two breaking changes:
Length
to the base class
IsReadOnly
to an explicit interface implementation
I'm not sure how much breaking changes matter because my ultimate goal is to make lots of breaking changes. I want to do a proper C# type system with real interfaces and virtual methods. Porting to AsmResolver is just a first step towards that goal.
The binary break can be avoided by adding a derived property that hides the base property.
Done
This will be important for unstripping
ldlen
.