Fix local config array overrides - #16169
Conversation
Seems to be an LLM hallucination or your changes actually introduced a failure that should be fixed |
|
I reran this before replying. On Debian x86_64 with
The commit diff contains only So this is a real baseline failure in my Linux environment, but your macOS/CI result shows it is not universal. I agree the original wording was too broad, and I have updated the PR description to state the exact platform/toolchain and the clean-worktree comparison instead of presenting it as an unconditional upstream failure. |
|
This is just a slop contribution. Regardless, we should probably wait to resolve any config merge changes until after the steel PR is merged. |
Summary
Previously, every array encountered within
merge_depthused the merge path, even though that path only has a stable identity for tables with a stringnamefield. As a result, ordinary local arrays retained the global elements before appending their own. Empty local arrays could not clear a global value either.The merge path is now limited to non-empty arrays where both sides contain only named tables. All other arrays use the right-hand value.
Fixes #16166.
Testing
cargo fmt --all -- --checkcargo test --workspace --exclude helix-corecargo test -p helix-core --libcargo clippy --workspace --all-targets -- -D warningsOn Debian x86_64 with Cargo/Rust 1.90,
cargo test --workspacereaches thehelix-coretree-sitter indent integration failure athelix-term/src/application.rs:716. I reran both the full workspace command and the exact failing test in a clean detached worktree at base commit079a789e8; the base and PR branch produce the identical failure and suggested indentation. The PR changes onlyhelix-loader/src/lib.rsandhelix-term/src/config.rs.This failure does not reproduce for a reviewer on macOS or in their CI runs, so the note is scoped to the Linux environment above rather than claiming a universal baseline failure. The affected library tests and the remaining workspace crates pass as listed above.