Skip to content
Merged
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
7 changes: 7 additions & 0 deletions dag/gunbc/recurring_failure_mode.dag
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,12 @@ data remediation_mutated_view: RecurringFailureMode = RecurringFailureMode {
evidence: [],
}

data diagnostic_name_mechanism_silent: RecurringFailureMode = RecurringFailureMode {
identity: "diagnostic_name_mechanism_silent" as NonEmptyStr,
authored: "diagnostic name accurate about the situation, silent about the mechanism (a diagnostic's NAME describes the state it was raised in faithfully and says nothing about WHICH PREDICATE produced it, so a reader who treats the name as a cause builds a coherent story with no load-bearing contact with the code. Nothing in the name is wrong, which is why review reads past it. THREE RECEIPTS IN ONE NIGHT FROM THREE READERS, provenance stated per receipt because a row about untraced names must not itself rest on an untraced relay. FIRST, measured by this row's author, and it leads because the reader was the author of the story: rustc labels reading `expected Rc<Vector<i64>>, found String` at 49 sites plus 2 reversed, from which a representation fork was inferred -- the model type `Symbol` rendering as `String` in parameter position and a vector in field position -- and published. Measured: `Symbol` renders CONSISTENTLY as `String`, `Connective.Atom` carries `identity: String`, and the `.dag` is well-typed with the same declared type on both sides. The published mechanism was wrong; the label was a faithful description of a mismatch the type-checker had computed. AND THE CHECK FAILED THE SAME WAY THE READING DID, which is the most instructive part rather than decoration: a grep for the printed type name returned zero and zero was read as absence, when the emitted source spells `Rc<Vec<i64>>` and `lib.rs` carries `use im::Vector as Vec`, so rustc was printing the resolved underlying name. A name was read as a fact about the tree twice in one investigation, once in the diagnostic and once in the refutation of it. WHAT THE 49 SITES ACTUALLY ARE, and it is UNCHASED: `Rc<Vec<i64>>` is how `List<Int>` renders, so they read expected `List<Int>` found `String` -- an ordinary mechanism, and a real one. The amendment closed the wrong explanation, not the defect. SECOND, reported by quick-bat-372 and independently verified: `MethodNotFound` names the situation correctly and does not say which predicate gates it -- `method_existence_decision` gates on `kernel_profile_lookup`, so a fully resolved USER product with no kernel profile answers `MethodExistenceUndecided`. THIRD, same provenance: `FieldNotFound` names a concept never emitted for field ACCESS at all, established by exhausting its three construction sites -- two pattern bindings and one guarded by a record literal's field names. WHY IT EARNS A ROW: two of the three would have shipped as PERMANENTLY-GREEN WITNESS ARMS, an assertion that a wall fired over a wall that cannot fire for that input, which is section 4b's decoration-cited-as-coverage reached by a route no other row names -- and all three were caught by reading the PRODUCER rather than by review. WHAT IS NOT CLAIMED: three instances in one night is a suggestive rate and not a base rate; all three surfaced while several lanes were unusually deep in diagnostic populations, so the frequency is a property of that work rather than of the corpus. Recognition rule: before treating a diagnostic name as a mechanism, read the function that produces it and find the predicate that gates it; if you cannot name that predicate, you have a situation and not a cause. A grep for the type name is a cheap first pass, not a sufficient check: rustc prints resolved names while source spells aliases, so `use X as Y` defeats the search in both directions and a zero can be confident and wrong. Read the producer.)",
evidence: [],
}

data recurring_failure_mode_roster: List<RecurringFailureMode> = [
hollow_alias,
state_space_conflation,
Expand All @@ -168,4 +174,5 @@ data recurring_failure_mode_roster: List<RecurringFailureMode> = [
total_at_the_level_examined_blind,
execution_provenance_loss,
remediation_mutated_view,
diagnostic_name_mechanism_silent,
]
Loading