@@ -304,7 +304,17 @@ shine and not compromising the resiliency of legacy deployed app versions.
304304Criteria 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