Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions docs/probes/pr7269_canonical_seven_AFTER_2026-07-26.tsv
Original file line number Diff line number Diff line change
@@ -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
12 changes: 12 additions & 0 deletions docs/probes/pr7269_canonical_seven_BEFORE_2026-07-26.tsv
Original file line number Diff line number Diff line change
@@ -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
18 changes: 18 additions & 0 deletions docs/probes/pr7269_dotted_applied_type_AFTER_2026-07-26.tsv
Original file line number Diff line number Diff line change
@@ -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<i64>, no dots)
17 changes: 17 additions & 0 deletions docs/probes/pr7269_dotted_applied_type_BEFORE_2026-07-26.tsv
Original file line number Diff line number Diff line change
@@ -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)
9 changes: 9 additions & 0 deletions docs/probes/pr7269_pattern_validation_2026-07-26.tsv
Original file line number Diff line number Diff line change
@@ -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)
2 changes: 1 addition & 1 deletion src/v1/05_emit_rust.dag
Original file line number Diff line number Diff line change
Expand Up @@ -742,7 +742,7 @@ fn render_rust_applied_type(n: Node, generic_param_names: List<String>, 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) {
Expand Down
35 changes: 34 additions & 1 deletion src/v1/compiler_tests_rust.dag
Original file line number Diff line number Diff line change
Expand Up @@ -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<i64>\");\n",
" }\n\n")
}

fn ct_groupcompletion_checkpoint_fires_under_faithful_corpus_test() -> String {
Expand Down
29 changes: 29 additions & 0 deletions src/v1/stage0/src/compiler_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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<i64>");
}

/// Return current process RSS in bytes (macOS via mach_task_basic_info).
fn get_rss_bytes() -> u64 {
#[cfg(target_os = "macos")]
Expand Down
6 changes: 5 additions & 1 deletion src/v1/stage0/src/v1_compiler_compiler_tests_rust.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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<i64>\");\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<Nat>) 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())
}
Expand Down
Loading
Loading