ForNeVeR / ForNeVeR/xaml-math

Enable C# 8's nullable annotations

Open
#230 9 comments 0 reactions 0 assignees View on GitHub
help-wanted
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.