Result: done Files: crates/nikaia-std/src/tools/check_core_call.nika crates/nikaia-std/src/tools/emit_core_args.nika crates/nikaia-std/src/tools/emit_core_calls.nika crates/nikaia-std/src/tools/emit_state.nika crates/nikaia-std/src/tools/lowered.rs crates/nikaia-std/src/tools/lowered/check_core_call.rs crates/nikaia-std/src/tools/lowered/emit_core_args.rs crates/nikaia-std/src/tools/lowered/emit_core_calls.rs crates/nikaia-std/src/tools/lowered/emit_state.rs tests/compiler/src/main.nika tests/compiler/tests/type_arguments_on_a_path.nika tests/compiler/tests/type_arguments_on_a_path.stdout tests/compiler/tests/type_arguments_on_a_path_warned.nika tests/compiler/tests/type_arguments_on_a_path_warned.stderr tests/compiler/tests/type_arguments_on_a_path_warned.stdout Commit: check, emit: type arguments at a call reached by a path (ADR-grammar-2 D11) Body: path::f[T](…) (another package, std, alias unaliased) fills the type parameter as a bare name does, with the same NK1233 rule; the callee is the ledger’s function (a constructor is not this form); the emitter writes the call to the path with ::<T> after its name (EmitWalk.path_types). A ledger entry keeps no unbounded type parameter and not their order (spelled_signature, ledger.nika), so the parameter is the one the signature names: a path callee with more than one type parameter is still read as an index. Part: #1019 Tests: type_arguments_on_a_path (compiler_tests::none_ofString, channel::boundedi64) and type_arguments_on_a_path_warned (compiler_tests::samei64, warning[NK1233]) both failed on the unfixed compiler with NK1117 (i64 isn’t declared), pass now; second module = pub fns added to tests/compiler/src/main.nika, reached with use compiler_tests; the four type_arguments_* pass; lower-std fixpoint clean; gate below Gate: green after supervisor fix (n -> _n in tests/compiler/src/main.nika: its unused-variable warning leaked into two other tests at their spans); 462 passed, 0 failed Deviation: probe gave NK1117, not NK1230 as the brief expected; tests/compiler/src/main.nika gained two pub test functions (precedent 262d5fa) Found: the ledger drops [T] without a bound when it reads a signature (ledger.nika spelled_signature, by design per its comment and bounds_in_a_signature), so a library function’s type-parameter list and order are unknown to the checker; ADR-330 D9 needs the order for path::f[A, B](…); a dependency’s function that uses T::name has no copy across packages (model::named(3) fails in rustc without brackets too) Needs: supervisor: the 14 kept-fn/lambda programs are red at –both-settings on 5f53da5 without this change (ac8a38a area, #1024); architect brief: keep every declared type parameter in a read ledger signature (ledger.nika, outside this brief’s files), then drop the one-parameter limit in check_core_call_filled / emit_call_path_types Changelog: json::read[Contact](bytes)-style calls: path::f[T](…) fills a function of another package or std the same way f[T](…) does, warning[NK1233] only where a value argument already says the type (ADR-330 D9, ADR-grammar-2 D11) Owner: none Disk freed: scratch probes removed; target/nikaia-project-tests 3.6G, / 16G free, no new cache entry over 100 MB Rs2nika: none Pushed: rejected

This site is open source. Improve this page.