diff --git a/docs/probes/pr7269_canonical_seven_AFTER_2026-07-26.tsv b/docs/probes/pr7269_canonical_seven_AFTER_2026-07-26.tsv new file mode 100644 index 00000000000..0ab4e4da95f --- /dev/null +++ b/docs/probes/pr7269_canonical_seven_AFTER_2026-07-26.tsv @@ -0,0 +1,12 @@ +label AFTER_pr7269_applied_type_leaf +classifier_stamp rule1-first-error-plus-residual-histogram-v3 +gunbc_sha ea8cfe5f84cec28a8722912d055b35a44d12eedd7d65655602deb23b04dedbc3 +git_sha 6a8ebe53f40a986dea19eee188385b57d2438c50 +module emit cargo first_error mapped_gate verdict residual_histogram +src/v2/compiler/06_translate.dag 60 files emitted, 27 diagnostics refuse error: UNRESOLVED_CompilerError UNKNOWN_unresolved UNKNOWN-error:_UNRESOLVED_CompilerError error[E0308]:114 error[E0599]:93 error[E0277]:76 error[E0063]:18 error[E0369]:14 error[E0597]:13 error[E0107]:13 error[E0282]:9 error[E0609]:6 error[E0614]:3 error[E0392]:2 error[E0560]:1 error[E0061]:1 error[E0004]:1 uncoded:22 0 +src/v2/compiler/04_infer.dag 52 files emitted, 19 diagnostics refuse error: UNRESOLVED_CompilerError UNKNOWN_unresolved UNKNOWN-error:_UNRESOLVED_CompilerError error[E0308]:91 error[E0599]:88 error[E0277]:75 error[E0063]:18 error[E0369]:14 error[E0107]:13 error[E0282]:9 error[E0609]:6 error[E0597]:5 error[E0614]:3 error[E0392]:2 error[E0560]:1 error[E0061]:1 error[E0004]:1 uncoded:19 0 +src/v2/compiler/05_eval.dag 59 files emitted, 26 diagnostics refuse error: UNRESOLVED_CompilerError UNKNOWN_unresolved UNKNOWN-error:_UNRESOLVED_CompilerError error[E0308]:117 error[E0599]:91 error[E0277]:81 error[E0369]:29 error[E0614]:22 error[E0063]:20 error[E0107]:18 error[E0282]:9 error[E0597]:8 error[E0609]:6 error[E0560]:2 error[E0392]:2 error[E0310]:2 error[E0271]:1 error[E0061]:1 error[E0004]:1 uncoded:21 0 +src/v2/compiler/05_emit.dag 61 files emitted, 27 diagnostics refuse error: UNRESOLVED_CompilerError UNKNOWN_unresolved UNKNOWN-error:_UNRESOLVED_CompilerError error[E0308]:114 error[E0599]:93 error[E0277]:76 error[E0063]:18 error[E0369]:14 error[E0597]:13 error[E0107]:13 error[E0282]:9 error[E0609]:6 error[E0614]:3 error[E0392]:2 error[E0560]:1 error[E0061]:1 error[E0004]:1 uncoded:22 0 +src/v2/compiler/emit_host.dag 88 files emitted, 81 diagnostics refuse error: UNRESOLVED_CompilerError UNKNOWN_unresolved UNKNOWN-error:_UNRESOLVED_CompilerError error[E0308]:202 error[E0277]:129 error[E0599]:96 error[E0369]:79 error[E0107]:31 error[E0614]:22 error[E0063]:20 error[E0597]:16 error[E0282]:9 error[E0609]:6 error[E0560]:2 error[E0425]:2 error[E0392]:2 error[E0310]:2 error[E0271]:1 error[E0061]:1 error[E0004]:1 uncoded:25 0 +src/v2/compiler/emit_module.dag 62 files emitted, 27 diagnostics refuse error: UNRESOLVED_CompilerError UNKNOWN_unresolved UNKNOWN-error:_UNRESOLVED_CompilerError error[E0308]:122 error[E0599]:93 error[E0277]:76 error[E0063]:18 error[E0369]:14 error[E0597]:13 error[E0107]:13 error[E0282]:9 error[E0609]:6 error[E0614]:3 error[E0392]:2 error[E0560]:1 error[E0061]:1 error[E0004]:1 uncoded:22 0 +src/v2/compiler/materialization_carriers.dag 41 files emitted, 50 diagnostics refuse error[E0107]: missing generics for struct `Measure` UNKNOWN UNKNOWN-error[E0107]:_missing_generics_for_struct_`Measure` error[E0277]:90 error[E0599]:81 error[E0308]:77 error[E0369]:60 error[E0107]:13 error[E0061]:2 error[E0282]:1 uncoded:1 0 diff --git a/docs/probes/pr7269_canonical_seven_BEFORE_2026-07-26.tsv b/docs/probes/pr7269_canonical_seven_BEFORE_2026-07-26.tsv new file mode 100644 index 00000000000..7aa0ce99031 --- /dev/null +++ b/docs/probes/pr7269_canonical_seven_BEFORE_2026-07-26.tsv @@ -0,0 +1,12 @@ +label BEFORE_pr7269_applied_type_leaf +classifier_stamp rule1-first-error-plus-residual-histogram-v3 +gunbc_sha 09aa03dea70b1f2d50d5131e82cfc831abcb611e735d0c607c7d8d0389fee0bc +git_sha 6a8ebe53f40a986dea19eee188385b57d2438c50 +module emit cargo first_error mapped_gate verdict residual_histogram +src/v2/compiler/06_translate.dag 60 files emitted, 27 diagnostics refuse error: UNRESOLVED_CompilerError UNKNOWN_unresolved UNKNOWN-error:_UNRESOLVED_CompilerError error[E0308]:114 error[E0599]:93 error[E0277]:76 error[E0063]:18 error[E0369]:14 error[E0597]:13 error[E0107]:13 error[E0282]:9 error[E0609]:6 error[E0614]:3 error[E0392]:2 error[E0560]:1 error[E0061]:1 error[E0004]:1 uncoded:22 0 +src/v2/compiler/04_infer.dag 52 files emitted, 19 diagnostics refuse error: UNRESOLVED_CompilerError UNKNOWN_unresolved UNKNOWN-error:_UNRESOLVED_CompilerError error[E0308]:91 error[E0599]:88 error[E0277]:75 error[E0063]:18 error[E0369]:14 error[E0107]:13 error[E0282]:9 error[E0609]:6 error[E0597]:5 error[E0614]:3 error[E0392]:2 error[E0560]:1 error[E0061]:1 error[E0004]:1 uncoded:19 0 +src/v2/compiler/05_eval.dag 59 files emitted, 26 diagnostics refuse error: UNRESOLVED_CompilerError UNKNOWN_unresolved UNKNOWN-error:_UNRESOLVED_CompilerError error[E0308]:117 error[E0599]:91 error[E0277]:81 error[E0369]:29 error[E0614]:22 error[E0063]:20 error[E0107]:18 error[E0282]:9 error[E0597]:8 error[E0609]:6 error[E0560]:2 error[E0392]:2 error[E0310]:2 error[E0271]:1 error[E0061]:1 error[E0004]:1 uncoded:21 0 +src/v2/compiler/05_emit.dag 61 files emitted, 27 diagnostics refuse error: UNRESOLVED_CompilerError UNKNOWN_unresolved UNKNOWN-error:_UNRESOLVED_CompilerError error[E0308]:114 error[E0599]:93 error[E0277]:76 error[E0063]:18 error[E0369]:14 error[E0597]:13 error[E0107]:13 error[E0282]:9 error[E0609]:6 error[E0614]:3 error[E0392]:2 error[E0560]:1 error[E0061]:1 error[E0004]:1 uncoded:22 0 +src/v2/compiler/emit_host.dag 88 files emitted, 81 diagnostics refuse error: UNRESOLVED_CompilerError UNKNOWN_unresolved UNKNOWN-error:_UNRESOLVED_CompilerError error[E0308]:202 error[E0277]:129 error[E0599]:96 error[E0369]:79 error[E0107]:31 error[E0614]:22 error[E0063]:20 error[E0597]:16 error[E0282]:9 error[E0609]:6 error[E0560]:2 error[E0425]:2 error[E0392]:2 error[E0310]:2 error[E0271]:1 error[E0061]:1 error[E0004]:1 uncoded:25 0 +src/v2/compiler/emit_module.dag emit_fail emit_fail indexed 2549 modules from 2 source roots resolved 58 sources (transitive import closure) [census] 2491 indexed modules outside the closure enter the name census only (not compiled) EMIT_REFUSE unmeasured +src/v2/compiler/materialization_carriers.dag 41 files emitted, 50 diagnostics refuse error[E0107]: missing generics for struct `Measure` UNKNOWN UNKNOWN-error[E0107]:_missing_generics_for_struct_`Measure` error[E0277]:90 error[E0599]:81 error[E0308]:77 error[E0369]:60 error[E0107]:13 error[E0061]:2 error[E0282]:1 uncoded:1 0 diff --git a/docs/probes/pr7269_dotted_applied_type_AFTER_2026-07-26.tsv b/docs/probes/pr7269_dotted_applied_type_AFTER_2026-07-26.tsv new file mode 100644 index 00000000000..6c795632baa --- /dev/null +++ b/docs/probes/pr7269_dotted_applied_type_AFTER_2026-07-26.tsv @@ -0,0 +1,18 @@ +label AFTER_pr7269_dotted_applied_type +class_message expected one of `,` or `>`, found `. +class_message_grep_literal expected one of `,` or `>`, found `. +pattern_validation pr7269_pattern_validation_2026-07-26.tsv (grep -cF confirmed nonzero at pr7174 AFTER) +elimination_attribution #7197 (efe67794cd) took class to 0 in full closures; #7269 construction wall is latent here (0→0 cargo count) but unit witness RED on revert +measurement_note Class-scoped rustc message-text count per sharp-bee-290 msg_6c27c10b / msg_01e13896. NOT Gate-1 E0308 burn-down (baseline 837 unchanged). +gunbc_sha ea8cfe5f84cec28a8722912d055b35a44d12eedd7d65655602deb23b04dedbc3 +git_sha 071d3966b8b0a00f0f53be2e4621e9e147d9d454 +module dotted_applied_type_count +src/v2/compiler/06_translate.dag 0 +src/v2/compiler/04_infer.dag 0 +src/v2/compiler/05_eval.dag 0 +src/v2/compiler/05_emit.dag 0 +src/v2/compiler/emit_host.dag 0 +src/v2/compiler/emit_module.dag 0 +src/v2/compiler/materialization_carriers.dag 0 +TOTAL 0 +discriminating_witness compiler_tests::render_rust_applied_type_routes_qualified_base_through_leaf_name GREEN (qualified std.algebra.FreeMonoid base -> Vec, no dots) diff --git a/docs/probes/pr7269_dotted_applied_type_BEFORE_2026-07-26.tsv b/docs/probes/pr7269_dotted_applied_type_BEFORE_2026-07-26.tsv new file mode 100644 index 00000000000..a02f6f6e775 --- /dev/null +++ b/docs/probes/pr7269_dotted_applied_type_BEFORE_2026-07-26.tsv @@ -0,0 +1,17 @@ +label BEFORE_pr7269_dotted_applied_type +class_message expected one of `,` or `>`, found `. +class_message_grep_literal expected one of `,` or `>`, found `. +pattern_validation pr7269_pattern_validation_2026-07-26.tsv (positive control count=1 at 14685dc76 on 04_infer) +elimination_attribution #7197 GroupCompletion grounding keystone (efe67794cd) eliminated this class in full-module cargo logs; unattributed at 071d3966 BEFORE #7269 fix revert probe +gunbc_sha a6d07de583315df19f7fb59223d7de5f794d6d2cfa398df608da4fa8c8c0ae62 +git_sha 071d3966b8b0a00f0f53be2e4621e9e147d9d454 +module dotted_applied_type_count +src/v2/compiler/06_translate.dag 0 +src/v2/compiler/04_infer.dag 0 +src/v2/compiler/05_eval.dag 0 +src/v2/compiler/05_emit.dag 0 +src/v2/compiler/emit_host.dag 0 +src/v2/compiler/emit_module.dag 0 +src/v2/compiler/materialization_carriers.dag 0 +TOTAL 0 +discriminating_witness compiler_tests::render_rust_applied_type_routes_qualified_base_through_leaf_name RED when fix reverted (emits dotted base verbatim -> assertion fails) diff --git a/docs/probes/pr7269_pattern_validation_2026-07-26.tsv b/docs/probes/pr7269_pattern_validation_2026-07-26.tsv new file mode 100644 index 00000000000..931880dd635 --- /dev/null +++ b/docs/probes/pr7269_pattern_validation_2026-07-26.tsv @@ -0,0 +1,9 @@ +label pattern_validation_positive_control +class_message_full expected one of `,` or `>`, found `. +class_message_tsv_note TSV class_message column omits trailing backtick before period due to shell/TSV quoting; grep uses the full rustc literal via grep -cF +positive_control_git_sha 14685dc76cd3188fbbff4ff543e181b3d8577125 +positive_control_label pr7174_canonical_seven_AFTER_2026-07-25 +positive_control_module src/v2/compiler/04_infer.dag +positive_control_count 1 +elimination_attribution #7197 GroupCompletion grounding keystone (efe67794cd): count 1→0 on 04_infer; b4cc08686b (#7269 leaf routing alone) still count=1 on same module +elimination_not #7211 Witness/Diagnostic decouple (32daad429b count=1), #7216 (95e4bbad69 count=1) diff --git a/src/v1/05_emit_rust.dag b/src/v1/05_emit_rust.dag index 0f55a0a1d94..85b497a0b98 100644 --- a/src/v1/05_emit_rust.dag +++ b/src/v1/05_emit_rust.dag @@ -742,7 +742,7 @@ fn render_rust_applied_type(n: Node, generic_param_names: List, shared_t if is_host_diagnostics_carrier_type(n: n, source_indices: source_indices) { return render_rust_diagnostics_carrier_applied(shared_types: shared_types) } - let base_name = authored_name_at(source_indices: source_indices, node: n) + let base_name = rust_fn_sig_leaf_name(source_indices: source_indices, n: n) if n.children |> count == 0 { match rust_seed_host_container_base(name: base_name, corpus_repr: corpus_repr) { diff --git a/src/v1/compiler_tests_rust.dag b/src/v1/compiler_tests_rust.dag index 38fd6770f24..e56f412a39a 100644 --- a/src/v1/compiler_tests_rust.dag +++ b/src/v1/compiler_tests_rust.dag @@ -548,7 +548,40 @@ fn ct_coercion_tests() -> String { test_fns |> join(separator: "\n"), ct_rust_btree_set_ord_eligibility_test(), ct_diagnostics_carrier_grounding_test(), - ct_groupcompletion_checkpoint_fires_under_faithful_corpus_test()) + ct_groupcompletion_checkpoint_fires_under_faithful_corpus_test(), + ct_render_rust_applied_type_qualified_base_test()) +} + +fn ct_render_rust_applied_type_qualified_base_test() -> String { + concat( + " #[test]\n", + " fn render_rust_applied_type_routes_qualified_base_through_leaf_name() {\n", + " // Discriminating witness (PR #7269 / sharp-bee-290 msg_6c27c10b): namespace-qualified\n", + " // applied-type bases must route through rust_fn_sig_leaf_name, not authored_name_at\n", + " // verbatim — rustc reports 'expected one of `,` or `>`, found `.`' in generic position.\n", + " // RED if render_rust_applied_type regresses to dotted verbatim emit.\n", + " let source_indices = std::rc::Rc::new(HashMap::new());\n", + " let shared = std::rc::Rc::new(im::OrdSet::new());\n", + " let generics = std::rc::Rc::new(im::Vector::new());\n", + " let variant_to_enum = std::rc::Rc::new(HashMap::new());\n", + " let env = crate::v1_compiler_infer_env::empty_type_env();\n", + " let arg = named_type_node(\"Int\");\n", + " let applied = shaped_type_node(\"std.algebra.FreeMonoid\", vec![arg]);\n", + " let rendered = crate::v1_compiler_emit_rust::render_rust_applied_type(\n", + " applied,\n", + " generics,\n", + " shared,\n", + " crate::v1_compiler_infer_emit_info::RustCorpusRepr::FaithfulFreeMonoid,\n", + " source_indices,\n", + " variant_to_enum,\n", + " env,\n", + " );\n", + " assert!(\n", + " !rendered.contains('.'),\n", + " \"applied-type base must not emit namespace dots in generic position\"\n", + " );\n", + " assert_eq!(rendered, \"Vec\");\n", + " }\n\n") } fn ct_groupcompletion_checkpoint_fires_under_faithful_corpus_test() -> String { diff --git a/src/v1/stage0/src/compiler_tests.rs b/src/v1/stage0/src/compiler_tests.rs index 38f4aa91368..7daa4307feb 100644 --- a/src/v1/stage0/src/compiler_tests.rs +++ b/src/v1/stage0/src/compiler_tests.rs @@ -1199,6 +1199,35 @@ mod compiler_tests { ); } + #[test] + fn render_rust_applied_type_routes_qualified_base_through_leaf_name() { + // Discriminating witness (PR #7269 / sharp-bee-290 msg_6c27c10b): namespace-qualified + // applied-type bases must route through rust_fn_sig_leaf_name, not authored_name_at + // verbatim — rustc reports 'expected one of `,` or `>`, found `.`' in generic position. + // RED if render_rust_applied_type regresses to dotted verbatim emit. + let source_indices = std::rc::Rc::new(HashMap::new()); + let shared = std::rc::Rc::new(im::OrdSet::new()); + let generics = std::rc::Rc::new(im::Vector::new()); + let variant_to_enum = std::rc::Rc::new(HashMap::new()); + let env = crate::v1_compiler_infer_env::empty_type_env(); + let arg = named_type_node("Int"); + let applied = shaped_type_node("std.algebra.FreeMonoid", vec![arg]); + let rendered = crate::v1_compiler_emit_rust::render_rust_applied_type( + applied, + generics, + shared, + crate::v1_compiler_infer_emit_info::RustCorpusRepr::FaithfulFreeMonoid, + source_indices, + variant_to_enum, + env, + ); + assert!( + !rendered.contains('.'), + "applied-type base must not emit namespace dots in generic position" + ); + assert_eq!(rendered, "Vec"); + } + /// Return current process RSS in bytes (macOS via mach_task_basic_info). fn get_rss_bytes() -> u64 { #[cfg(target_os = "macos")] diff --git a/src/v1/stage0/src/v1_compiler_compiler_tests_rust.rs b/src/v1/stage0/src/v1_compiler_compiler_tests_rust.rs index 948ffe1e22f..21b0abc06e3 100644 --- a/src/v1/stage0/src/v1_compiler_compiler_tests_rust.rs +++ b/src/v1/stage0/src/v1_compiler_compiler_tests_rust.rs @@ -86,10 +86,14 @@ pub fn ct_coercion_tests() -> String { } __result }); - v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(" // =========================================================================\n".to_string(), " // Coercion registry tests (auto-generated from data declarations)\n".to_string()), " // =========================================================================\n\n".to_string()), test_fns.clone().join(&"\n".to_string())), ct_rust_btree_set_ord_eligibility_test()), ct_diagnostics_carrier_grounding_test()), ct_groupcompletion_checkpoint_fires_under_faithful_corpus_test()) + v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(" // =========================================================================\n".to_string(), " // Coercion registry tests (auto-generated from data declarations)\n".to_string()), " // =========================================================================\n\n".to_string()), test_fns.clone().join(&"\n".to_string())), ct_rust_btree_set_ord_eligibility_test()), ct_diagnostics_carrier_grounding_test()), ct_groupcompletion_checkpoint_fires_under_faithful_corpus_test()), ct_render_rust_applied_type_qualified_base_test()) } } +pub fn ct_render_rust_applied_type_qualified_base_test() -> String { + v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(" #[test]\n".to_string(), " fn render_rust_applied_type_routes_qualified_base_through_leaf_name() {\n".to_string()), " // Discriminating witness (PR #7269 / sharp-bee-290 msg_6c27c10b): namespace-qualified\n".to_string()), " // applied-type bases must route through rust_fn_sig_leaf_name, not authored_name_at\n".to_string()), " // verbatim — rustc reports 'expected one of `,` or `>`, found `.`' in generic position.\n".to_string()), " // RED if render_rust_applied_type regresses to dotted verbatim emit.\n".to_string()), " let source_indices = std::rc::Rc::new(HashMap::new());\n".to_string()), " let shared = std::rc::Rc::new(im::OrdSet::new());\n".to_string()), " let generics = std::rc::Rc::new(im::Vector::new());\n".to_string()), " let variant_to_enum = std::rc::Rc::new(HashMap::new());\n".to_string()), " let env = crate::v1_compiler_infer_env::empty_type_env();\n".to_string()), " let arg = named_type_node(\"Int\");\n".to_string()), " let applied = shaped_type_node(\"std.algebra.FreeMonoid\", vec![arg]);\n".to_string()), " let rendered = crate::v1_compiler_emit_rust::render_rust_applied_type(\n".to_string()), " applied,\n".to_string()), " generics,\n".to_string()), " shared,\n".to_string()), " crate::v1_compiler_infer_emit_info::RustCorpusRepr::FaithfulFreeMonoid,\n".to_string()), " source_indices,\n".to_string()), " variant_to_enum,\n".to_string()), " env,\n".to_string()), " );\n".to_string()), " assert!(\n".to_string()), " !rendered.contains('.'),\n".to_string()), " \"applied-type base must not emit namespace dots in generic position\"\n".to_string()), " );\n".to_string()), " assert_eq!(rendered, \"Vec\");\n".to_string()), " }\n\n".to_string()) +} + pub fn ct_groupcompletion_checkpoint_fires_under_faithful_corpus_test() -> String { v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(v1_rt::concat(" #[test]\n".to_string(), " fn groupcompletion_int_checkpoint_fires_under_faithful_corpus() {\n".to_string()), " // Discriminating witness for the (b) checkpoint-order fix (sharp-bee-290 sign-off,\n".to_string()), " // msg_6fc2ba88-549b-491e-9b6f-ab949539d682): emit_typed_item's zero-param alias-decl\n".to_string()), " // branch calls rust_scalar_checkpoint_render_base (the single-authority checkpoint\n".to_string()), " // lookup), not the HostNative-only rust_seed_host_numeric_alias, so the Int -> i64\n".to_string()), " // checkpoint row (dag/extdeps/languages/rust/types.dag) fires BEFORE the RHS\n".to_string()), " // (GroupCompletion) is unfolded — under BOTH corpus representations. A\n".to_string()), " // regression that narrows this back to the HostNative-only alias makes the\n".to_string()), " // FaithfulFreeMonoid arm return None, which is what this witness guards.\n".to_string()), " assert_eq!(\n".to_string()), " crate::v1_compiler_emit_rust::rust_scalar_checkpoint_render_base(\n".to_string()), " \"Int\".to_string(),\n".to_string()), " crate::v1_compiler_infer_emit_info::RustCorpusRepr::FaithfulFreeMonoid\n".to_string()), " ),\n".to_string()), " Some(\"i64\".to_string())\n".to_string()), " );\n".to_string()), " assert_eq!(\n".to_string()), " crate::v1_compiler_emit_rust::rust_scalar_checkpoint_render_base(\n".to_string()), " \"Int\".to_string(),\n".to_string()), " crate::v1_compiler_infer_emit_info::RustCorpusRepr::HostNative\n".to_string()), " ),\n".to_string()), " Some(\"i64\".to_string())\n".to_string()), " );\n".to_string()), " // GroupCompletion itself has no checkpoint row and is not the seed host numeric\n".to_string()), " // alias, so the checkpoint correctly declines to render it directly (the RHS\n".to_string()), " // unfolding path handles it as a real 2-field struct) — the checkpoint fires ONLY\n".to_string()), " // for the Int/Nat leaf name, never widening to the container type.\n".to_string()), " assert_eq!(\n".to_string()), " crate::v1_compiler_emit_rust::rust_scalar_checkpoint_render_base(\n".to_string()), " \"GroupCompletion\".to_string(),\n".to_string()), " crate::v1_compiler_infer_emit_info::RustCorpusRepr::FaithfulFreeMonoid\n".to_string()), " ),\n".to_string()), " None\n".to_string()), " );\n".to_string()), " }\n\n".to_string()) } diff --git a/src/v1/stage0/src/v1_compiler_emit_rust.rs b/src/v1/stage0/src/v1_compiler_emit_rust.rs index 3b5789aa123..0f1c0e05156 100644 --- a/src/v1/stage0/src/v1_compiler_emit_rust.rs +++ b/src/v1/stage0/src/v1_compiler_emit_rust.rs @@ -1529,7 +1529,7 @@ pub fn render_rust_applied_type( if is_host_diagnostics_carrier_type(n.clone(), source_indices.clone()) { return render_rust_diagnostics_carrier_applied(shared_types.clone()); } - let base_name = authored_name_at(source_indices.clone(), n.clone()); + let base_name = rust_fn_sig_leaf_name(source_indices.clone(), n.clone()); if ((n.children.clone().len() as i64) == 0) { match rust_seed_host_container_base(base_name.clone(), corpus_repr.clone()) { Some(host) => host.clone(),