Transition to using explicit nullable types (#184) #300
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
✨ What's this?
Removes all warnings related to nullable. Also made a more straight-forward implementation of
Maybe<T>
🔗 Relationships
Closes #184
🔍 Why do we want this?
Using explicit nullable is a move towards safer and more stable code.
🏗 How is it done?
Mostly went through all errors and fixes as I went along.
Maybe<T>
caused a bunch of trouble, so I remade the functionallity using an abstract main class (Maybe<T>
) with two deriving classes (Just<T>
andNothing<T>
). This separates the intent into two different classes, both simplifying the actual logic and prevents any casting/default issues.💥 Breaking changes
Hopefully none. Tests are unchanged (and still full of warnings) to allow for insight into backwards compability.
💡 Review hints
Might be wasier to look at commits rather than full PR, especially for the change to
Maybe<T>