This pull request brings most of the code from the v0.5.x-wip branch into the master branch in an effort to gradually work towards the type system rewrite whilst maintaining a working codebase. As such, every commit in this pull request produces usable output that is compatible with the vast majority of existing mods.
In order to merge the entire code base without breaking output, some of it had to be commented or disabled. There are todo comments at nearly every place where wip code diverges from working code.
Every effort has been made to merge the two seamlessly where possible. With the exception of a couple spots in the base library, all the diverges occur in the generation project.
Potentially Binary Breaking Changes:
Removal of Pass 24 which generates the static il2cpp type getters
Removal of the alternate il2cpp api class
Removal of the obsolete Il2CppTypeOf generic class
Removal of the obsolete UnhollowerRuntimeLib.ClassInjectionAssemblyTargetAttribute
Potential Concerns:
The classes in the Marshalling namespace are not well-tested.
The new boxing methods in Il2CppObjectBase might need to be made internal for the time being.
There is redundancy in Il2CppObjectBase between WasCollected and IsIl2CppObjectAlive().
This pull request brings most of the code from the
v0.5.x-wip
branch into the master branch in an effort to gradually work towards the type system rewrite whilst maintaining a working codebase. As such, every commit in this pull request produces usable output that is compatible with the vast majority of existing mods.In order to merge the entire code base without breaking output, some of it had to be commented or disabled. There are todo comments at nearly every place where wip code diverges from working code.
Every effort has been made to merge the two seamlessly where possible. With the exception of a couple spots in the base library, all the diverges occur in the generation project.
Potentially Binary Breaking Changes:
Il2CppTypeOf
generic classUnhollowerRuntimeLib.ClassInjectionAssemblyTargetAttribute
Potential Concerns:
Il2CppObjectBase
might need to be made internal for the time being.Il2CppObjectBase
betweenWasCollected
andIsIl2CppObjectAlive()
.