rust-lang / rust-lang/rust-analyzer

ra_ap_span 0.0.347 fails with allowed Salsa 0.28.4 after HashEqLike::hash removal

Open
#23,394 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
16.9k
Forks
2.2k
Avg merge
1d 12h
Merged PRs (30d)
72

Description

rust-analyzer version: published ra_ap_span 0.0.347 (through evcxr 0.22.0).

rustc version: rustc 1.96.0 (ac68faa20 2026-05-25), aarch64-apple-darwin.

editor or extension: none; building a published library consumer.

relevant settings: fresh Cargo resolution, default Salsa feature enabled.

The published ra_ap_span manifest allows salsa = "0.28.2" and enables salsa_unstable. It now resolves to Salsa 0.28.4, whose HashEqLike trait no longer contains hash. The manual implementation in src/hygiene.rs:93 still defines and calls that method, so compilation fails with E0407. This follows the Salsa 0.28.3 internal API change; salsa-rs/salsa#1321 fixed Salsa's own optional-feature implementations but the RA implementation remains incompatible.

code snippet to reproduce:

Use an empty src/lib.rs with:

[package]
name = "ra-span-salsa-repro"
version = "0.1.0"
edition = "2024"

[dependencies]
ra_ap_span = "=0.0.347"
salsa = "=0.28.4"
# Avoid the independent Unicode version assertion in the lexer.
unicode-ident = "=1.0.24"

Run cargo check:

error[E0407]: method `hash` is not a member of trait `zalsa_::HashEqLike`
  --> ra_ap_span-0.0.347/src/hygiene.rs:93:9

Expected: the dependency versions allowed by the published manifest compile together.

A compatible Salsa constraint (including macro-rules) for this RA release, or a new release adapting the manual interned implementation, would prevent fresh consumer failures. Discovered during Reinhardt workspace verification for https://github.com/kent8192/reinhardt-web/pull/6340 after repairing its independent Unicode dependency mismatch.

🤖 Generated with Codex

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/hygiene.rs:93 and the published ra_ap_span manifest, then reproduce the failure with the minimal Cargo project and cargo check. Compare the allowed Salsa versions and the HashEqLike implementation against the reported API change. Done means a fresh consumer using the manifest's permitted dependency versions compiles successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.