-
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
RejectNullConverter PoC attempt #112
base: master
Are you sure you want to change the base?
Conversation
0412abf
to
eb6e417
Compare
@eiriktsarpalis sorrynotsorry for the atting but I'm out of ideas on how to achieve this via other routes edited: While the NRE will be a blocker for the overall thing to work (and I'd be interested to see if it is quick fix for someone that knows the code), further research shows me that the converter is not called for missing fields so this general approach is probably a dead end for now) NOTE It builds fine with the V8 SDK - the tools in this repo are still on V6 as this approach is the first thing that triggers in a need for V7+ features ( |
eb6e417
to
d2c2cb1
Compare
b15b1f5
to
bb5fc5a
Compare
#endif | ||
|
||
#if false // I guess TypeShape is doing a reasaonable thing not propagating | ||
// PROBLEM: TypeShape.Generic.exists does not call the predicate if the list or set is `null` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My original workaround that came to mind was to walk the properties after the fact with TypeShape's Generic App, but I see I need to drop a level from that (as null
s are not passed to the predicate, and I want to do a generic check in any case, so disregard this piece for now...
Seems related to dotnet/runtime#50205. It's a quirk in some of the built-in converters that cannot be composed outside of their created context. |
bb5fc5a
to
832bdd1
Compare
8ca802c
to
5919191
Compare
4f6eb9e
to
600cfa6
Compare
5919191
to
216cdd9
Compare
In the spirit of #87 this attempts to guard against the read path producing
null
instances ofFSharpList<'T>
andFSharpSet<'T>
.However, while the docs suggest that this general approach should work, I've run aground with a
NullReferenceException
that seems similar to dotnet/runtime#86483 when inspected in the debugger (elementTypeInfo
isnull
)