behavior-contracts 0.2.1 → 0.2.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"emit-straightline-typed-go.d.ts","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-go.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAOL,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAiPpB,eAAO,MAAM,mBAAmB,EAAE,iBAOjC,CAAC;AAwmBF;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,aAM5B,CAAC"}
1
+ {"version":3,"file":"emit-straightline-typed-go.d.ts","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-go.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAOL,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAiPpB,eAAO,MAAM,mBAAmB,EAAE,iBAOjC,CAAC;AA01BF;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,aAM5B,CAAC"}
@@ -416,15 +416,10 @@ function emitTypedRunner(comp, plan) {
416
416
  const fn = sanitize(comp.name);
417
417
  // struct-native scope を組むため、port 式は portScope()(input params のみ)で emit する。
418
418
  const cplan = buildComponentPlan(comp, goStraightlineInternals.dialect, PORT_SCOPE);
419
- // typed node(componentRef で outType を持つもの)を index 化。
420
- const typedNodes = new Map();
421
- for (const n of comp.body) {
422
- const ot = n.outType;
423
- if (ot !== undefined && "component" in n) {
424
- typedNodes.set(n.id, deriveTypeRef(ot, plan));
425
- }
426
- }
427
- // 各 typed node の struct ローカル宣言(zero 値・producedフラグ)。RunPlan の exec が marshal して埋める。
419
+ // typed node(componentRef / map / cond で outType を持つもの)を index 化。map の node 結果型は
420
+ // {arr:elemType}(collected / augmented list)、cond は選択枝の合流型。いずれも struct 空間で保持する。
421
+ const typedNodes = collectTypedNodes(comp, plan);
422
+ // typed node の struct ローカル宣言(zero 値)。RunPlan の exec が marshal して埋める。
428
423
  const decls = [...typedNodes.entries()]
429
424
  .map(([id, ref]) => `\tvar ${typedLocal(id)} ${renderTypeRef(ref)}`)
430
425
  .join("\n");
@@ -492,16 +487,31 @@ ${arms}
492
487
  \treturn ${serialized}, nil
493
488
  }`;
494
489
  }
490
+ /**
491
+ * collectTypedNodes — component の body ノードで outType を持つもの(componentRef / map / cond)を
492
+ * id → 結果 TypeRef に index 化する。map/cond も struct 空間で結果を保持する(#66 de-box 拡張)。
493
+ */
494
+ function collectTypedNodes(comp, plan) {
495
+ const typedNodes = new Map();
496
+ for (const n of comp.body) {
497
+ const ot = n.outType;
498
+ if (ot !== undefined)
499
+ typedNodes.set(n.id, deriveTypeRef(ot, plan));
500
+ }
501
+ return typedNodes;
502
+ }
495
503
  /**
496
504
  * emitTypedExecArm — 1 ノードの struct-native exec 分岐。componentRef: ports を native/primitive で評価
497
505
  * (portScope 読み)→ ExecHandler → 結果を **outType struct へ marshal**(raw→typed 境界)→ struct scope に
498
- * 格納。map/cond struct-native では未対応(typed corpus componentRef のみ)— fail-closed。
506
+ * 格納。map(#66): 要素反復し per-element handler 結果を **要素 struct marshal** して `[]T` を組み、
507
+ * struct scope に格納(動的 Value collected list は作らない)。cond(#66): 純 Expression を primitive で
508
+ * 1 式評価(意味論 SSoT)→ 選択枝 raw を **outType struct へ marshal** して struct scope に格納。
499
509
  */
500
510
  function emitTypedExecArm(op, compName, typedNodes, plan) {
501
- if (op.kind !== "componentRef") {
502
- // struct-native exec typed corpus(componentRef のみ)に閉じる。map/cond typed は follow-up(#60)。
503
- throw new GeneratorFailure("UNSUPPORTED_NODE_STRAIGHTLINE", `go-typed struct-native exec: node kind '${op.kind}' is not supported in a typed component yet (typed corpus is componentRef-only; map/cond typed de-box is deferred to a follow-up). Do not silently fall back to a Value-building path.`);
504
- }
511
+ if (op.kind === "map")
512
+ return emitTypedMapArm(op, compName, typedNodes, plan);
513
+ if (op.kind === "cond")
514
+ return emitTypedCondArm(op, compName, typedNodes, plan);
505
515
  const gp = goStraightlineInternals.goPortVar;
506
516
  const portEvals = op.ports
507
517
  .map((p) => `\t\t\t${gp(p.name)}, err := ${p.expr}
@@ -513,36 +523,7 @@ function emitTypedExecArm(op, compName, typedNodes, plan) {
513
523
  const body = op.ports.length === 0 ? "" : `\n${portEvals}`;
514
524
  const ref = typedNodes.get(op.id);
515
525
  // 結果 materialization: handler 結果を outType struct へ marshal して struct scope へ格納(de-box 境界)。
516
- // outType 無しの typed component node(純 output-typed)は struct にせず、struct 空間の観点では格納不要。
517
- let materialize;
518
- if (ref === undefined) {
519
- // outType 無し node(typed component だが個々の node には注記が無い): 結果は使われない(output が
520
- // input/他 node 由来)。struct 化する型が無いので何もしない(Value を scope へ入れることもしない)。
521
- materialize = "\t\t\t_ = outcome.Ok";
522
- }
523
- else if (ref.kind === "named") {
524
- materialize = `\t\t\tst, merr := marshal_${ref.name}(outcome.Ok)
525
- \t\t\tif merr != nil {
526
- \t\t\t\treturn abort(idx, merr)
527
- \t\t\t}
528
- \t\t\tscopeMu.Lock()
529
- \t\t\t${typedLocal(op.id)} = st
530
- \t\t\tscopeMu.Unlock()`;
531
- }
532
- else {
533
- // scalar/arr/opt outType node: **fail-closed** 材化関数で具体 typed 値へ(marshal と同型の de-box)。
534
- // 旧実装は must*(型 assert を捨てて zero 値へ silent coerce)だったが、handler が outType 非適合の
535
- // 値を返した場合に沈黙で潰れる(TYPE_MISMATCH を握り潰す)ため fail-closed に差し替えた(bc#49 B3)。
536
- // materializeNode_* は emitFieldMaterialize と同じ TYPE_MISMATCH/MISSING_PROP を返す。
537
- const mfn = nodeMaterializerName(compName, op.id);
538
- materialize = `\t\t\ttv, merr := ${mfn}(outcome.Ok)
539
- \t\t\tif merr != nil {
540
- \t\t\t\treturn abort(idx, merr)
541
- \t\t\t}
542
- \t\t\tscopeMu.Lock()
543
- \t\t\t${typedLocal(op.id)} = tv
544
- \t\t\tscopeMu.Unlock()`;
545
- }
526
+ const materialize = emitStoreTypedNode(op.id, "outcome.Ok", ref, compName, plan, 3);
546
527
  return `\t\tif i == ${op.index} {
547
528
  \t\t\tports := ${PKG}.NewObj()${body}
548
529
  \t\t\toutcome, resolved := ${PKG}.ExecHandler(handlers, ${JSON.stringify(op.id)}, ${JSON.stringify(op.component)}, ports, nil)
@@ -556,6 +537,209 @@ ${materialize}
556
537
  \t\t\treturn ${PKG}.OkOutcome(nil)
557
538
  \t\t}`;
558
539
  }
