You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
intersect_metadata_for_union fails to typecheck when rkyv is in scope on rustc 1.91.1 #22488
`HashMap::retain` binds `v: &mut V`, so `Some(v)` is `Option<&mut String>`. The right-hand side is `Option<&String>` from `metadata.get(k)`. The standard `Option: PartialEq` impl resolves cleanly when nothing else is in scope — but when a transitive dep brings rkyv 0.7's blanket `PartialEq` impls into scope, rustc 1.91.1 stops disambiguating and fails the comparison.
Repro
```toml
Cargo.toml
[package]
name = "df-repro"
version = "0.1.0"
edition = "2024"
[dependencies]
datafusion-expr = "53.1.0"
chrono = { version = "0.4", features = ["rkyv-64"] } # pulls rkyv 0.7 transitively
```
`&*v` reborrows `&mut String` as `&String`, eliminating the ambiguity for the standard `PartialEq` impl regardless of what other impls are in scope. Verified locally: patching the registry copy of `datafusion-expr 53.1.0`'s `expr.rs:520` to `Some(&*v)` makes the repro project build clean.
Happy to send a PR.
Environment
`rustc 1.91.1 (ed61e7d7e 2025-11-07)` on aarch64-apple-darwin
`datafusion-expr 53.1.0` (latest released; same code on `main` at `:638`)
`rkyv 0.7.46` (resolved by chrono's `rkyv-64` feature)
Activity
fix: reborrow metadata values when intersecting union metadata (apach…