Enable C# 8's nullable annotations
- Dominant language
- C#
- Stars
- 719
- Forks
- 113
- Avg merge
- 6d 12h
- Merged PRs (30d)
- 1
Description
After #228 is merged, we should be able to enable the new nullable reference types all over our project. It's important so we could provide the nullability information through our API for the users.
Remaining points to do:
- [ ] fix this: https://github.com/ForNeVeR/wpf-math/blob/c8c6a5f4efc88ddbc0f6807693c7f09906470e20/src/WpfMath/Atoms/RowAtom.cs#L62
- [ ] `BigOperatorAtom.BaseAtom` should become non-nullable
- [ ] `ScriptsAtom.BaseAtom` should become non-nullable
- [ ] make `StyledAtom`'s constructor parameter `atom` non-nullable, add asserts
- [ ] make `TypedAtom.Atom` non-nullable, add asserts
- [ ] make `UnderlinedAtom.Atom` non-nullable
- [ ] make `VerticalCenteredAtom.Atom` non-nullable
- [ ] make `OverUnderBox.ScriptBox` non-nullable
- [ ] `PredefinedFormulaParser` shouldn't return `null`? to fix `predefinedFormula!.RootAtom!` (`TexFormulaParser.cs:648`)
- [ ] make `Radical.BaseAtom` non-nullable
- [ ] remove TODO / fix the issue with `RowAtom` ctor (see `RowAtom(SourceSpan? source, IEnumerable elements)`)
- [ ] fix an issue with `RowAtom(SourceSpan? source, Atom? baseAtom)` (see the comment there)
- [ ] review any remaining comments about `// Nullable TODO` and remove `TODO` or fix them
- [ ] review any remaining comments about `// Nullable`
Contributor guide
No contributing guide indexed for this repository
Research direction
After confirming #228 is merged, review the nullable TODOs listed in RowAtom.cs, TexFormulaParser.cs, and the named Atom classes. Check the RowAtom constructors and PredefinedFormulaParser behavior first, then review remaining `// Nullable TODO` and `// Nullable` comments. Done means nullable annotations are enabled and the listed members and comments no longer require nullable workarounds.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- backend-api-design
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100