Skip to content

Documentation Cleanup - #47

Open
Overcomplicated12 wants to merge 3 commits into
shuaimu:mainfrom
Overcomplicated12:frank/docs-cleanup
Open

Documentation Cleanup#47
Overcomplicated12 wants to merge 3 commits into
shuaimu:mainfrom
Overcomplicated12:frank/docs-cleanup

Conversation

@Overcomplicated12

Copy link
Copy Markdown

No description provided.

shuaimu pushed a commit that referenced this pull request Aug 13, 2026
…sions

Three name-resolution classes, all "the emitted spelling loses its Rust
qualification and rebinds to a shadowing entity", all serde_json-blocking:

1. crate-rooted bare callee. `crate::from_str(s)` inside `impl FromStr
   for Value` emitted bare `from_str<Value>(..)`; in the member's class
   scope that binds the member Value::from_str itself ("does not refer to
   a template"). New requalify_crate_rooted_bare_callee re-roots single-
   segment crate:: callees as `::{crate}::fn`, threaded through both
   from_str emit sites so the expected-type turbofish stays attached.

2. Deserializer owner-template recovery. `impl FromStr for Number` lives
   in de.rs but the impl-grouping pass emits it into namespace number,
   where a using-declaration for serde_core's Deserializer TRAIT wins
   over `using namespace de;` — `Deserializer<StrRead>::from_str` bound
   the wrong entity. The from_str/from_slice owner special case now
   anchors the recovered owner absolutely through its declaring module
   (::de::Deserializer; the crate-namespace wrap pass adds the crate
   prefix), matching the established local_type_module_path recipe.

3. Data-enum FACTORY form. `Enum::Variant(args)` with no expected enum
   type emitted the bare alternative aggregate, which TYPES as the
   alternative: `.map(|&b| Value::Number(b.into())).collect()`
   materialized vector<Value_Number>, which never converts to the
   Vec<Value> the Value_Array payload needs. Non-generic wrapper-form
   enums now construct through their static factory (the same route the
   generic-recovery path already uses). Owner spelling: strip the
   `_{Variant}` suffix from the aggregate's qualified name when it
   carries `::` — that spelling already resolved the RIGHT referent
   (serde's ContentSerializer aggregates serde_core_private::Content_
   Bytes, the dependency's enum, not serde's same-named ser Content) —
   and anchor bare spellings via `::{module}::{Enum}` (serde_core's UFCS
   free fns see Unexpected_Bool but not Unexpected). When the expected
   type IS the enum the aggregate stays, since the caller's wrap
   machinery adds `Enum{...}`.

Task #209: rtproof oracle 4 errors -> 1 (serde_core and serde now
precompile clean; 16207 had been blocking Deserializer<StrRead>
instantiation and masking two more). Remaining: next_entry<K,V>
backward turbofish (task #47 class).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DL64P7omurVAoYkTB3ZrbU
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant