-
Notifications
You must be signed in to change notification settings - Fork 789
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
[RFC FS-1060] Nullness checking #5790
Conversation
RFC link for folks interested: fsharp/fslang-design#317 |
@cartermp @TIHan I done a couple of major things on this
The compiler changes are now architected to be "neutral" , i.e. all nullness information is set to Oblvious everywhere for |
@dsyme How difficult would it be to split that out into a separate PR? Or is it more practical to just merge this into master? |
I have also added
|
Those things are integral to this PR, though the "langversion" switch could be carved out. We should merge this into master soon after confirming the overall performance degradation for the feature, to avoid massive conflicts (I'm working through the conflicts above now) |
Okay. We don't have a date for this, but once we lock down on compiler/core library changes for VS 16.0, we can "lock" and merge this into master. |
OK, good news!
This is a very large codebase so it's good to see it checks Some notes about this work so far and its limitations are in fsharp/fslang-design#339 |
Merge master to nullness
Merge master to nullness
Merge master to nullness
Merge master to nullness
Merge master to nullness
Merge master to nullness
Merge master to nullness
Merge master to nullness
Closing due to branch rename |
This is a prototype implementation of RFC FS-1060 nullable reference types
See
tests\fsharp\core\nullness\test.fsx
for testing and samples.TODO:
match x with null -> ... | x -> ...
implied use ofNonNull
patternnull
andNonNull
be considered disjunctive discriminators in pattern matching// TODO NULLNESS
DONE:
Foo<string?>
, currentlyFoo< string? >
with a space between?
and>
is needed, need to token smash?>
token in tyargs