540
+ /**
541
+ * emitStoreTypedNode — raw Value 式 `srcExpr` を node の outType(`ref`)へ **fail-closed** de-box し、
542
+ * 該当 typed scope ローカル(`typedLocal(nodeId)`)へ格納する Go 文ブロックを返す(indent = タブ数)。
543
+ * named→marshal_T*、scalar/arr/opt→materializeNode_*(silent-coerce しない — bc#49 B3)、注記無し→捨てる。
544
+ * componentRef / cond / map の結果格納で共有する(node 結果は必ず struct 空間・動的 Value scope は組まない)。
545
+ */
546
+ function emitStoreTypedNode(nodeId, srcExpr, ref, compName, _plan, indent) {
547
+ const t = "\t".repeat(indent);
548
+ if (ref === undefined) {
549
+ // outType 無し node(typed component だが個々の node には注記が無い): struct 化する型が無いので
550
+ // 何もしない(Value を scope へ入れることもしない)。
551
+ return `${t}_ = ${srcExpr}`;
552
+ }
553
+ const store = `${t}scopeMu.Lock()\n${t}${typedLocal(nodeId)} = tv\n${t}scopeMu.Unlock()`;
554
+ if (ref.kind === "named") {
555
+ return `${t}tv, merr := marshal_${ref.name}(${srcExpr})\n${t}if merr != nil {\n${t}\treturn abort(idx, merr)\n${t}}\n${store}`;
556
+ }
557
+ // scalar/arr/opt outType node: **fail-closed** 材化関数で具体 typed 値へ(marshal と同型の de-box)。
558
+ const mfn = nodeMaterializerName(compName, nodeId);
559
+ return `${t}tv, merr := ${mfn}(${srcExpr})\n${t}if merr != nil {\n${t}\treturn abort(idx, merr)\n${t}}\n${store}`;
560
+ }
561
+ /**
562
+ * emitTypedCondArm — typed cond の struct-native exec(#66)。cond は純 Expression(handler 非呼び)。
563
+ * `{cond:[if,then,else]}` を primitive(PrimCond。短絡・strict-bool の意味論 SSoT)で 1 式評価し、選択された
564
+ * 枝の raw Value を outType struct へ **その場で marshal**(de-box 境界)して struct scope へ格納する。
565
+ * 動的 Value node-result scope は組まない(両枝は同じ outType へ材化される)。
566
+ */
567
+ function emitTypedCondArm(op, compName, typedNodes, _plan) {
568
+ const ref = typedNodes.get(op.id);
569
+ const store = emitStoreTypedNode(op.id, "condRaw", ref, compName, _plan, 3);
570
+ return `\t\tif i == ${op.index} {
571
+ \t\t\tcondRaw, cerr := ${op.expr}
572
+ \t\t\tif cerr != nil {
573
+ \t\t\t\treturn abort(idx, cerr)
574
+ \t\t\t}
575
+ ${store}
576
+ \t\t\treturn ${PKG}.OkOutcome(nil)
577
+ \t\t}`;
578
+ }
579
+ /**
580
+ * emitTypedMapArm — typed map の struct-native exec(#66)。node 結果型は {arr:elemType}(`outType`)。
581
+ * 要素を反復し、guard(PrimCond・strict-bool SSoT)で skip、per-element ports を要素 scope(`mscope()` =
582
+ * input params + `as`→要素値)で native/primitive 評価、handler を呼び、その **raw 結果を要素 struct へ
583
+ * marshal**(de-box 境界)して `[]elemStruct` を組み、struct scope へ格納する(動的 Value collected list は
584
+ * 作らない)。batched は guard 通過全要素 ports を 1 回の handler 呼びへ。into は over 要素へ handler 結果を
585
+ * zip-attach した augment 済み Value を **要素 struct へ marshal** して `[]elemStruct` を組む(over 要素は
586
+ * 入力境界 Value・into 値は handler raw = 局所境界の合流→marshal で de-box。動的 output tree は組まない)。
587
+ * plan.concurrency は外側の RunPlan primitive が保存する(map ノードは 1 op)。
588
+ */
589
+ function emitTypedMapArm(op, compName, typedNodes, plan) {
590
+ const ref = typedNodes.get(op.id);
591
+ // typed map の結果は必ず arr({arr:elemType})。elemType が named/scalar/arr/opt いずれでも要素 struct へ marshal。
592
+ if (ref === undefined || ref.kind !== "arr") {
593
+ throw new GeneratorFailure("UNSUPPORTED_NODE_STRAIGHTLINE", `go-typed struct-native map: node '${op.id}' has no {arr:elemType} outType (got ${ref ? JSON.stringify(ref.kind) : "no outType"}). A typed map must annotate its result element type to de-box into a native []T; otherwise regenerate as untyped straight-line. Do not fall back to a dynamic Value collected list.`);
594
+ }
595
+ // #66 hardening: a typed map combining `when` (guard) AND `into` yields
596
+ // HETEROGENEOUS elements — skipped elements pass through un-augmented (no `into`
597
+ // field) while kept elements gain it, which cannot share one non-optional element
598
+ // struct. The interpreter produces a heterogeneous list; a struct-native de-box
599
+ // cannot. Reject loudly at generation time rather than emitting a module that only
600
+ // fail-closes (MISSING_PROP) at runtime for a skipping input.
601
+ if (op.guard !== undefined && op.into !== undefined) {
602
+ throw new GeneratorFailure("UNSUPPORTED_NODE_STRAIGHTLINE", `go-typed struct-native map: node '${op.id}' combines 'when' (guard) and 'into', which produces heterogeneous elements (skipped elements lack the 'into' field) that cannot de-box into a single []T. Regenerate this map as untyped straight-line, or split guard and into. Do not emit a struct-native map that fail-closes only at runtime.`);
603
+ }
604
+ const elemRef = ref.elem;
605
+ const elemGo = renderTypeRef(elemRef);
606
+ const comp = JSON.stringify(op.component);
607
+ const nodeId = JSON.stringify(op.id);
608
+ const asKey = JSON.stringify(op.as);
609
+ const gp = goStraightlineInternals.goPortVar;
610
+ // 要素 raw Value を elemStruct へ **fail-closed** materialize する関数呼び(mapElemMaterializerName → (elemT, error))。
611
+ const elemMat = mapElemMaterializerName(compName, op.id);
612
+ // mscope: portScope()(input params のみ)に `as`→要素値 を足す(node-result Value scope は組まない)。
613
+ const mscopeDef = `\t\t\t\tmel := el
614
+ \t\t\t\tmscope := func() *${PKG}.Obj {
615
+ \t\t\t\t\ts := portScope()
616
+ \t\t\t\t\ts.Set(${asKey}, mel)
617
+ \t\t\t\t\treturn s
618
+ \t\t\t\t}
619
+ \t\t\t\t_ = mscope`;
620
+ const guardBlock = op.guard === undefined
621
+ ? ""
622
+ : `\n\t\t\t\tgkeep, gerr := ${op.guard}
623
+ \t\t\t\tif gerr != nil {
624
+ \t\t\t\t\treturn abort(idx, gerr)
625
+ \t\t\t\t}
626
+ \t\t\t\tif gkeep != true {
627
+ \t\t\t\t\tcontinue
628
+ \t\t\t\t}`;
629
+ const portEvals = op.ports.length === 0
630
+ ? `\t\t\t\tports := ${PKG}.NewObj()`
631
+ : `\t\t\t\tports := ${PKG}.NewObj()\n${op.ports
632
+ .map((p) => `\t\t\t\t${gp(p.name)}, err := ${p.expr}
633
+ \t\t\t\tif err != nil {
634
+ \t\t\t\t\treturn abort(idx, err)
635
+ \t\t\t\t}
636
+ \t\t\t\tports.Set(${JSON.stringify(p.name)}, ${gp(p.name)})`)
637
+ .join("\n")}`;
638
+ // elemRaws: guard 通過要素の handler raw 結果(into でも collected でも per-element raw を貯める)。
639
+ const collectLoop = op.batched
640
+ ? `\t\t\titems := make([]${PKG}.Value, 0, len(overArr))
641
+ \t\t\tfor mi, el := range overArr {
642
+ ${mscopeDef}${guardBlock}
643
+ ${portEvals}
644
+ \t\t\t\titems = append(items, ports)
645
+ \t\t\t\tkeptIdx = append(keptIdx, mi)
646
+ \t\t\t}
647
+ \t\t\tvar elemRaws []${PKG}.Value
648
+ \t\t\tif len(items) == 0 {
649
+ \t\t\t\telemRaws = []${PKG}.Value{}
650
+ \t\t\t} else {
651
+ \t\t\t\tbatchPorts := ${PKG}.NewObj()
652
+ \t\t\t\tbatchPorts.Set("items", items)
653
+ \t\t\t\toutcome, resolved := ${PKG}.ExecHandler(handlers, ${nodeId}, ${comp}, batchPorts, nil)
654
+ \t\t\t\tif !resolved {
655
+ \t\t\t\t\treturn abort(idx, ${PKG}.NewBehaviorFailure("UNKNOWN_COMPONENT", "component '${op.component}' has no handler (fail-closed)"))
656
+ \t\t\t\t}
657
+ \t\t\t\tif outcome.IsError {
658
+ \t\t\t\t\treturn outcome
659
+ \t\t\t\t}
660
+ \t\t\t\tr, isArr := outcome.Ok.([]${PKG}.Value)
661
+ \t\t\t\tif !isArr || len(r) != len(items) {
662
+ \t\t\t\t\treturn abort(idx, ${PKG}.NewBehaviorFailure("MAP_BATCH_RESULT_MISMATCH", fmt.Sprintf("map '${op.id}': batched handler must return a list aligned to items (want %d)", len(items))))
663
+ \t\t\t\t}
664
+ \t\t\t\telemRaws = r
665
+ \t\t\t}`
666
+ : `\t\t\telemRaws := make([]${PKG}.Value, 0, len(overArr))
667
+ \t\t\tfor mi, el := range overArr {
668
+ ${mscopeDef}${guardBlock}
669
+ ${portEvals}
670
+ \t\t\t\toutcome, resolved := ${PKG}.ExecHandler(handlers, ${nodeId}, ${comp}, ports, mel)
671
+ \t\t\t\tif !resolved {
672
+ \t\t\t\t\treturn abort(idx, ${PKG}.NewBehaviorFailure("UNKNOWN_COMPONENT", "component '${op.component}' has no handler (fail-closed)"))
673
+ \t\t\t\t}
674
+ \t\t\t\tif outcome.IsError {
675
+ \t\t\t\t\treturn outcome
676
+ \t\t\t\t}
677
+ \t\t\t\telemRaws = append(elemRaws, outcome.Ok)
678
+ \t\t\t\tkeptIdx = append(keptIdx, mi)
679
+ \t\t\t}`;
680
+ // 要素 struct へ de-box して []elemStruct を組み、struct scope へ格納(動的 Value collected list は作らない)。
681
+ // 要素 materialize は **fail-closed**(elemMat = (elemT, error))— 要素が elemType 非適合なら TYPE_MISMATCH/
682
+ // MISSING_PROP で loud reject(silent-coerce しない)。
683
+ const store = `\t\t\tscopeMu.Lock()
684
+ \t\t\t${typedLocal(op.id)} = typed
685
+ \t\t\tscopeMu.Unlock()`;
686
+ const buildTyped = op.into === undefined
687
+ ? `\t\t\ttyped := make([]${elemGo}, 0, len(elemRaws))
688
+ \t\t\tfor _, er := range elemRaws {
689
+ \t\t\t\ttv, terr := ${elemMat}(er)
690
+ \t\t\t\tif terr != nil {
691
+ \t\t\t\t\treturn abort(idx, terr)
692
+ \t\t\t\t}
693
+ \t\t\t\ttyped = append(typed, tv)
694
+ \t\t\t}
695
+ ${store}`
696
+ : `\t\t\ttyped := make([]${elemGo}, 0, len(overArr))
697
+ \t\t\tmk := 0
698
+ \t\t\tfor mj, oel := range overArr {
699
+ \t\t\t\tif mk < len(keptIdx) && keptIdx[mk] == mj {
700
+ \t\t\t\t\toelObj, isObj := oel.(*${PKG}.Obj)
701
+ \t\t\t\t\tif !isObj {
702
+ \t\t\t\t\t\treturn abort(idx, ${PKG}.NewBehaviorFailure("MAP_INTO_ELEMENT_NOT_OBJECT", fmt.Sprintf("map '${op.id}': 'into' requires object elements (element %d is not an object)", mj)))
703
+ \t\t\t\t\t}
704
+ \t\t\t\t\tcp := ${PKG}.NewObj()
705
+ \t\t\t\t\tfor _, fk := range oelObj.Keys {
706
+ \t\t\t\t\t\tcp.Set(fk, oelObj.Vals[fk])
707
+ \t\t\t\t\t}
708
+ \t\t\t\t\tcp.Set(${JSON.stringify(op.into)}, elemRaws[mk])
709
+ \t\t\t\t\ttv, terr := ${elemMat}(cp)
710
+ \t\t\t\t\tif terr != nil {
711
+ \t\t\t\t\t\treturn abort(idx, terr)
712
+ \t\t\t\t\t}
713
+ \t\t\t\t\ttyped = append(typed, tv)
714
+ \t\t\t\t\tmk++
715
+ \t\t\t\t} else {
716
+ \t\t\t\t\ttv, terr := ${elemMat}(oel)
717
+ \t\t\t\t\tif terr != nil {
718
+ \t\t\t\t\t\treturn abort(idx, terr)
719
+ \t\t\t\t\t}
720
+ \t\t\t\t\ttyped = append(typed, tv)
721
+ \t\t\t\t}
722
+ \t\t\t}
723
+ ${store}`;
724
+ return `\t\tif i == ${op.index} {
725
+ \t\t\toverVal, overErr := ${op.over}
726
+ \t\t\tif overErr != nil {
727
+ \t\t\t\treturn abort(idx, overErr)
728
+ \t\t\t}
729
+ \t\t\toverArr, isArr := overVal.([]${PKG}.Value)
730
+ \t\t\tif !isArr {
731
+ \t\t\t\treturn abort(idx, ${PKG}.NewBehaviorFailure("MAP_OVER_NOT_ARRAY", "map '${op.id}': 'over' did not evaluate to an array"))
732
+ \t\t\t}
733
+ \t\t\tkeptIdx := make([]int, 0, len(overArr))
734
+ ${collectLoop}
735
+ ${buildTyped}
736
+ \t\t\treturn ${PKG}.OkOutcome(nil)
737
+ \t\t}`;
738
+ }
739
+ /** typed map の要素 fail-closed 材化関数名(component 名で namespace)。 */
740
+ function mapElemMaterializerName(compName, nodeId) {
741
+ return `materializeMapElem_${sanitize(compName)}_${nodeId.replace(/[^A-Za-z0-9_]/g, "_")}`;
742
+ }
559
743
  /** arr/opt helper 名の決定的キー(要素型で一意化)。 */
