Files
scriptc/tests/corpus/catch-capture.ts
Chris Tate 2069684b40 Expand static Effect support across common APIs (#598)
* Expand static Effect support across common APIs

* Preserve compiler parity across expanded Effect patterns

* Fix compiler regressions exposed by Effect coverage

* Bound shared type conversion traversal

* Clarify conversion contracts and tidy fixtures

* Run every Effect fixture in CI shards

* Preserve inferred array assignments in concurrent Effect programs

* Record inferred array fixture compiler ordering
2026-10-01 02:49:31 -05:00

30 lines
904 B
TypeScript

function save(value: unknown): () => unknown {
try { throw value; }
catch (error) { return () => error; }
}
const error = new Error("original");
const saved = save(error)();
console.log(saved instanceof Error && saved === error, save(42)(), save("hello")());
function rethrow(): () => never {
try { throw error; }
catch (caught) { return () => { throw caught; }; }
}
try { rethrow()(); }
catch (caught) { if (caught instanceof Error) console.log(caught === error, caught instanceof Error); }
function nested(): () => () => string {
try { throw new TypeError("nested"); }
catch (caught) { return () => () => String(caught); }
}
console.log(nested()()());
function cycle() {
const object: { callback?: () => unknown } = {};
const value: unknown = object;
try { throw value; }
catch (caught) { object.callback = () => caught; }
console.log(object.callback!() === value);
}
cycle();