Skip to content

Commit 2a09600

Browse files
authored
Add implementation and spec simplicity (#1656)
1 parent 8f2f343 commit 2a09600

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

rfcs/SemanticNullability.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,17 @@ shine and not compromising the resiliency of legacy deployed app versions.
304304
Criteria score: 🥇
305305

306306
* ✂️ Objection: proposal to lower the score to 🥈. With enough advance notice and a clear upgrade
307-
path for legacy apps, the tradeoff might be acceptable.
307+
path for legacy apps, the tradeoff might be acceptable.
308+
309+
## 🎯 H. Implementation and spec simplicity
310+
311+
The implementation required to make the proposal work should be simple.
312+
313+
| [1][solution-1] | [2][solution-2] | [3][solution-3] | [4][solution-4] | [5][solution-5] |
314+
| --------------- | --------------- | --------------- | --------------- |-----------------|
315+
|| 🚫 | 🚫 | 🚫 ||
316+
317+
Criteria score: 🥉
308318

309319
<!--
310320
@@ -388,6 +398,8 @@ have been discussed the choice of symbol comes down mostly to aesthetics.
388398
- ✅ Same syntax.
389399
- [G][criteria-g]
390400
- ✅ Error capture positions unchanged when error propagation enabled
401+
- [H][criteria-h]
402+
- ✅ Implementation and spec simplicity.
391403

392404
## 💡 2. "Strict Semantic Nullability"
393405

@@ -427,6 +439,8 @@ symbol) to indicate that a position may semantically be null.
427439
- ✅ There is no alternative syntax.
428440
- [G][criteria-g]
429441
- ✅ Error capture positions unchanged when error propagation enabled
442+
- [H][criteria-h]
443+
- 🚫 Implementation and spec simplicity.
430444

431445
## 💡 3. New "Semantic Non-Null" type, usurping `!` syntax
432446

@@ -489,6 +503,8 @@ day-to-day work.
489503
behavior.
490504
- [G][criteria-g]
491505
- ✅ Error capture positions unchanged when error propagation enabled
506+
- [H][criteria-h]
507+
- 🚫 Implementation and spec simplicity.
492508

493509
## 💡 4. New "Semantic Non-Null" type, with `?` used for nullable types
494510

@@ -526,6 +542,8 @@ directive is present, and a `?` symbol is used to indicate a nullable position.
526542
unexpected and will likely lead to confusion.
527543
- [G][criteria-g]
528544
- ✅ Error capture positions unchanged when error propagation enabled
545+
- [H][criteria-h]
546+
- 🚫 Implementation and spec simplicity.
529547

530548
## 💡 5. Use non-null in semantically non-nullable places and encourage disabling error propagation
531549

@@ -551,3 +569,5 @@ This proposal relies on the ability of clients to opt out of error propagation;
551569
- ✅ Same syntax.
552570
- [G][criteria-g]
553571
- 🚫 Using non-null in more positions will change the error boundary positions when error propagation is enabled.
572+
- [H][criteria-h]
573+
- ✅ Implementation and spec simplicity.

0 commit comments

Comments
 (0)