Commit ae3d28b
Implement constructor type guard (#32774)
* Implement constructor type guard
* Fix code review issues for constructor type guard.
- Do not limit constructor expression to only identifiers
- Fix `assumeTrue` and operator no-narrow check
- Use better way to check that identifier type is a function
- Loosen restriction on what expr is left of ".constructor"
- Update typeGuardConstructorClassAndNumber test to include else cases
* Fix grammar & spacing in `narrowTypeByConstructor`
* fix bad merge
* switch (back?) to crlf
* update baselines
Co-authored-by: Nathan Shively-Sanders <[email protected]>1 parent b78ef30 commit ae3d28b
File tree
24 files changed
+2487
-0
lines changed- src/compiler
- tests
- baselines/reference
- cases/compiler
24 files changed
+2487
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20147 | 20147 | | |
20148 | 20148 | | |
20149 | 20149 | | |
| 20150 | + | |
| 20151 | + | |
| 20152 | + | |
| 20153 | + | |
| 20154 | + | |
| 20155 | + | |
20150 | 20156 | | |
20151 | 20157 | | |
20152 | 20158 | | |
| |||
20432 | 20438 | | |
20433 | 20439 | | |
20434 | 20440 | | |
| 20441 | + | |
| 20442 | + | |
| 20443 | + | |
| 20444 | + | |
| 20445 | + | |
| 20446 | + | |
| 20447 | + | |
| 20448 | + | |
| 20449 | + | |
| 20450 | + | |
| 20451 | + | |
| 20452 | + | |
| 20453 | + | |
| 20454 | + | |
| 20455 | + | |
| 20456 | + | |
| 20457 | + | |
| 20458 | + | |
| 20459 | + | |
| 20460 | + | |
| 20461 | + | |
| 20462 | + | |
| 20463 | + | |
| 20464 | + | |
| 20465 | + | |
| 20466 | + | |
| 20467 | + | |
| 20468 | + | |
| 20469 | + | |
| 20470 | + | |
| 20471 | + | |
| 20472 | + | |
| 20473 | + | |
| 20474 | + | |
| 20475 | + | |
| 20476 | + | |
| 20477 | + | |
| 20478 | + | |
| 20479 | + | |
| 20480 | + | |
| 20481 | + | |
| 20482 | + | |
| 20483 | + | |
| 20484 | + | |
| 20485 | + | |
| 20486 | + | |
| 20487 | + | |
| 20488 | + | |
| 20489 | + | |
| 20490 | + | |
| 20491 | + | |
| 20492 | + | |
| 20493 | + | |
20435 | 20494 | | |
20436 | 20495 | | |
20437 | 20496 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4426 | 4426 | | |
4427 | 4427 | | |
4428 | 4428 | | |
| 4429 | + | |
| 4430 | + | |
| 4431 | + | |
| 4432 | + | |
| 4433 | + | |
| 4434 | + | |
| 4435 | + | |
4429 | 4436 | | |
4430 | 4437 | | |
4431 | 4438 | | |
| |||
Lines changed: 163 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
0 commit comments