aontu 0.43.0 → 0.45.1

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.
Files changed (80) hide show
  1. package/dist/ctx.d.ts +2 -5
  2. package/dist/ctx.js +1 -2
  3. package/dist/ctx.js.map +1 -1
  4. package/dist/lang.d.ts +1 -5
  5. package/dist/lang.js +24 -100
  6. package/dist/lang.js.map +1 -1
  7. package/dist/tsconfig.tsbuildinfo +1 -1
  8. package/dist/type.d.ts +0 -5
  9. package/dist/type.js.map +1 -1
  10. package/dist/unify.js +13 -292
  11. package/dist/unify.js.map +1 -1
  12. package/dist/utility.js +2 -6
  13. package/dist/utility.js.map +1 -1
  14. package/dist/val/BagVal.d.ts +3 -0
  15. package/dist/val/BagVal.js +6 -6
  16. package/dist/val/BagVal.js.map +1 -1
  17. package/dist/val/ConjunctVal.d.ts +1 -1
  18. package/dist/val/ConjunctVal.js +14 -137
  19. package/dist/val/ConjunctVal.js.map +1 -1
  20. package/dist/val/CopyFuncVal.js +2 -3
  21. package/dist/val/CopyFuncVal.js.map +1 -1
  22. package/dist/val/DisjunctVal.js +0 -4
  23. package/dist/val/DisjunctVal.js.map +1 -1
  24. package/dist/val/ExpectVal.js +3 -16
  25. package/dist/val/ExpectVal.js.map +1 -1
  26. package/dist/val/JunctionVal.d.ts +0 -1
  27. package/dist/val/JunctionVal.js +1 -6
  28. package/dist/val/JunctionVal.js.map +1 -1
  29. package/dist/val/KeyFuncVal.js +2 -0
  30. package/dist/val/KeyFuncVal.js.map +1 -1
  31. package/dist/val/ListVal.d.ts +0 -1
  32. package/dist/val/ListVal.js +66 -33
  33. package/dist/val/ListVal.js.map +1 -1
  34. package/dist/val/MapVal.d.ts +2 -3
  35. package/dist/val/MapVal.js +95 -67
  36. package/dist/val/MapVal.js.map +1 -1
  37. package/dist/val/MoveFuncVal.d.ts +1 -2
  38. package/dist/val/MoveFuncVal.js +13 -78
  39. package/dist/val/MoveFuncVal.js.map +1 -1
  40. package/dist/val/PathFuncVal.js +4 -25
  41. package/dist/val/PathFuncVal.js.map +1 -1
  42. package/dist/val/PlusOpVal.d.ts +1 -1
  43. package/dist/val/PrefVal.js +5 -18
  44. package/dist/val/PrefVal.js.map +1 -1
  45. package/dist/val/{PathVal.d.ts → RefVal.d.ts} +3 -4
  46. package/dist/val/{PathVal.js → RefVal.js} +77 -75
  47. package/dist/val/RefVal.js.map +1 -0
  48. package/dist/val/Val.d.ts +1 -2
  49. package/dist/val/Val.js +8 -7
  50. package/dist/val/Val.js.map +1 -1
  51. package/dist/val/VarVal.js +2 -2
  52. package/dist/val/VarVal.js.map +1 -1
  53. package/package.json +6 -5
  54. package/src/ctx.ts +3 -16
  55. package/src/lang.ts +23 -113
  56. package/src/type.ts +0 -5
  57. package/src/unify.ts +13 -310
  58. package/src/utility.ts +2 -5
  59. package/src/val/BagVal.ts +7 -6
  60. package/src/val/ConjunctVal.ts +13 -131
  61. package/src/val/CopyFuncVal.ts +2 -3
  62. package/src/val/DisjunctVal.ts +0 -6
  63. package/src/val/ExpectVal.ts +4 -18
  64. package/src/val/JunctionVal.ts +1 -5
  65. package/src/val/KeyFuncVal.ts +3 -0
  66. package/src/val/ListVal.ts +88 -38
  67. package/src/val/MapVal.ts +124 -75
  68. package/src/val/MoveFuncVal.ts +14 -79
  69. package/src/val/PathFuncVal.ts +4 -29
  70. package/src/val/PrefVal.ts +6 -19
  71. package/src/val/{RefVal.ts.old → RefVal.ts} +19 -30
  72. package/src/val/Val.ts +9 -9
  73. package/src/val/VarVal.ts +2 -2
  74. package/README.md +0 -18
  75. package/dist/val/PathVal.js.map +0 -1
  76. package/dist/val/SpreadVal.d.ts +0 -20
  77. package/dist/val/SpreadVal.js +0 -194
  78. package/dist/val/SpreadVal.js.map +0 -1
  79. package/src/val/PathVal.ts +0 -435
  80. package/src/val/SpreadVal.ts +0 -275
@@ -10,58 +10,6 @@ const err_2 = require("../err");
10
10
  const JunctionVal_1 = require("./JunctionVal");
11
11
  const utility_1 = require("../utility");
12
12
  const top_1 = require("./top");
13
- const MapVal_1 = require("./MapVal");
14
- // Shallow merge two MapVals: combine keys without deep unification.
15
- // For shared keys, merge child terms from both maps into one ConjunctVal
16
- // so spreads at that level see all children from both terms.
17
- function shallowMerge(a, b, ctx) {
18
- const out = new MapVal_1.MapVal({ peg: {} }, ctx);
19
- out.site = a.site;
20
- out.closed = a.closed || b.closed;
21
- out.optionalKeys = [...a.optionalKeys];
22
- for (const k of b.optionalKeys) {
23
- if (!out.optionalKeys.includes(k))
24
- out.optionalKeys.push(k);
25
- }
26
- let done = true;
27
- // Copy all keys from a
28
- for (const k in a.peg) {
29
- out.peg[k] = a.peg[k];
30
- }
31
- // Merge keys from b
32
- for (const k in b.peg) {
33
- if (k in out.peg) {
34
- const av = out.peg[k];
35
- const bv = b.peg[k];
36
- // Flatten both sides' terms into a single ConjunctVal
37
- const terms = [];
38
- if (av.isConjunct) {
39
- terms.push(...av.peg);
40
- }
41
- else {
42
- terms.push(av);
43
- }
44
- if (bv.isConjunct) {
45
- terms.push(...bv.peg);
46
- }
47
- else {
48
- terms.push(bv);
49
- }
50
- out.peg[k] = new ConjunctVal({ peg: terms }, ctx);
51
- done = false;
52
- }
53
- else {
54
- out.peg[k] = b.peg[k];
55
- }
56
- }
57
- for (const k in out.peg) {
58
- done = done && (type_1.DONE === out.peg[k]?.dc);
59
- }
60
- out.dc = done ? type_1.DONE : 1;
61
- (0, utility_1.propagateMarks)(a, out);
62
- (0, utility_1.propagateMarks)(b, out);
63
- return out;
64
- }
65
13
  // TODO: move main logic to op/conjunct
