@calcit/procs 0.13.39 → 0.13.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Binary file
@@ -0,0 +1,23 @@
1
+ # option:fold shared callback return type
2
+
3
+ - Higher-order callback matching must reuse the enclosing generic binding map.
4
+ A fresh map per callback makes repeated variables such as `option:fold`'s
5
+ return `U` independent and silently accepts incompatible branch results.
6
+ - Unhinted zero-argument thunks may safely retain a concrete return type from
7
+ their final expression. This supplies the none-branch binding for `U` while
8
+ keeping unhinted callbacks with parameters dynamic, avoiding retroactive
9
+ tightening of existing higher-order call sites.
10
+ - The inferred thunk annotation must preserve `SchemaKind::Macro` for
11
+ `defmacro` forms, matching the explicit-hint path; a dedicated regression
12
+ test prevents zero-argument macros from being exposed as ordinary functions.
13
+ - Callback signature matching stages generic bindings and commits them only on
14
+ success, so a rejected nested callback cannot constrain a later argument.
15
+ `option:fold` additionally recovers a concrete return type for unhinted
16
+ callback bodies during its own argument check, including parameterized
17
+ callbacks, without globally tightening unrelated higher-order calls.
18
+ - Preprocessing regressions cover direct folds, parameterized callbacks, and a
19
+ user macro expanding to `option:fold`; empty unhinted functions remain
20
+ dynamic rather than treating their parameter list as a return value.
21
+ - Regression coverage includes the shared-binding matcher and literal thunk
22
+ inference. The CLI reproduction now fails during preprocessing when a
23
+ `String` none branch is combined with a numeric Option payload and `identity`.
@@ -0,0 +1,4 @@
1
+ # Release 0.13.40
2
+
3
+ - Release the merged `option:fold` callback return-type enforcement from PR #397.
4
+ - Keep the Cargo crate and npm package versions aligned, then refresh the workspace lockfile before tagging from `main`.
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calcit/procs",
3
- "version": "0.13.39",
3
+ "version": "0.13.40",
4
4
  "main": "./lib/calcit.procs.mjs",
5
5
  "devDependencies": {
6
6
  "@types/node": "^25.7.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calcit/procs",
3
- "version": "0.13.39",
3
+ "version": "0.13.40",
4
4
  "main": "./lib/calcit.procs.mjs",
5
5
  "devDependencies": {
6
6
  "@types/node": "^25.7.0",