@@ -304,7 +304,17 @@ shine and not compromising the resiliency of legacy deployed app versions.
304
304
Criteria score: 🥇
305
305
306
306
* ✂️ 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: 🥉
308
318
309
319
<!--
310
320
@@ -388,6 +398,8 @@ have been discussed the choice of symbol comes down mostly to aesthetics.
388
398
- ✅ Same syntax .
389
399
- [G ][criteria -g ]
390
400
- ✅ Error capture positions unchanged when error propagation enabled
401
+ - [H ][criteria -h ]
402
+ - ✅ Implementation and spec simplicity .
391
403
392
404
## 💡 2. "Strict Semantic Nullability"
393
405
@@ -427,6 +439,8 @@ symbol) to indicate that a position may semantically be null.
427
439
- ✅ There is no alternative syntax .
428
440
- [G ][criteria -g ]
429
441
- ✅ Error capture positions unchanged when error propagation enabled
442
+ - [H ][criteria -h ]
443
+ - 🚫 Implementation and spec simplicity .
430
444
431
445
## 💡 3. New "Semantic Non-Null" type, usurping `!` syntax
432
446
@@ -489,6 +503,8 @@ day-to-day work.
489
503
behavior.
490
504
- [G][criteria-g]
491
505
- ✅ Error capture positions unchanged when error propagation enabled
506
+ - [H][criteria-h]
507
+ - 🚫 Implementation and spec simplicity.
492
508
493
509
## 💡 4. New "Semantic Non-Null" type, with `?` used for nullable types
494
510
@@ -526,6 +542,8 @@ directive is present, and a `?` symbol is used to indicate a nullable position.
526
542
unexpected and will likely lead to confusion.
527
543
- [G][criteria-g]
528
544
- ✅ Error capture positions unchanged when error propagation enabled
545
+ - [H][criteria-h]
546
+ - 🚫 Implementation and spec simplicity.
529
547
530
548
## 💡 5. Use non-null in semantically non-nullable places and encourage disabling error propagation
531
549
@@ -551,3 +569,5 @@ This proposal relies on the ability of clients to opt out of error propagation;
551
569
- ✅ Same syntax.
552
570
- [G][criteria-g]
553
571
- 🚫 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