66
14
  class ConjunctVal extends JunctionVal_1.JunctionVal {
67
15
  constructor(spec, ctx) {
@@ -87,10 +35,6 @@ class ConjunctVal extends JunctionVal_1.JunctionVal {
87
35
  }
88
36
  unify(peer, ctx) {
89
37
  peer = peer ?? (0, top_1.top)();
90
- // Fast path: done conjunct self-unifying with TOP.
91
- if (this.done && peer.isTop) {
92
- return this;
93
- }
94
38
  const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'Conjunct', this, peer);
95
39
  let done = true;
96
40
  this.peg = norm(this.peg);
@@ -108,13 +52,8 @@ class ConjunctVal extends JunctionVal_1.JunctionVal {
108
52
  this.peg[vI].mark.type = newtype;
109
53
  this.peg[vI].mark.hide = newhide;
110
54
  // console.log('CONJUNCT-TERM', this.id, vI, this.peg[vI].canon)
111
- // Defer unify-with-TOP for map terms with spreads when other
112
- // map terms exist — the shallow merge fold handles them instead.
113
- const hasMapPeers = this.peg.length > 1 && this.peg[vI].isMap &&
114
- this.peg.some((p, i) => i !== vI && p.isMap);
115
55
  upeer[vI] = (this.peg[vI].done && peer.isTop) ? this.peg[vI] :
116
- (hasMapPeers && hasSpreads(this.peg[vI])) ? this.peg[vI] :
117
- (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'OWN') }) : ctx, this.peg[vI], peer, 'cj-own');
56
+ (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'OWN') }) : ctx, this.peg[vI], peer, 'cj-own');
118
57
  upeer[vI].mark.type = newtype = newtype || upeer[vI].mark.type;
119
58
  upeer[vI].mark.hide = newhide = newhide || upeer[vI].mark.hide;
120
59
  // let prevdone = done
@@ -130,22 +69,7 @@ class ConjunctVal extends JunctionVal_1.JunctionVal {
130
69
  }
131
70
  }
132
71
  upeer = norm(upeer);
133
- // Stable partition: fold pure terms first, spread-bearing terms
134
- // last. Pure terms (no spreads, no path-dependent functions)
135
- // unify cheaply. Dynamic terms are then folded in, applying
136
- // spread constraints once to the merged result rather than
137
- // incrementally at every intermediate fold step.
138
- const pure = [];
139
- const dyn = [];
140
- for (const term of upeer) {
141
- if (term.isPathDependent || hasSpreads(term)) {
142
- dyn.push(term);
143
- }
144
- else {
145
- pure.push(term);
146
- }
147
- }
148
- upeer = pure.concat(dyn);
72
+ // console.log('CONJUNCT-UPEER', this.id, upeer.map((v: Val) => v.canon))
149
73
  // Unify terms against each other
150
74
  let outvals = [];
151
75
  let val;
@@ -161,31 +85,21 @@ class ConjunctVal extends JunctionVal_1.JunctionVal {
161
85
  }
162
86
  // Can't unite with a RefVal, unless also a RefVal with same path.
163
87
  // else if (t0 instanceof RefVal && !(t1 instanceof RefVal)) {
164
- else if (t0.isPath && !(t1.isPath)) {
88
+ else if (t0.isRef && !(t1.isRef)) {
165
89
  outvals.push(t0);
166
90
  t0 = t1;
167
91
  }
168
- else if (t1.isPath && !(t0.isPath)) {
92
+ else if (t1.isRef && !(t0.isRef)) {
169
93
  outvals.push(t0);
170
94
  t0 = t1;
171
95
  }
172
- // Shallow merge: when both are maps AND the conjunct contains spreads,
173
- // combine keys into inner ConjunctVals instead of deep unification.
174
- // This ensures spreads see ALL children across terms before being applied.
175
- else if (t0.isMap && t1.isMap && (hasSpreads(t0) || hasSpreads(t1))) {
176
- const merged = shallowMerge(t0, t1, ctx);
177
- done = done && type_1.DONE === merged.dc;
178
- newtype = this.mark.type || merged.mark.type;
179
- newhide = this.mark.hide || merged.mark.hide;
180
- t0 = merged;
181
- }
182
96
  else {
183
97
  val = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'DEF') }) : ctx, t0, t1, 'cj-peer-t0t1');
184
98
  // console.log('CONJUNCT-T', t0.canon, t1?.canon, '->', val.canon)
185
99
  done = done && type_1.DONE === val.dc;
186
100
  newtype = this.mark.type || val.mark.type;
187
101
  newhide = this.mark.hide || val.mark.hide;
