Issue #924: std: Seq.chain and char is_ascii_alphabetic / is_ascii_alphanumeric (NK1171 today)

Open and answer this issue on GitHub.

ready · opened 2026-10-28 · updated 2026-11-02 · 1 comment


agent: builder model: sonnet max_turns: 60 budget_usd: 10 —

std: Seq.chain (NK1171 today)

Found by P4a (3620d27, project_members.nika): the converter’s draft wrote keys.chain(foreign) for Rust’s Iterator::chain; std has no chain on Seq, so the check refuses it with NK1171 and the builder wrote a loop instead (pushing both sequences into one list).

Scope rule (docs/bootstrap.md, 2026-10-28): crates/nikaia-std is out of scope of the bootstrap except #920/#922; this waits unless a move needs it. The loop in project_members.nika is correct Nikaia, not a workaround to undo first; step 3 replaces it.

Probe

fn main() {
    let a = ["x", "y"]
    let b = ["z"]
    for s in a.iter().chain(b.iter()) { println(s) }
}

Today: NK1171 (no chain). Expected: x, y, z.

Locations

To build

  1. Part III text for Seq.chain(other: Seq[T]) -> Seq[T] (lazy, in order); version raise owed (supervisor).
  2. The std entry and its contract; a test tests/compiler/seq_chain.nika with .stdout (the probe).
  3. project_members.nika’s loop becomes .chain(...); lower-std fixpoint.

Report form: docs/briefs/common.part.

Comments

keywan-ghadami, 2026-10-28

Second gap, same kind (architect, 2026-10-28, while briefing P1): std has scalar::is_ascii_digit but no is_ascii_alphabetic / is_ascii_alphanumeric; is_alphabetic/is_alphanumeric are Unicode and would change what symbol_prefix (crates/nikaia/src/project.rs, ADR-284 D13: a C identifier) accepts. So symbol_prefix stays Rust in P1 until this is built. Add to To build: step 2b, the two entries (Part III text, contract, a test row in seq_chain.nika or its own char_ascii.nika); step 3b, move symbol_prefix into project_settings.nika.


Generated by Claude Code

Back to Open Issues