-
Notifications
You must be signed in to change notification settings - Fork 19
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
String array + Comparer #63
base: main
Are you sure you want to change the base?
Conversation
…g-array ; Conflicts: ; Generator.Equals/Models/EqualityMemberModelTransformer.cs
…g-array ; Conflicts: ; Generator.Equals.DynamicGenerationTests/UnitTest1.cs ; Generator.Equals/Models/EqualityMemberModelTransformer.cs
@JKamsker now that first PR is merged, you might want to rebase this one. |
Oh yea... its alot... but it should really be as small as this JKamsker#2 Ill do it asap and let you know :) You can aswell create a preview version in the meantime of the already merged code in case i am not fast enough 😅 |
…g-array ; Conflicts: ; Generator.Equals.DynamicGenerationTests/Base_Assertions.cs
; Conflicts: ; Generator.Equals.sln ; Generator.Equals/EqualityGeneratorBase.cs ; Generator.Equals/EqualityMemberModelTransformer.cs ; Generator.Equals/SymbolHelpers.cs
I think its ready @diegofrata |
Finally had time to look into it and while I can see the usefulness, I must say I disagree with the approach here. I believe the user should be able to guess how a type comparison will be done without having to refer to docs -- I also think combining attributes, while smart, can be problematic. For example, should StringEquality work with UnorderedEquality in a Dictionary? What about SetEquality. Without analyzers, there is no indication to the user to what works together what does not. Particularly if not all cases will be supported out of the box. It also makes the implementation more complicated than needed be. I think the way forward here is a little less sexy than composing attributes. I see two ways to move this forward:
I am not sure which I prefer. I am leaning towards 1 as it is the most explicit option and also easier to implement. What do you think? |
Fixes #60
Builds on #62 , so you may want to merge this first