188
- // Unite was just a conjunct anyway, so discard.
102
+ // Unite was just a conjunt anyway, so discard.
189
103
  if (val.isConjunct) {
190
104
  outvals.push(t0);
191
105
  t0 = t1;
@@ -226,16 +140,6 @@ class ConjunctVal extends JunctionVal_1.JunctionVal {
226
140
  return '&';
227
141
  }
228
142
  gen(ctx) {
229
- // If this conjunct contains a SpreadVal + a generable Val,
230
- // gen the generable Val (spread is an unresolved constraint
231
- // that's a no-op at gen time — e.g., empty map with spread).
232
- if (this.peg.length === 2) {
233
- const [a, b] = this.peg;
234
- if (a.isSpread && b.isGenable)
235
- return b.gen(ctx);
236
- if (b.isSpread && a.isGenable)
237
- return a.gen(ctx);
238
- }
239
143
  // Unresolved conjunct cannot be generated, so always an error.
240
144
  let nil = (0, err_1.makeNilErr)(ctx, 'conjunct', this, // (formatPath(this.peg, this.absolute) as any),
241
145
  undefined);
@@ -257,17 +161,18 @@ exports.ConjunctVal = ConjunctVal;
257
161
  // - consistent sorting of terms
258
162
  function norm(terms) {
259
163
  let expand = [];
260
- function flattenTerms(terms) {
261
- for (let tI = 0; tI < terms.length; tI++) {
262
- if (terms[tI].isConjunct) {
263
- flattenTerms(terms[tI].peg);
264
- }
265
- else {
266
- expand.push(terms[tI]);
164
+ for (let tI = 0, pI = 0; tI < terms.length; tI++, pI++) {
165
+ if (terms[tI].isConjunct) {
166
+ const cterms = terms[tI].peg;
167
+ for (let cI = 0; cI < cterms.length; cI++) {
168
+ expand[pI + cI] = cterms[cI];
267
169
  }
170
+ pI += cterms.length - 1;
171
+ }
172
+ else {
173
+ expand[pI] = terms[tI];
268
174
  }
269
175
  }
270
- flattenTerms(terms);
271
176
  // Consistent ordering ensures order independent unification.
272
177
  // Skip sort when already in order (common case).
273
178
  let sorted = true;
@@ -283,32 +188,4 @@ function norm(terms) {
283
188
  // console.log('NORM', expand.map(t => t.canon).join(', '))
284
189
  return expand;
285
190
  }
286
- // Check if a Val tree contains any SpreadVal constraints.
287
- // Cached on _hasSpreads for performance.
288
- function hasSpreads(v) {
289
- if (v._hasSpreads !== undefined)
290
- return v._hasSpreads;
291
- let result = false;
292
- if (v.isSpread) {
293
- result = true;
294
- }
295
- else if (v.isMap || v.isList) {
296
- for (const k in v.peg) {
297
- if (v.peg[k]?.isVal && hasSpreads(v.peg[k])) {
298
- result = true;
299
- break;
300
- }
301
- }
302
- }
303
- else if (v.isJunction) {
304
- for (const p of v.peg) {
305
- if (p?.isVal && hasSpreads(p)) {
306
- result = true;
307
- break;
308
- }
309
- }
310
- }
311
- v._hasSpreads = result;
312
- return result;
313
- }
314
191
  //# sourceMappingURL=ConjunctVal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConjunctVal.js","sourceRoot":"","sources":["../../src/val/ConjunctVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAmZvD,oBAAI;AA1YN,kCAEgB;AAIhB,gCAAmC;AACnC,oCAAgC;AAEhC,gCAEe;AAGf,+CAA2C;AAE3C,wCAKmB;AAInB,+BAEc;AAEd,qCAAiC;AAGjC,oEAAoE;AACpE,yEAAyE;AACzE,6DAA6D;AAC7D,SAAS,YAAY,CAAC,CAAS,EAAE,CAAS,EAAE,GAAiB;IAC3D,MAAM,GAAG,GAAG,IAAI,eAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;IACxC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAA;IACjB,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAA;IACjC,GAAG,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAA;IACtC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC7D,CAAC;IAED,IAAI,IAAI,GAAG,IAAI,CAAA;IAEf,uBAAuB;IACvB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QACtB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACvB,CAAC;IAED,oBAAoB;IACpB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YACjB,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACrB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAEnB,sDAAsD;YACtD,MAAM,KAAK,GAAU,EAAE,CAAA;YACvB,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;gBAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;YAAC,CAAC;iBAAM,CAAC;gBAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAAC,CAAC;YACpE,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;gBAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;YAAC,CAAC;iBAAM,CAAC;gBAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAAC,CAAC;YAEpE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAA;YACjD,IAAI,GAAG,KAAK,CAAA;QACd,CAAC;aACI,CAAC;YACJ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QACxB,IAAI,GAAG,IAAI,IAAI,CAAC,WAAI,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,WAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IACxB,IAAA,wBAAc,EAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACtB,IAAA,wBAAc,EAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACtB,OAAO,GAAG,CAAA;AACZ,CAAC;AAID,uCAAuC;AACvC,MAAM,WAAY,SAAQ,yBAAW;IAKnC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QARlB,eAAU,GAAG,IAAI,CAAA;QACjB,cAAS,GAAG,IAAI,CAAA;QAChB,QAAG,GAAG,KAAK,CAAA;QAOT,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAA;QAClC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAA;QAClC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;aACjD,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAA;QAC3C,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;YACvB,IAAA,wBAAc,EAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YACvB,OAAO,CAAC,CAAA;QACV,CAAC,CAAC,CAAA;QACF,kEAAkE;IACpE,CAAC;IAED,kBAAkB;IAClB,MAAM,CAAC,IAAS;QACd,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAClB,IAAA,wBAAc,EAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC1B,OAAO,IAAI,CAAA;IACb,CAAC;IAGD,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,IAAI,GAAG,IAAI,IAAI,IAAA,SAAG,GAAE,CAAA;QAEpB,mDAAmD;QACnD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,IAAI,IAAA,qBAAW,EAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAE/E,IAAI,IAAI,GAAG,IAAI,CAAA;QAEf,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEzB,8EAA8E;QAE9E,2CAA2C;QAC3C,IAAI,KAAK,GAAU,EAAE,CAAA;QAErB,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;QAC9C,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;QAE9C,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YAC5C,yEAAyE;YACzE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAA;YAC3C,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAA;QAC7C,CAAC;QAED,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAA;YAChC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAA;YAChC,gEAAgE;YAEhE,6DAA6D;YAC7D,iEAAiE;YACjE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK;gBAC3D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAA;YAC3D,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5D,CAAC,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC1D,IAAA,aAAK,EAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAA,YAAE,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;YAEvF,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;YAC9D,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;YAE9D,sBAAsB;YACtB,IAAI,GAAG,IAAI,IAAI,CAAC,WAAI,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;YAEtC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;gBACpB,OAAO,KAAK,CAAC,EAAE,CAAC,CAAA;gBAChB,mBAAmB;gBACnB,SAAS;gBACT,yDAAyD;gBACzD,kBAAkB;gBAClB,SAAS;gBACT,IAAI;YACN,CAAC;QACH,CAAC;QAED,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QAEnB,gEAAgE;QAChE,6DAA6D;QAC7D,4DAA4D;QAC5D,2DAA2D;QAC3D,iDAAiD;QACjD,MAAM,IAAI,GAAU,EAAE,CAAA;QACtB,MAAM,GAAG,GAAU,EAAE,CAAA;QACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,eAAe,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAChB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QACD,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAExB,iCAAiC;QAEjC,IAAI,OAAO,GAAU,EAAE,CAAA;QACvB,IAAI,GAAQ,CAAA;QAGZ,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAEjB,aAAa;QACb,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YACzC,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;YAEtB,oIAAoI;YAEpI,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAChB,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAA;gBACxC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAA;YAC1C,CAAC;YAED,kEAAkE;YAClE,8DAA8D;iBACzD,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAChB,EAAE,GAAG,EAAE,CAAA;YACT,CAAC;iBAEI,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAChB,EAAE,GAAG,EAAE,CAAA;YACT,CAAC;YAGD,uEAAuE;YACvE,oEAAoE;YACpE,2EAA2E;iBACtE,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACpE,MAAM,MAAM,GAAG,YAAY,CAAC,EAAS,EAAE,EAAS,EAAE,GAAG,CAAC,CAAA;gBACtD,IAAI,GAAG,IAAI,IAAI,WAAI,KAAK,MAAM,CAAC,EAAE,CAAA;gBACjC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAA;gBAC5C,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAA;gBAC5C,EAAE,GAAG,MAAM,CAAA;YACb,CAAC;iBAEI,CAAC;gBACJ,GAAG,GAAG,IAAA,aAAK,EAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAA,YAAE,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,CAAA;gBACrF,kEAAkE;gBAClE,IAAI,GAAG,IAAI,IAAI,WAAI,KAAK,GAAG,CAAC,EAAE,CAAA;gBAC9B,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAA;gBACzC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAA;gBAEzC,gDAAgD;gBAChD,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oBACnB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;oBAChB,EAAE,GAAG,EAAE,CAAA;gBACT,CAAC;qBACI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACnB,OAAO,GAAG,CAAA;gBACZ,CAAC;qBACI,CAAC;oBACJ,EAAE,GAAG,GAAG,CAAA;gBACV,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,GAAQ,CAAA;QAEZ,4EAA4E;QAE5E,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YAEzB,6BAA6B;YAC7B,GAAG,GAAG,IAAA,SAAG,GAAE,CAAA;QACb,CAAC;QAED,iEAAiE;aAC5D,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YAC9B,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YAChB,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAA;YACvB,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAA;QACzB,CAAC;aACI,CAAC;YACJ,GAAG,GAAG,IAAI,WAAW,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QACtF,CAAC;QAED,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,WAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QAElC,iGAAiG;QAEjG,IAAA,sBAAY,EAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAErB,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,KAAK,CAAC,GAAiB,EAAE,IAAc;QACrC,IAAI,GAAG,GAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAiB,CAAA;QACjD,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,iBAAiB;QACf,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,GAAG,CAAC,GAAkB;QACpB,2DAA2D;QAC3D,4DAA4D;QAC5D,6DAA6D;QAC7D,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAA;YACvB,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS;gBAAE,OAAO,CAAC,CAAC,GAAG,CAAC,GAAU,CAAC,CAAA;YACvD,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS;gBAAE,OAAO,CAAC,CAAC,GAAG,CAAC,GAAU,CAAC,CAAA;QACzD,CAAC;QAED,+DAA+D;QAC/D,IAAI,GAAG,GAAG,IAAA,gBAAU,EAClB,GAAG,EACH,UAAU,EACV,IAAI,EAAE,gDAAgD;QACtD,SAAS,CACV,CAAA;QAED,6BAA6B;QAC7B,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACpB,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;QAC5B,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;QAC5B,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;QAE5B,oBAAoB;QAEpB,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;YAChB,MAAM,IAAI,gBAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC/B,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;CACF;AAqEC,kCAAW;AAjEb,sBAAsB;AACtB,4BAA4B;AAC5B,gCAAgC;AAChC,SAAS,IAAI,CAAC,KAAY;IAExB,IAAI,MAAM,GAAU,EAAE,CAAA;IACtB,SAAS,YAAY,CAAC,KAAY;QAChC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;gBACzB,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;YAC7B,CAAC;iBACI,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IACD,YAAY,CAAC,KAAK,CAAC,CAAA;IAGnB,6DAA6D;IAC7D,iDAAiD;IACjD,IAAI,MAAM,GAAG,IAAI,CAAA;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YACtC,MAAM,GAAG,KAAK,CAAA;YACd,MAAK;QACP,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IAChD,CAAC;IAED,2DAA2D;IAG3D,OAAO,MAAM,CAAA;AACf,CAAC;AAGD,0DAA0D;AAC1D,yCAAyC;AACzC,SAAS,UAAU,CAAC,CAAM;IACxB,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,WAAW,CAAA;IACrD,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,GAAG,IAAI,CAAA;IACf,CAAC;SACI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAC,MAAM,GAAG,IAAI,CAAC;gBAAC,MAAK;YAAC,CAAC;QACvE,CAAC;IACH,CAAC;SACI,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,EAAE,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAC,MAAM,GAAG,IAAI,CAAC;gBAAC,MAAK;YAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,CAAC,CAAC,WAAW,GAAG,MAAM,CAAA;IACtB,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"ConjunctVal.js","sourceRoot":"","sources":["../../src/val/ConjunctVal.ts"],"names":[],"mappings":"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"}
@@ -27,10 +27,9 @@ class CopyFuncVal extends FuncBaseVal_1.FuncBaseVal {
27
27
  (0, err_1.makeNilErr)(ctx, 'invalid-arg', this) :
28
28
  val.clone(ctx);
29
29
  // console.log('CR', out)
30
- if (!out.isPath) {
31
- out.mark.type = false;
32
- out.mark.hide = false;
30
+ if (!out.isRef) {
33
31
  (0, utility_1.walk)(out, (_key, val) => {
32
+ // console.log('WALK', val)
34
33
  val.mark.type = false;
35
34
  val.mark.hide = false;
36
35
  return val;
@@ -1 +1 @@
1
- {"version":3,"file":"CopyFuncVal.js","sourceRoot":"","sources":["../../src/val/CopyFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAazD,gCAAmC;AAKnC,wCAEmB;AAGnB,+CAA2C;AAG3C,MAAM,WAAY,SAAQ,yBAAW;IAKnC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QARlB,eAAU,GAAG,IAAI,CAAA;QASf,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;IACxB,CAAC;IAGD,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAGD,QAAQ;QACN,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO,CAAC,IAAkB,EAAE,KAAY;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;IAGD,OAAO,CAAC,GAAiB,EAAE,IAAW;QACpC,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QACrB,MAAM,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;YACtC,IAAA,gBAAU,EAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;YACtC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEhB,yBAAyB;QAEzB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;YACrB,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;YACrB,IAAA,cAAI,EAAC,GAAG,EAAE,CAAC,IAAiC,EAAE,GAAQ,EAAE,EAAE;gBACxD,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;gBACrB,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;gBACrB,OAAO,GAAG,CAAA;YACZ,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,gDAAgD;QAEhD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAIC,kCAAW"}
1
+ {"version":3,"file":"CopyFuncVal.js","sourceRoot":"","sources":["../../src/val/CopyFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAazD,gCAAmC;AAKnC,wCAEmB;AAGnB,+CAA2C;AAG3C,MAAM,WAAY,SAAQ,yBAAW;IAKnC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QARlB,eAAU,GAAG,IAAI,CAAA;QASf,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;IACxB,CAAC;IAGD,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAGD,QAAQ;QACN,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO,CAAC,IAAkB,EAAE,KAAY;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;IAGD,OAAO,CAAC,GAAiB,EAAE,IAAW;QACpC,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QACrB,MAAM,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;YACtC,IAAA,gBAAU,EAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;YACtC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEhB,yBAAyB;QAEzB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACf,IAAA,cAAI,EAAC,GAAG,EAAE,CAAC,IAAiC,EAAE,GAAQ,EAAE,EAAE;gBACxD,2BAA2B;gBAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;gBACrB,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;gBACrB,OAAO,GAAG,CAAA;YACZ,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,gDAAgD;QAEhD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAIC,kCAAW"}
@@ -28,10 +28,6 @@ class DisjunctVal extends JunctionVal_1.JunctionVal {
28
28
  }
29
29
  unify(peer, ctx) {
30
30
  peer = peer ?? (0, top_1.top)();
31
- // Fast path: already-done disjunct unifying with TOP.
32
- if (this.done && peer.isTop) {
33
- return this;
34
- }
35
31
  const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'Disjunct', this, peer);
36
32
  if (!this.prefsRanked) {
37
33
  this.rankPrefs(ctx);
@@ -1 +1 @@
1
- {"version":3,"file":"DisjunctVal.js","sourceRoot":"","sources":["../../src/val/DisjunctVal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DisjunctVal.js","sourceRoot":"","sources":["../../src/val/DisjunctVal.ts"],"names":[],"mappings":"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"}
@@ -18,22 +18,9 @@ class ExpectVal extends FeatureVal_1.FeatureVal {
18
18
  if (!peer.isTop) {
19
19
  this.peer = undefined === this.peer ? peer :
20
20
  (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'PEER') }) : ctx, this.peer, peer, 'expect-peer');
21
- // Unwrap nested ExpectVals to prevent infinite recursion
22
- let peg = this.peg;
23
- while (peg?.isExpect) {
24
- peg = peg.peg;
25
- }
26
- // Guard against re-entrant recursion
27
- if (this._expectDepth > 0) {
28
- out.dc = this.dc + 1;
29
- }
30
- else {
31
- this._expectDepth = (this._expectDepth || 0) + 1;
32
- const peeru = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'EXPECT') }) : ctx, this.peer, peg, 'expect-self');
33
- this._expectDepth--;
34
- if (peeru.isGenable) {
35
- out = peeru;
36
- }
21
+ const peeru = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'EXPECT') }) : ctx, this.peer, this.peg, 'expect-self');
22
+ if (peeru.isGenable) {
23
+ out = peeru;
37
24
  }
38
25
  }
39
26
  out.dc = type_1.DONE;
@@ -1 +1 @@
1
- {"version":3,"file":"ExpectVal.js","sourceRoot":"","sources":["../../src/val/ExpectVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAOzD,kCAEgB;AAMhB,oCAAgC;AAEhC,wCAKmB;AAEnB,gCAAmC;AAGnC,6CAAyC;AAGzC,MAAM,SAAU,SAAQ,uBAAU;IAOhC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAVlB,aAAQ,GAAG,IAAI,CAAA;IAWf,CAAC;IAED,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,IAAI,IAAA,qBAAW,EAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAE7E,IAAI,GAAG,GAAG,IAAI,CAAA;QAEd,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAA,aAAK,EAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAA,YAAE,EAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAA;YAE1F,yDAAyD;YACzD,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;YAClB,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC;gBACrB,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;YACf,CAAC;YAED,qCAAqC;YACrC,IAAK,IAAY,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;gBACnC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;YACtB,CAAC;iBACI,CAAC;gBACH,IAAY,CAAC,YAAY,GAAG,CAAE,IAAY,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;gBAClE,MAAM,KAAK,GACT,IAAA,aAAK,EAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAA,YAAE,EAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,aAAa,CAAC,CAC1F;gBAAC,IAAY,CAAC,YAAY,EAAE,CAAA;gBAE7B,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBACpB,GAAG,GAAG,KAAK,CAAA;gBACb,CAAC;YACH,CAAC;QACH,CAAC;QAED,GAAG,CAAC,EAAE,GAAG,WAAI,CAAA;QAEb,GAAG,CAAC,OAAO,IAAI,IAAA,sBAAY,EAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAEpC,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,GAAG,CAAC,GAAiB;QACnB,6DAA6D;QAC7D,IAAI,GAAG,GAAG,IAAA,gBAAU,EAClB,GAAG,EACH,QAAQ,EACR,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,IAAI,CACV,CAAA;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAGD,UAAU,CAAC,CAAU;QACnB,OAAO,MAAM,GAAG,IAAI,CAAC,GAAG;YACtB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9B,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAChC,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;CAEF;AAIC,8BAAS"}
1
+ {"version":3,"file":"ExpectVal.js","sourceRoot":"","sources":["../../src/val/ExpectVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAOzD,kCAEgB;AAMhB,oCAAgC;AAEhC,wCAKmB;AAEnB,gCAAmC;AAGnC,6CAAyC;AAGzC,MAAM,SAAU,SAAQ,uBAAU;IAOhC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAVlB,aAAQ,GAAG,IAAI,CAAA;IAWf,CAAC;IAED,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,IAAI,IAAA,qBAAW,EAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAE7E,IAAI,GAAG,GAAG,IAAI,CAAA;QAEd,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAA,aAAK,EAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAA,YAAE,EAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAA;YAE1F,MAAM,KAAK,GACT,IAAA,aAAK,EAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAA,YAAE,EAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;YAEhG,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,GAAG,GAAG,KAAK,CAAA;YACb,CAAC;QACH,CAAC;QAED,GAAG,CAAC,EAAE,GAAG,WAAI,CAAA;QAEb,GAAG,CAAC,OAAO,IAAI,IAAA,sBAAY,EAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAEpC,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,GAAG,CAAC,GAAiB;QACnB,6DAA6D;QAC7D,IAAI,GAAG,GAAG,IAAA,gBAAU,EAClB,GAAG,EACH,QAAQ,EACR,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,IAAI,CACV,CAAA;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAGD,UAAU,CAAC,CAAU;QACnB,OAAO,MAAM,GAAG,IAAI,CAAC,GAAG;YACtB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9B,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAChC,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;CAEF;AAIC,8BAAS"}
@@ -3,7 +3,6 @@ import { AontuContext } from '../ctx';
3
3
  import { FeatureVal } from './FeatureVal';
4
4
  declare abstract class JunctionVal extends FeatureVal {
5
5
  isJunction: boolean;
6
- _canonCache?: string;
7
6
  constructor(spec: ValSpec, ctx?: AontuContext);
8
7
  append(peer: Val): JunctionVal;
9
8
  clone(ctx: AontuContext, spec?: ValSpec): Val;
@@ -21,15 +21,10 @@ class JunctionVal extends FeatureVal_1.FeatureVal {
21
21
  return out;
22
22
  }
23
23
  get canon() {
24
- if (this._canonCache !== undefined)
25
- return this._canonCache;
26
- const c = this.peg.map((v) => {
24
+ return this.peg.map((v) => {
27
25
  return v.isJunction && Array.isArray(v.peg) && 1 < v.peg.length ?
28
26
  '(' + v.canon + ')' : v.canon; // v.id + '=' + v.canon
29
27
  }).join(this.getJunctionSymbol()); // + '<' + (this.mark.hide ? 'H' : '') + '>'
30
- if (this.done)
31
- this._canonCache = c;
32
- return c;
33
28
  }
34
29
  }
35
30
  exports.JunctionVal = JunctionVal;
@@ -1 +1 @@
1
- {"version":3,"file":"JunctionVal.js","sourceRoot":"","sources":["../../src/val/JunctionVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,6CAAyC;AAGzC,iFAAiF;AACjF,gCAAgC;AAChC,MAAe,WAAY,SAAQ,uBAAU;IAI3C,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAPlB,eAAU,GAAG,IAAI,CAAA;IAQjB,CAAC;IAED,kBAAkB;IAClB,MAAM,CAAC,IAAS;QACd,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,GAAiB,EAAE,IAAc;QACrC,IAAI,GAAG,GAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAiB,CAAA;QACjD,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/F,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,IAAI,KAAK;QACP,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,WAAW,CAAA;QAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;YAChC,OAAQ,CAAS,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACxE,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA,CAAC,uBAAuB;QACzD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA,CAAC,4CAA4C;QAC9E,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;QACnC,OAAO,CAAC,CAAA;IACV,CAAC;CAIF;AAIC,kCAAW"}
1
+ {"version":3,"file":"JunctionVal.js","sourceRoot":"","sources":["../../src/val/JunctionVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,6CAAyC;AAGzC,iFAAiF;AACjF,gCAAgC;AAChC,MAAe,WAAY,SAAQ,uBAAU;IAG3C,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,eAAU,GAAG,IAAI,CAAA;IAOjB,CAAC;IAED,kBAAkB;IAClB,MAAM,CAAC,IAAS;QACd,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,GAAiB,EAAE,IAAc;QACrC,IAAI,GAAG,GAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAiB,CAAA;QACjD,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/F,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;YAC7B,OAAQ,CAAS,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACxE,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA,CAAC,uBAAuB;QACzD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA,CAAC,4CAA4C;IAChF,CAAC;CAIF;AAIC,kCAAW"}
@@ -18,10 +18,12 @@ class KeyFuncVal extends FuncBaseVal_1.FuncBaseVal {
18
18
  return 'key';
19
19
  }
20
20
  unify(peer, ctx) {
21
+ // TODO: this delay makes keys in spreads and refs work, but it is a hack - find a better way.
21
22
  let out = this;
22
23
  if (ctx.cc < 3) {
23
24
  this.notdone();
24
25
  if (peer.isTop || (peer.id === this.id)) {
26
+ // TODO: clone needed to avoid triggering unify_cycle - find a better way
25
27
  out = this.clone(ctx);
26
28
  }
27
29
  else if (peer.isNil) {
@@ -1 +1 @@
1
- {"version":3,"file":"KeyFuncVal.js","sourceRoot":"","sources":["../../src/val/KeyFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAazD,gDAA4C;AAC5C,oDAAgD;AAIhD,+CAA2C;AAE3C,MAAM,UAAW,SAAQ,yBAAW;IAGlC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,cAAS,GAAG,IAAI,CAAA;QAOd,iBAAiB;IACnB,CAAC;IAGD,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAED,QAAQ;QACN,OAAO,KAAK,CAAA;IACd,CAAC;IAGD,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,IAAI,GAAG,GAAQ,IAAI,CAAA;QAEnB,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,EAAE,CAAA;YAEd,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACvB,CAAC;iBACI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpB,GAAG,GAAG,IAAI,CAAA;YACZ,CAAC;iBACI,CAAC;gBACJ,IACE,IAAI,CAAC,SAAS;uBACX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;uBAC3C,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAC5C,CAAC;oBACD,GAAG,GAAG,IAAI,CAAA;gBACZ,CAAC;qBACI,CAAC;oBACJ,GAAG,GAAG,IAAI,yBAAW,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;aACI,CAAC;YACJ,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC9B,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,OAAO,CAAC,IAAkB,EAAE,KAAY;QACtC,IAAI,GAAG,GAAQ,IAAI,CAAA;QAEnB,4CAA4C;QAC5C,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;QAC7B,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QAC1D,2CAA2C;QAE3C,GAAG,GAAG,IAAI,qBAAS,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;QACjC,IAAI;QAEJ,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,GAAG,CAAC,IAAkB;QACpB,OAAO,SAAS,CAAA;IAClB,CAAC;CAEF;AAIC,gCAAU"}
1
+ {"version":3,"file":"KeyFuncVal.js","sourceRoot":"","sources":["../../src/val/KeyFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAazD,gDAA4C;AAC5C,oDAAgD;AAIhD,+CAA2C;AAG3C,MAAM,UAAW,SAAQ,yBAAW;IAGlC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,cAAS,GAAG,IAAI,CAAA;QAOd,iBAAiB;IACnB,CAAC;IAGD,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAED,QAAQ;QACN,OAAO,KAAK,CAAA;IACd,CAAC;IAGD,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,8FAA8F;QAC9F,IAAI,GAAG,GAAQ,IAAI,CAAA;QAEnB,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,EAAE,CAAA;YAEd,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxC,yEAAyE;gBACzE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACvB,CAAC;iBACI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpB,GAAG,GAAG,IAAI,CAAA;YACZ,CAAC;iBACI,CAAC;gBACJ,IACE,IAAI,CAAC,SAAS;uBACX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;uBAC3C,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAC5C,CAAC;oBACD,GAAG,GAAG,IAAI,CAAA;gBACZ,CAAC;qBACI,CAAC;oBACJ,GAAG,GAAG,IAAI,yBAAW,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;aACI,CAAC;YACJ,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC9B,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,OAAO,CAAC,IAAkB,EAAE,KAAY;QACtC,IAAI,GAAG,GAAQ,IAAI,CAAA;QAEnB,4CAA4C;QAC5C,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;QAC7B,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QAC1D,2CAA2C;QAE3C,GAAG,GAAG,IAAI,qBAAS,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;QACjC,IAAI;QAEJ,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,GAAG,CAAC,IAAkB;QACpB,OAAO,SAAS,CAAA;IAClB,CAAC;CAEF;AAIC,gCAAU"}
@@ -3,7 +3,6 @@ import { AontuContext } from '../ctx';
3
3
  import { BagVal } from './BagVal';
4
4
  declare class ListVal extends BagVal {
5
5
  isList: boolean;
6
- _canonCache?: string;
7
6
  constructor(spec: {
8
7
  peg: ValList;
9
8
  }, ctx?: AontuContext);
@@ -7,6 +7,7 @@ const unify_1 = require("../unify");
7
7
  const utility_1 = require("../utility");
8
8
  const err_1 = require("../err");
9
9
  const top_1 = require("./top");
10
+ const ConjunctVal_1 = require("./ConjunctVal");
10
11
  const BagVal_1 = require("./BagVal");
11
12
  class ListVal extends BagVal_1.BagVal {
12
13
  constructor(spec, ctx) {
@@ -15,6 +16,21 @@ class ListVal extends BagVal_1.BagVal {
15
16
  if (null == this.peg) {
16
17
  throw new err_1.AontuError('ListVal spec.peg undefined');
17
18
  }
19
+ let spread = this.peg[type_1.SPREAD];
20
+ delete this.peg[type_1.SPREAD];
21
+ if (spread) {
22
+ if ('&' === spread.o) {
23
+ // TODO: handle existing spread!
24
+ this.spread.cj =
25
+ Array.isArray(spread.v) ?
26
+ 1 < spread.v.length ?
27
+ new ConjunctVal_1.ConjunctVal({ peg: spread.v }, ctx) :
28
+ spread.v[0] :
29
+ spread.v;
30
+ // let tmv = Array.isArray(spread.v) ? spread.v : [spread.v]
31
+ // this.spread.cj = new ConjunctVal({ peg: tmv }, ctx)
32
+ }
33
+ }
18
34
  }
19
35
  // NOTE: order of keys is not preserved!
20
36
  // not possible in any case - consider {a,b} unify {b,a}
@@ -27,7 +43,8 @@ class ListVal extends BagVal_1.BagVal {
27
43
  // NOTE: not a clone! needs to be constructed.
28
44
  let out = (peer.isTop ? this : new ListVal({ peg: [] }, ctx));
29
45
  out.closed = this.closed;
30
- out.optionalKeys = 0 < this.optionalKeys.length ? [...this.optionalKeys] : this.optionalKeys;
46
+ out.optionalKeys = [...this.optionalKeys];
47
+ out.spread.cj = this.spread.cj;
31
48
  out.site = this.site;
32
49
  if (peer instanceof ListVal) {
33
50
  if (!this.closed && peer.closed) {
@@ -36,43 +53,36 @@ class ListVal extends BagVal_1.BagVal {
36
53
  }
37
54
  else {
38
55
  out.closed = out.closed || peer.closed;
56
+ out.spread.cj = null == out.spread.cj ? peer.spread.cj : (null == peer.spread.cj ? out.spread.cj : (out.spread.cj =
57
+ (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'SPR') }) : ctx, out.spread.cj, peer.spread.cj, 'list-peer')));
39
58
  }
40
59
  }
41
60
  if (!exit) {
42
61
  out.dc = this.dc + 1;
43
- // Fast path: self-unify with TOP.
44
- if (peer.isTop) {
45
- let allChildrenDone = true;
46
- for (let key in this.peg) {
47
- if (type_1.DONE !== this.peg[key]?.dc) {
48
- allChildrenDone = false;
49
- break;
50
- }
51
- }
52
- if (allChildrenDone) {
53
- out.dc = type_1.DONE;
54
- ctx.explain && (0, utility_1.explainClose)(te, out);
55
- return out;
56
- }
57
- }
58
- // Unify own children
62
+ let spread_cj = out.spread.cj || TOP;
63
+ // Always unify children first
59
64
  for (let key in this.peg) {
60
65
  const keyctx = ctx.descend(key);
66
+ const key_spread_cj = spread_cj.spreadClone(keyctx);
61
67
  const child = this.peg[key];
62
68
  (0, utility_1.propagateMarks)(this, child);
63
69
  out.peg[key] =
64
- undefined === child ? (0, top_1.top)() :
70
+ undefined === child ? key_spread_cj :
65
71
  child.isNil ? child :
66
- child.done ? child :
67
- (0, unify_1.unite)(te ? keyctx.clone({ explain: (0, utility_1.ec)(te, 'PEG:' + key) }) : keyctx, child, (0, top_1.top)(), 'list-own');
72
+ key_spread_cj.isNil ? key_spread_cj :
73
+ key_spread_cj.isTop && child.done ? child :
74
+ child.isTop && key_spread_cj.done ? key_spread_cj :
75
+ (0, unify_1.unite)(te ? keyctx.clone({ explain: (0, utility_1.ec)(te, 'PEG:' + key) }) : keyctx, child, key_spread_cj, 'list-own');
68
76
  done = (done && type_1.DONE === out.peg[key].dc);
69
77
  }
78
+ const allowedKeys = this.closed ? Object.keys(this.peg) : [];
70
79
  let bad = undefined;
71
80
  if (peer instanceof ListVal) {
72
81
  let upeer = peer.done ? peer : (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'PER') }) : ctx, peer, TOP, 'list-peer-list');
82
+ // NOTE: peerkey is the index
73
83
  for (let peerkey in upeer.peg) {
74
84
  let peerchild = upeer.peg[peerkey];
75
- if (this.closed && !(peerkey in this.peg)) {
85
+ if (this.closed && !allowedKeys.includes(peerkey)) {
76
86
  bad = (0, err_1.makeNilErr)(ctx, 'closed', peerchild, undefined);
77
87
  }
78
88
  let child = out.peg[peerkey];
@@ -83,6 +93,11 @@ class ListVal extends BagVal_1.BagVal {
83
93
  child.isNil ? child :
84
94
  peerchild.isNil ? peerchild :
85
95
  (0, unify_1.unite)(te ? peerctx.clone({ explain: (0, utility_1.ec)(te, 'CHD') }) : peerctx, child, peerchild, 'list-peer');
96
+ if (this.spread.cj) {
97
+ let key_spread_cj = spread_cj.spreadClone(peerctx);
98
+ oval = out.peg[peerkey] =
99
+ (0, unify_1.unite)(te ? peerctx.clone({ explain: (0, utility_1.ec)(te, 'PSP:' + peerkey) }) : peerctx, out.peg[peerkey], key_spread_cj, 'list-spread');
100
+ }
86
101
  (0, utility_1.propagateMarks)(this, oval);
87
102
  done = (done && type_1.DONE === oval.dc);
88
103
  }
@@ -104,18 +119,36 @@ class ListVal extends BagVal_1.BagVal {
104
119
  ctx.explain && (0, utility_1.explainClose)(te, out);
105
120
  return out;
106
121
  }
107
- // Spread clone: share path-independent children directly, clone
108
- // only path-dependent ones. See MapVal.spreadClone for rationale.
122
+ // Spread clone: only deep-clone children that are path-dependent
123
+ // (isFunc, isRef). Share all other children directly.
124
+ // Spread clone: when all children are ScalarKindVal (simple type
125
+ // constraints like `string`, `number`), share them directly to avoid
126
+ // N x M allocations. ScalarKindVal is safe to share: it is immutable,
127
+ // always done, never path-dependent, and never has marks mutated.
128
+ // For anything more complex, fall back to full deep clone.
109
129
  spreadClone(ctx) {
130
+ // B1: share directly when the spread tree has no path-dependent
131
+ // leaves. See MapVal.spreadClone for rationale.
110
132
  if (!this.isPathDependent)
111
133
  return this;
134
+ let allScalarKind = true;
135
+ for (let key in this.peg) {
136
+ if (!this.peg[key]?.isScalarKind) {
137
+ allScalarKind = false;
138
+ break;
139
+ }
140
+ }
141
+ if (!allScalarKind) {
142
+ return this.clone(ctx);
143
+ }
112
144
  let out = super.clone(ctx);
113
145
  for (let entry of Object.entries(this.peg)) {
114
- const child = entry[1];
115
- out.peg[entry[0]] = child?.isPathDependent
116
- ? child.clone(ctx, { mark: {} })
117
- : child;
146
+ out.peg[entry[0]] = entry[1];
118
147
  }
148
+ // Must create a new spread object to avoid mutating the original.
149
+ out.spread = {
150
+ cj: this.spread.cj ? this.spread.cj.spreadClone(ctx) : undefined,
151
+ };
119
152
  out.closed = this.closed;
120
153
  out.optionalKeys = [...this.optionalKeys];
121
154
  return out;
@@ -126,27 +159,27 @@ class ListVal extends BagVal_1.BagVal {
126
159
  out.peg[entry[0]] =
127
160
  entry[1]?.isVal ? entry[1].clone(ctx, spec?.mark ? { mark: spec.mark } : {}) : entry[1];
128
161
  }
162
+ if (this.spread.cj) {
163
+ out.spread.cj = this.spread.cj.clone(ctx, spec?.mark ? { mark: spec.mark } : {});
164
+ }
129
165
  out.closed = this.closed;
130
166
  out.optionalKeys = [...this.optionalKeys];
131
167
  // console.log('LISTVAL-CLONE', this.canon, '->', out.canon)
132
168
  return out;
133
169
  }
134
170
  get canon() {
135
- if (this._canonCache !== undefined)
136
- return this._canonCache;
137
171
  // console.log('LISTVAL-CANON', this.optionalKeys)
138
172
  let keys = Object.keys(this.peg);
139
- const c = '' +
173
+ return '' +
140
174
  // this.errcanon() +
141
175
  '[' +
176
+ (this.spread.cj ? '&:' + this.spread.cj.canon +
177
+ (0 < keys.length ? ',' : '') : '') +
142
178
  keys
143
179
  .map(k => this.optionalKeys.includes(k) ?
144
180
  k + '?:' + this.peg[k].canon :
145
181
  this.peg[k].canon).join(',') +
146
182
  ']';
147
- if (this.done)
148
- this._canonCache = c;
149
- return c;
150
183
  }
151
184
  }
152
185
  exports.ListVal = ListVal;