560
744
  function arrHelperKey(ref) {
561
745
  const flat = (r) => {
@@ -711,6 +895,31 @@ function emitNodeMaterializers(comp, typedNodes, plan) {
711
895
  }
712
896
  return parts.join("\n\n");
713
897
  }
898
+ /**
899
+ * emitMapElemMaterializers — typed map node(outType {arr:elemType})の要素 fail-closed 材化関数
900
+ * `materializeMapElem_<comp>_<id>(raw Value) (elemT, error)` を emit する(#66)。emitFieldMaterialize を
901
+ * 再利用し、marshaller と同型の TYPE_MISMATCH/MISSING_PROP で loud reject する(要素が elemType 非適合なら
902
+ * silent-coerce せず loud fail — 要素 de-box が本物である証拠)。
903
+ */
904
+ function emitMapElemMaterializers(comp, plan) {
905
+ const parts = [];
906
+ for (const n of comp.body) {
907
+ if (!("map" in n))
908
+ continue;
909
+ const ot = n.outType;
910
+ if (ot === undefined)
911
+ continue;
912
+ const ref = deriveTypeRef(ot, plan);
913
+ if (ref.kind !== "arr")
914
+ continue; // typed map の結果は {arr:elemType}(arm 側でも fail-closed 検査)
915
+ const elemRef = ref.elem;
916
+ const ty = renderTypeRef(elemRef);
917
+ const fn = mapElemMaterializerName(comp.name, n.id);
918
+ const body = emitFieldMaterialize("out", "raw", elemRef, plan, 1);
919
+ parts.push(`func ${fn}(raw ${PKG}.Value) (${ty}, error) {\n\tvar out ${ty}\n${body}\n\treturn out, nil\n}`);
920
+ }
921
+ return parts.join("\n\n");
922
+ }
714
923
  /** arr/opt 要素の materialize 式(named→mustMarshal, scalar→mustScalar, arr/opt→ネスト helper)。 */
715
924
  function elemMaterializeExpr(ref, varName = "e") {
716
925
  switch (ref.kind) {
@@ -738,19 +947,29 @@ function emit(ctx) {
738
947
  const mustHelpers = emitMustHelpers(plan);
739
948
  const arrOptNodeHelpers = emitArrOptNodeHelpers(ctx, plan);
740
949
  // fail-closed な scalar/arr/opt node 材化関数(bc#49 B3 — exec 経路の silent-coerce 修正)。
950
+ // componentRef / cond の scalar/arr/opt outType node を fail-closed materialize する(#66 で cond も対象)。
741
951
  const nodeMaterializers = ctx.ir.components
742
952
  .filter((c) => isTypedComponent(c))
743
953
  .map((c) => {
744
954
  const typedNodes = new Map();
745
955
  for (const n of c.body) {
956
+ // map は要素材化(materializeMapElem_*)が別途担うので node 材化からは除外する。
957
+ if ("map" in n)
958
+ continue;
746
959
  const ot = n.outType;
747
- if (ot !== undefined && "component" in n)
960
+ if (ot !== undefined)
748
961
  typedNodes.set(n.id, deriveTypeRef(ot, plan));
749
962
  }
750
963
  return emitNodeMaterializers(c, typedNodes, plan);
751
964
  })
752
965
  .filter((s) => s.length > 0)
753
966
  .join("\n\n");
967
+ // typed map の要素 fail-closed 材化関数(#66): map node の {arr:elemType} の要素型へ de-box する。
968
+ const mapElemMaterializers = ctx.ir.components
969
+ .filter((c) => isTypedComponent(c))
970
+ .map((c) => emitMapElemMaterializers(c, plan))
971
+ .filter((s) => s.length > 0)
972
+ .join("\n\n");
754
973
  const runners = ctx.ir.components
755
974
  .filter((c) => isTypedComponent(c))
756
975
  .map((c) => emitTypedRunner(c, plan))
@@ -773,6 +992,7 @@ function emit(ctx) {
773
992
  `// must-form helpers used inside the single-expression struct materialization / output assembly.\n${mustHelpers}`,
774
993
  arrOptNodeHelpers ? `// arr/opt node de-box helpers (concrete slice/pointer materialization).\n${arrOptNodeHelpers}` : undefined,
775
994
  nodeMaterializers ? `// scalar/arr/opt node materializers: FAIL-CLOSED de-box (TYPE_MISMATCH/MISSING_PROP) for typed nodes whose outType is not a named obj.\n${nodeMaterializers}` : undefined,
995
+ mapElemMaterializers ? `// typed map element materializers (#66): FAIL-CLOSED de-box of each map element into the []T element type.\n${mapElemMaterializers}` : undefined,
776
996
  `// struct-native typed runners: the REAL de-box exec path (called by Bind for typed components).\n${runners}`,
777
997
  typedDispatch,
778
998
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"emit-straightline-typed-go.js","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-go.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit-straightline-typed-go.js","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-go.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"emit-straightline-typed-rust.d.ts","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-rust.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAOL,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AA4SpB,eAAO,MAAM,qBAAqB,EAAE,iBAOnC,CAAC;AAkiBF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAM9B,CAAC"}
1
+ {"version":3,"file":"emit-straightline-typed-rust.d.ts","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-rust.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAOL,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AA4SpB,eAAO,MAAM,qBAAqB,EAAE,iBAOnC,CAAC;AA8yBF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAM9B,CAAC"}
@@ -462,19 +462,18 @@ function emitTypedRunner(comp, plan) {
462
462
  const fn = rustStraightlineInternals.sanitize(comp.name);
463
463
  // struct-native scope を組むため、port 式は port_scope()(input params のみ)で emit する。
464
464
  const cplan = buildComponentPlan(comp, rustStraightlineInternals.dialect, PORT_SCOPE);
465
- // typed node(componentRef で outType を持つもの)を index 化。
466
- const typedNodes = new Map();
467
- for (const n of comp.body) {
468
- const ot = n.outType;
469
- if (ot !== undefined && "component" in n) {
470
- typedNodes.set(n.id, deriveTypeRef(ot, plan));
471
- }
472
- }
473
- // 各 typed node の struct cell 宣言(Option<T> を RefCell で。marshal 後に Some(struct) を書き込む)。
465
+ // typed node(componentRef / map / cond で outType を持つもの)を index 化。map の node 結果型は
466
+ // {arr:elemType}(collected/augmented list)、cond は選択枝の合流型。いずれも struct 空間で保持する。
467
+ const typedNodes = collectTypedNodes(comp, plan);
468
+ // typed node の struct cell 宣言(RefCell で。marshal 後に struct を書き込む)。
474
469
  const cellDecls = [...typedNodes.entries()]
475
470
  .map(([id, ref]) => ` let ${typedCell(id)}: RefCell<${renderTypeRef(ref)}> = RefCell::new(Default::default());`)
476
471
  .join("\n");
477
- const arms = cplan.ops.map((op) => emitTypedExecArm(op, typedNodes, plan)).join("\n");
472
+ const arms = cplan.ops.map((op) => emitTypedExecArm(op, comp.name, typedNodes, plan)).join("\n");
473
+ // handler を 1 度も呼ばない typed component(cond のみ等)では `handlers` を `_handlers` に(unused-variables
474
+ // 回避)。componentRef と map(要素/batched handler)は handler を呼ぶ。
475
+ const usesHandlers = cplan.ops.some((o) => o.kind === "componentRef" || o.kind === "map");
476
+ const handlerParam = usesHandlers ? "handlers" : "_handlers";
478
477
  const planExpr = comp.plan
479
478
  ? rustStraightlineInternals.emitPlanLiteral(comp.plan)
480
479
  : "None";
@@ -493,7 +492,7 @@ function emitTypedRunner(comp, plan) {
493
492
  // Called by Bind for '${comp.name}'. (bc handlers return a Value mock = the raw->typed boundary; in
494
493
  // graphddb #60 the handler returns raw and the same marshal-at-boundary keeps it struct-native.)
495
494
  fn run_typed_${fn}<H: ComponentExec>(
496
- handlers: &mut H,
495
+ ${handlerParam}: &mut H,
497
496
  input: &[(String, Value)],
498
497
  ) -> Result<Value, BehaviorError> {
499
498
  let ops: Vec<OpSpec> = ${opsLiteral};
@@ -540,44 +539,19 @@ ${arms}
540
539
  * (port_scope 読み)→ handlers.exec_ctx → 結果を **outType struct へ marshal**(raw→typed 境界)→ cell に
541
540
  * 格納。map/cond は struct-native では未対応(typed corpus は componentRef のみ)— fail-closed。
542
541
  */
543
- function emitTypedExecArm(op, typedNodes, plan) {
544
- if (op.kind !== "componentRef") {
545
- // struct-native exec typed corpus(componentRef のみ)に閉じる。map/cond typed は follow-up(#60)。
546
- throw new GeneratorFailure("UNSUPPORTED_NODE_STRAIGHTLINE", `rust-typed struct-native exec: node kind '${op.kind}' is not supported in a typed component yet (typed corpus is componentRef-only; map/cond typed de-box is deferred to a follow-up). Do not silently fall back to a Value-building path.`);
547
- }
542
+ function emitTypedExecArm(op, compName, typedNodes, plan) {
543
+ if (op.kind === "map")
544
+ return emitTypedMapArm(op, compName, typedNodes, plan);
545
+ if (op.kind === "cond")
546
+ return emitTypedCondArm(op, compName, typedNodes, plan);
548
547
  const portRows = op.ports.length === 0
549
548
  ? " Ok(Vec::new())"
550
549
  : ` Ok(vec![\n${op.ports
551
550
  .map((pt) => ` (${rustStrLit(pt.name)}.to_string(), (${pt.expr})?),`)
552
551
  .join("\n")}\n ])`;
553
552
  const ref = typedNodes.get(op.id);
554
- // 結果 materialization: handler 結果を outType struct へ marshal して cell へ格納(de-box 境界)。
555
- let materialize;
556
- if (ref === undefined) {
557
- // outType 無し node(typed component だが個々の node には注記が無い): 結果は使われない(output が
558
- // input/他 node 由来)。struct 化する型が無いので何もしない(Value を results へ入れることもしない)。
559
- materialize = ` let _ = &v;`;
560
- }
561
- else if (ref.kind === "named") {
562
- materialize = ` match marshal_${ref.name}(v) {
563
- Ok(st) => { *${typedCell(op.id)}.borrow_mut() = st; }
564
- Err(e) => {
565
- *err_cell = Some(e);
566
- return ExecOutcome::Error("aborted".to_string());
567
- }
568
- }`;
569
- }
570
- else {
571
- // scalar/arr/opt outType node: インライン材化 block で具体 typed 値へ(de-box、named でない)。
572
- // 材化式は `?` を使わず(closure が Result を返さない)BehaviorError を err_cell へ写す match 展開にする。
573
- materialize = ` match materialize_node_${typedCell(op.id)}(v) {
574
- Ok(tv) => { *${typedCell(op.id)}.borrow_mut() = tv; }
575
- Err(e) => {
576
- *err_cell = Some(e);
577
- return ExecOutcome::Error("aborted".to_string());
578
- }
579
- }`;
580
- }
553
+ // 結果 materialization: handler 結果(&v)を outType struct へ marshal して cell へ格納(de-box 境界)。
554
+ const materialize = emitStoreTypedNodeRust(op.id, "v", ref, 4);
581
555
  return ` if i == ${op.index} {
582
556
  let eval_ports = || -> Result<Vec<(String, Value)>, behavior_contracts::ExprFailure> {
583
557
  ${portRows}
@@ -604,6 +578,244 @@ ${materialize}
604
578
  return ExecOutcome::Ok(Value::Null);
605
579
  }`;
606
580
  }
581
+ /**
582
+ * collectTypedNodes — component の body ノードで outType を持つもの(componentRef / map / cond)を
583
+ * id → 結果 TypeRef に index 化する(#66: map/cond も struct 空間で結果を保持)。
584
+ */
585
+ function collectTypedNodes(comp, plan) {
586
+ const typedNodes = new Map();
587
+ for (const n of comp.body) {
588
+ const ot = n.outType;
589
+ if (ot !== undefined)
590
+ typedNodes.set(n.id, deriveTypeRef(ot, plan));
591
+ }
592
+ return typedNodes;
593
+ }
594
+ /**
595
+ * emitStoreTypedNodeRust — raw な `&Value` 式(`srcExpr`)を node の outType(`ref`)へ **fail-closed**
596
+ * de-box し、typed cell(RefCell<T>)へ格納する Rust match block を返す(indent = 4-space 段)。named→
597
+ * marshal_T*、scalar/arr/opt→materialize_node_*、注記無し→捨てる。componentRef / cond の結果格納で共有。
598
+ * これらは `?` を使わず(closure が Result を返さない)BehaviorError を err_cell へ写す。`nodeIdForFn` は
599
+ * materialize_node_* の名前生成に使う node id(cond/componentRef とも op.id)。
600
+ */
601
+ function emitStoreTypedNodeRust(nodeId, srcExpr, ref, indent) {
602
+ const pad = " ".repeat(indent);
603
+ if (ref === undefined) {
604
+ return `${pad}let _ = ${srcExpr};`;
605
+ }
606
+ const call = ref.kind === "named" ? `marshal_${ref.name}(${srcExpr})` : `materialize_node_${typedCell(nodeId)}(${srcExpr})`;
607
+ return `${pad}match ${call} {
608
+ ${pad} Ok(tv) => { *${typedCell(nodeId)}.borrow_mut() = tv; }
609
+ ${pad} Err(e) => {
610
+ ${pad} *err_cell = Some(e);
611
+ ${pad} return ExecOutcome::Error("aborted".to_string());
612
+ ${pad} }
613
+ ${pad}}`;
614
+ }
615
+ /**
616
+ * emitTypedCondArm — typed cond の struct-native exec(#66)。cond は純 Expression(handler 非呼び)。
617
+ * `{cond:[if,then,else]}` を primitive(primitives::cond。短絡・strict-bool の意味論 SSoT)で 1 式評価し、
618
+ * 選択枝の raw Value を outType struct へ **その場で marshal**(de-box 境界)して cell へ格納する。動的 Value
619
+ * node-result scope は組まない(両枝は同じ outType へ材化される)。
620
+ */
621
+ function emitTypedCondArm(op, _compName, typedNodes, _plan) {
622
+ const ref = typedNodes.get(op.id);
623
+ const store = emitStoreTypedNodeRust(op.id, "&cond_raw", ref, 4);
624
+ return ` if i == ${op.index} {
625
+ let cond_raw: Value = match ${op.expr} {
626
+ Ok(v) => v,
627
+ Err(e) => {
628
+ *err_cell = Some(e.into());
629
+ return ExecOutcome::Error("aborted".to_string());
630
+ }
631
+ };
632
+ ${store}
633
+ return ExecOutcome::Ok(Value::Null);
634
+ }`;
635
+ }
636
+ /**
637
+ * emitTypedMapArm — typed map の struct-native exec(#66)。node 結果型は {arr:elemType}(`outType`)。要素を
638
+ * 反復し、guard(primitives::cond・strict-bool SSoT)で skip、per-element ports を要素 scope(mscope = input
639
+ * params + `as`→要素値)で native/primitive 評価、handler を呼び、その **raw 結果を要素 struct へ marshal**
640
+ * (de-box 境界)して `Vec<elemStruct>` を組み、cell へ格納する(動的 Value collected list は作らない)。batched
641
+ * は guard 通過全要素 ports を 1 回の handler 呼びへ。into は over 要素へ handler 結果を zip-attach した augment
642
+ * 済み Value を **要素 struct へ marshal**(over 要素=入力境界 Value・into 値=handler raw の局所合流→marshal で
643
+ * de-box。動的 output tree は組まない)。plan.concurrency は外側の run_plan primitive が保存する(map=1 op)。
644
+ */
645
+ function emitTypedMapArm(op, compName, typedNodes, _plan) {
646
+ const ref = typedNodes.get(op.id);
647
+ if (ref === undefined || ref.kind !== "arr") {
648
+ throw new GeneratorFailure("UNSUPPORTED_NODE_STRAIGHTLINE", `rust-typed struct-native map: node '${op.id}' has no {arr:elemType} outType (got ${ref ? JSON.stringify(ref.kind) : "no outType"}). A typed map must annotate its result element type to de-box into a native Vec<T>; otherwise regenerate as untyped straight-line. Do not fall back to a dynamic Value collected list.`);
649
+ }
650
+ // #66 hardening: a typed map combining `when` (guard) AND `into` yields
651
+ // HETEROGENEOUS elements (skipped elements lack the `into` field) that cannot
652
+ // de-box into a single Vec<T>. Reject loudly at generation time rather than
653
+ // emitting a module that only fail-closes (MISSING_PROP) at runtime on a skip.
654
+ if (op.guard !== undefined && op.into !== undefined) {
655
+ throw new GeneratorFailure("UNSUPPORTED_NODE_STRAIGHTLINE", `rust-typed struct-native map: node '${op.id}' combines 'when' (guard) and 'into', which produces heterogeneous elements (skipped elements lack the 'into' field) that cannot de-box into a single Vec<T>. Regenerate this map as untyped straight-line, or split guard and into. Do not emit a struct-native map that fail-closes only at runtime.`);
656
+ }
657
+ const elemRef = ref.elem;
658
+ const elemTy = renderTypeRef(elemRef);
659
+ const comp = rustStrLit(op.component);
660
+ const nodeId = rustStrLit(op.id);
661
+ const asKey = rustStrLit(op.as);
662
+ const elemMat = mapElemMaterializerNameRust(compName, op.id);
663
+ // mscope: input params(port_scope)に `as`→要素値 を足す(node-result Value scope は組まない)。
664
+ const mscope = ` let mscope = || -> Vec<(String, Value)> {
665
+ let mut s = ${PORT_SCOPE};
666
+ s.push((${asKey}.to_string(), el.clone()));
667
+ s
668
+ };
669
+ let _ = &mscope;`;
670
+ const guardBlock = op.guard === undefined
671
+ ? ""
672
+ : `
673
+ let gkeep = {
674
+ ${mscope}
675
+ match ${op.guard} {
676
+ Ok(v) => matches!(v, Value::Bool(true)),
677
+ Err(e) => {
678
+ *err_cell = Some(e.into());
679
+ return ExecOutcome::Error("aborted".to_string());
680
+ }
681
+ }
682
+ };
683
+ if !gkeep {
684
+ continue;
685
+ }`;
686
+ const portRows = op.ports.length === 0
687
+ ? "Ok(Vec::new())"
688
+ : `Ok(vec![\n${op.ports
689
+ .map((pt) => ` (${rustStrLit(pt.name)}.to_string(), (${pt.expr})?),`)
690
+ .join("\n")}\n ])`;
691
+ const portEval = `
692
+ let eval_ports = || -> Result<Vec<(String, Value)>, behavior_contracts::ExprFailure> {
693
+ ${mscope}
694
+ ${portRows}
695
+ };
696
+ let ports = match eval_ports() {
697
+ Ok(p) => p,
698
+ Err(e) => {
699
+ *err_cell = Some(e.into());
700
+ return ExecOutcome::Error("aborted".to_string());
701
+ }
702
+ };`;
703
+ // guard 通過要素の handler raw 結果を貯める(into でも collected でも per-element raw)。
704
+ const collectLoop = op.batched
705
+ ? ` let mut items: Vec<Value> = Vec::new();
706
+ for (mi, el) in over_arr.iter().enumerate() {${guardBlock}${portEval}
707
+ items.push(Value::Obj(ports));
708
+ kept_idx.push(mi);
709
+ }
710
+ let elem_raws: Vec<Value> = if items.is_empty() {
711
+ Vec::new()
712
+ } else {
713
+ let want = items.len();
714
+ let batch_ports = vec![("items".to_string(), Value::Arr(items))];
715
+ match handlers.exec_ctx(${nodeId}, ${comp}, &batch_ports, None) {
716
+ None => {
717
+ *err_cell = Some(unknown_component(${comp}));
718
+ return ExecOutcome::Error("aborted".to_string());
719
+ }
720
+ Some(ExecOutcome::Error(e)) => return ExecOutcome::Error(e),
721
+ Some(ExecOutcome::Ok(v)) => match v {
722
+ Value::Arr(r) if r.len() == want => r,
723
+ _ => {
724
+ *err_cell = Some(behavior_contracts::BehaviorError::new(
725
+ "MAP_BATCH_RESULT_MISMATCH",
726
+ format!("map '${op.id}': batched handler must return a list aligned to items (want {want})"),
727
+ ));
728
+ return ExecOutcome::Error("aborted".to_string());
729
+ }
730
+ },
731
+ }
732
+ };`
733
+ : ` let mut elem_raws: Vec<Value> = Vec::with_capacity(over_arr.len());
734
+ for (mi, el) in over_arr.iter().enumerate() {${guardBlock}${portEval}
735
+ match handlers.exec_ctx(${nodeId}, ${comp}, &ports, Some(el)) {
736
+ None => {
737
+ *err_cell = Some(unknown_component(${comp}));
738
+ return ExecOutcome::Error("aborted".to_string());
739
+ }
740
+ Some(ExecOutcome::Error(e)) => return ExecOutcome::Error(e),
741
+ Some(ExecOutcome::Ok(v)) => elem_raws.push(v),
742
+ }
743
+ kept_idx.push(mi);
744
+ }`;
745
+ // 要素 struct へ **fail-closed** de-box して Vec<elemStruct> を組み、cell へ格納(動的 Value list は作らない)。
746
+ const buildTyped = op.into === undefined
747
+ ? ` let mut typed: Vec<${elemTy}> = Vec::with_capacity(elem_raws.len());
748
+ for er in elem_raws.iter() {
749
+ match ${elemMat}(er) {
750
+ Ok(tv) => typed.push(tv),
751
+ Err(e) => {
752
+ *err_cell = Some(e);
753
+ return ExecOutcome::Error("aborted".to_string());
754
+ }
755
+ }
756
+ }
757
+ *${typedCell(op.id)}.borrow_mut() = typed;`
758
+ : ` let mut typed: Vec<${elemTy}> = Vec::with_capacity(over_arr.len());
759
+ let mut mk = 0usize;
760
+ for (mj, oel) in over_arr.iter().enumerate() {
761
+ let elem_val: Value = if mk < kept_idx.len() && kept_idx[mk] == mj {
762
+ let merged = match oel {
763
+ Value::Obj(pairs) => {
764
+ let mut next: Vec<(String, Value)> = pairs.clone();
765
+ if let Some(slot) = next.iter_mut().find(|(kk, _)| kk == ${rustStrLit(op.into ?? "")}) {
766
+ slot.1 = elem_raws[mk].clone();
767
+ } else {
768
+ next.push((${rustStrLit(op.into ?? "")}.to_string(), elem_raws[mk].clone()));
769
+ }
770
+ Value::Obj(next)
771
+ }
772
+ _ => {
773
+ *err_cell = Some(behavior_contracts::BehaviorError::new(
774
+ "MAP_INTO_ELEMENT_NOT_OBJECT",
775
+ format!("map '${op.id}': 'into' requires object elements (element {mj} is not an object)"),
776
+ ));
777
+ return ExecOutcome::Error("aborted".to_string());
778
+ }
779
+ };
780
+ mk += 1;
781
+ merged
782
+ } else {
783
+ oel.clone()
784
+ };
785
+ match ${elemMat}(&elem_val) {
786
+ Ok(tv) => typed.push(tv),
787
+ Err(e) => {
788
+ *err_cell = Some(e);
789
+ return ExecOutcome::Error("aborted".to_string());
790
+ }
791
+ }
792
+ }
793
+ *${typedCell(op.id)}.borrow_mut() = typed;`;
794
+ return ` if i == ${op.index} {
795
+ let over_arr: Vec<Value> = match ${op.over} {
796
+ Ok(Value::Arr(a)) => a,
797
+ Ok(_) => {
798
+ *err_cell = Some(behavior_contracts::BehaviorError::new(
799
+ "MAP_OVER_NOT_ARRAY",
800
+ "map '${op.id}': 'over' did not evaluate to an array".to_string(),
801
+ ));
802
+ return ExecOutcome::Error("aborted".to_string());
803
+ }
804
+ Err(e) => {
805
+ *err_cell = Some(e.into());
806
+ return ExecOutcome::Error("aborted".to_string());
807
+ }
808
+ };
809
+ let mut kept_idx: Vec<usize> = Vec::new();
810
+ ${collectLoop}
811
+ ${buildTyped}
812
+ return ExecOutcome::Ok(Value::Null);
813
+ }`;
814
+ }
815
+ /** typed map の要素 fail-closed 材化関数名(component 名で namespace・rust)。 */
816
+ function mapElemMaterializerNameRust(compName, nodeId) {
817
+ return `materialize_map_elem_${rustStraightlineInternals.sanitize(compName)}_${nodeId.replace(/[^A-Za-z0-9_]/g, "_")}`;
818
+ }
607
819
  /**
608
820
  * emitNodeMaterializers — scalar/arr/opt を outType に持つ typed **node** 用の材化関数
609
821
  * `materialize_node_cell_*(&Value) -> Result<T, BehaviorError>` を emit する(named node は marshal_T* を
@@ -620,6 +832,34 @@ function emitNodeMaterializers(comp, typedNodes, plan) {
620
832
  }
621
833
  return parts.join("\n\n");
622
834
  }
835
+ /**
836
+ * emitMapElemMaterializersRust — typed map node(outType {arr:elemType})の要素 fail-closed 材化関数
837
+ * `materialize_map_elem_<comp>_<id>(raw: &Value) -> Result<elemT, BehaviorError>` を emit する(#66)。
838
+ * emitFieldMaterialize を再利用し、marshaller と同型の TYPE_MISMATCH/MISSING_PROP で loud reject する。
839
+ */
840
+ function emitMapElemMaterializersRust(comp, plan) {
841
+ const parts = [];
842
+ for (const n of comp.body) {
843
+ if (!("map" in n))
844
+ continue;
845
+ const ot = n.outType;
846
+ if (ot === undefined)
847
+ continue;
848
+ const ref = deriveTypeRef(ot, plan);
849
+ if (ref.kind !== "arr")
850
+ continue;
851
+ const elemRef = ref.elem;
852
+ const ty = renderTypeRef(elemRef);
853
+ const fn = mapElemMaterializerNameRust(comp.name, n.id);
854
+ // named 要素は marshal_T*(raw) を直接返す(clippy::needless_question_mark 回避)。それ以外は
855
+ // materialize block を Ok(...) で包む(emitFieldMaterialize は末尾式・error は内部 return)。
856
+ const inner = elemRef.kind === "named"
857
+ ? `marshal_${elemRef.name}(raw)`
858
+ : `Ok(${indentBlock(emitFieldMaterialize("raw", elemRef, plan), 1).trimStart()})`;
859
+ parts.push(`#[allow(dead_code)]\nfn ${fn}(raw: &Value) -> Result<${ty}, BehaviorError> {\n ${inner}\n}`);
860
+ }
861
+ return parts.join("\n\n");
862
+ }
623
863
  // ── module 綴じ(straight-line 本体を流用 + typed 層)──────────────────────────────
624
864
  function hasAnyTypeAnnotation(ctx) {
625
865
  for (const comp of ctx.ir.components) {
@@ -736,12 +976,14 @@ function injectTypedDispatch(code, ctx) {
736
976
  throw new Error(`rust-typed emit: could not find the straight-line dispatch arm for typed component '${c.name}'`);
737
977
  }
738
978
  out = out.replace(arm, typedArm);
739
- // (2) 差し替えで dead になる straight-line 定義に allow を付す。
979
+ // (2) 差し替えで dead になる straight-line 定義に allow を付す。dead な本体(typed dispatch が SSoT に
980
+ // なるので実行されない)に対し dead_code だけでなく、body 内で発火し得る lint(未使用 handler・
981
+ // map の static-string format! など。#66 で map/cond typed component も dead 化するため)も抑止する。
740
982
  const def = `fn run_${fn}<H: ComponentExec>(`;
741
983
  if (!out.includes(def)) {
742
984
  throw new Error(`rust-typed emit: could not find the straight-line fn definition for typed component '${c.name}'`);
743
985
  }
744
- out = out.replace(def, `#[allow(dead_code)]\n${def}`);
986
+ out = out.replace(def, `#[allow(dead_code, unused_variables, clippy::useless_format)]\n${def}`);
745
987
  }
746
988
  return out;
747
989
  }
@@ -759,21 +1001,33 @@ function emit(ctx) {
759
1001
  const marshallers = rustTypedMaterializer.emitMarshallers(plan);
760
1002
  const serializers = emitSerializers(plan);
761
1003
  const marshalHelpers = emitMarshalHelpers();
762
- // node 材化関数(scalar/arr/opt outType node 用)を全 typed component から集める。
1004
+ // node 材化関数(scalar/arr/opt outType node 用)を全 typed component から集める(#66: cond も対象。
1005
+ // map は要素材化 materialize_map_elem_* が別途担うので除外)。
763
1006
  const nodeMaterializers = [];
764
1007
  for (const comp of ctx.ir.components) {
765
1008
  if (!isTypedComponent(comp))
766
1009
  continue;
767
1010
  const typedNodes = new Map();
768
1011
  for (const n of comp.body) {
1012
+ if ("map" in n)
1013
+ continue;
769
1014
  const ot = n.outType;
770
- if (ot !== undefined && "component" in n)
1015
+ if (ot !== undefined)
771
1016
  typedNodes.set(n.id, deriveTypeRef(ot, plan));
772
1017
  }
773
1018
  const nm = emitNodeMaterializers(comp, typedNodes, plan);
774
1019
  if (nm)
775
1020
  nodeMaterializers.push(nm);
776
1021
  }
1022
+ // typed map の要素 fail-closed 材化関数(#66)。
1023
+ const mapElemMaterializers = [];
1024
+ for (const comp of ctx.ir.components) {
1025
+ if (!isTypedComponent(comp))
1026
+ continue;
1027
+ const me = emitMapElemMaterializersRust(comp, plan);
1028
+ if (me)
1029
+ mapElemMaterializers.push(me);
1030
+ }
777
1031
  const runners = ctx.ir.components
778
1032
  .filter((c) => isTypedComponent(c))
779
1033
  .map((c) => emitTypedRunner(c, plan))
@@ -799,6 +1053,9 @@ use std::cell::RefCell;`;
799
1053
  nodeMaterializers.length
800
1054
  ? `// scalar/arr/opt node materializers: concrete de-box for typed nodes whose outType is not a named obj.\n${nodeMaterializers.join("\n\n")}`
801
1055
  : undefined,
1056
+ mapElemMaterializers.length
1057
+ ? `// typed map element materializers (#66): FAIL-CLOSED de-box of each map element into the Vec<T> element type.\n${mapElemMaterializers.join("\n\n")}`
1058
+ : undefined,
802
1059
  serializers
803
1060
  ? `// typed -> Value serializers (final return boundary only): canonical observation for the equivalence pin.\n${serializers}`
804
1061
  : undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"emit-straightline-typed-rust.js","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-rust.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit-straightline-typed-rust.js","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-rust.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "behavior-contracts",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "Language-agnostic runtime core for behavior contracts (dsl-contracts): validateEnvelope / evaluateExpression / renderTemplate / runPlan / canonical serialization. Single source of truth for the shared DSL runtime primitives.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",