📝 Note the gate in changelog and backlog
Close the broad-universe type-hole task and cancel the widened-literal test task, since arbitrary strings no longer fall through to a fallback.
This commit is contained in:
1 parent
aaeeef1e11
commit
ce287b384f
2 files changed
+11
-6
No files matched your search
+6
-6
@@ -37,12 +37,12 @@ Testing:
|
||||
✔ Rewrite `src/util/__tests__/lsp-completion.ts` onto `createMessageConnection` and typed requests @done
|
||||
✔ Update `development/testing.md § Autocomplete` for the new client @done
|
||||
✔ Run `npm run verify` and check the task off @done
|
||||
☐ Test a literal union widened with `(string & {})` — `"red" | "green" | "yellow" | (string & {})` @medium
|
||||
→ autocomplete should still offer the literals; arbitrary strings stay assignable and fall through to the fallback
|
||||
☐ Type hole when using broad types like string as a universe @high
|
||||
☐ handlers cannot be exhaustive, yet it is possible to not have a fallback
|
||||
☐ one test even exploits this, I think for a negative test
|
||||
☐ does the same type hole exist for tagged-union matchers or primitive-union matchers only?
|
||||
✘ Test a literal union widened with `(string & {})` — `"red" | "green" | "yellow" | (string & {})` @medium @cancelled
|
||||
→ broad universes are rejected; the rejection is covered by the broad-universe gate tests
|
||||
✔ Type hole when using broad types like string as a universe @high @done
|
||||
→ decided: broad universes are rejected at the factory, so the exhaustive overload can always be proven
|
||||
→ value/stringification collisions (`true | "true"`, `1 | "1"`) are rejected too; handler params are typed by `Member<T, K>`
|
||||
→ see development/library.md § Supported universes
|
||||
|
||||
Matcher:
|
||||
✔ Clean up: adopt the 3-overload matcher (`src/prototype-ac2.ts`) and delete the prototypes @high @done
|
||||
|
||||
Reference in new issue
Block a user