Skip to content

Rework nested types, successfully builds!#9

Merged
sc2ad merged 43 commits intomasterfrom
reworkUnified
Jul 5, 2020
Merged

Rework nested types, successfully builds!#9
sc2ad merged 43 commits intomasterfrom
reworkUnified

Conversation

@sc2ad
Copy link
Owner

@sc2ad sc2ad commented Jul 5, 2020

Lots of changes to design, finally builds code that can compile, albeit with ENORMOUSLY slow compile times...

sc2ad and others added 30 commits June 28, 2020 16:24
The renaming SHOULD still work, even if the names are reverse renamed according to what you (as a human) would expect. There may also be some methods that STILL collide, I don't think I added any assertions to that degree.
This ensures that if we have an overload of a special name, we don't accidentally set its base method to the same as that of the special named method.
Basically, when we ask for the type name, we ask for it as a literal, with generics set to false. Even if we have generics set to false, we still want to get our declaring type's generic parameters, but if we are ourselves AND we have generics set to false, we want to ensure that we don't suffix our name with our OWN generic parameter(s).
Still lots to CHECK for this, but the example methods used at least work now
PLEASE PLEASE PLEASE read the comments, I made a ton of them. Basic idea is there, but at the moment, CppContextSerializer.DuplicateDefinition is not called correctly -- It should be called at the start of a cycle with offendingType = include that _causes_ the cycle, not offendingType = ourselves.
Added some QOL comment changes and removed unused methods/irrelevant comments. We could actually completely remove _ctor, and only serialize ctor methods in the ctor serializer, instead of having a (potentially) misleading _ctor function that should never be called except after a call to New
@sc2ad sc2ad merged commit d8c867c into master Jul 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants