BE-592: HashQL: Remove old eval graph path and core value types#8841
Conversation
chore: add new dependency chore: format feat: error module feat: introduce hashql_eval interner chore: checkpoint feat: checkpoint feat: checkpoint chore: remove old value module feat: checkpoint feat: checkpoint feat: checkpoint feat: checkpoint feat: checkpoint chore: checkpoint feat: move entity query into its own modul fix: query request feat: checkpoint (it compiles!) feat: checkpoint feat: checkpoint feat: checkpoint fix: issue around cached thunking feat: covariance for opaque inners fix: cfgattr serde chore: remove graph module fix: merge fuckup
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR SummaryHigh Risk Overview
Dependency wiring is simplified: Reviewed by Cursor Bugbot for commit 887782c. Bugbot is set up for automated code reviews on this repo. Configure here. |
There was a problem hiding this comment.
Pull request overview
Removes the legacy HashQL graph-read evaluation/compiler path (and its UI/compiletest suite) while simplifying hashql-core’s value surface area down to primitive re-exports. This aligns evaluation/testing around the newer MIR interpreter path and eliminates now-dead value/container types.
Changes:
- Removed
hashql-eval’s oldgraphmodule (graph read path/filter compiler/sink/convert/error) and the associatedeval/graph/read/entityUI tests. - Removed composite value types from
hashql-core’svaluemodule, keeping only primitive re-exports. - Updated compiletest suite registration/dependencies and workspace dependency versions to reflect the removed graph feature path.
Reviewed changes
Copilot reviewed 102 out of 102 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| libs/@local/hashql/hir/src/map.rs | Adds #[inline] to Default impl. |
| libs/@local/hashql/hir/src/lower/normalization.rs | Adds #[inline] to Default impl. |
| libs/@local/hashql/hir/src/context.rs | Adds #[inline] to Default impls. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/.spec.toml | Removes old eval graph-read entity suite spec. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/arithmetic-comparisons-and.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/arithmetic-comparisons-and.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/arithmetic-comparisons-or.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/arithmetic-comparisons-or.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/boolean-literal.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/boolean-literal.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/call-identity.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/call-identity.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/complex-object-error.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/complex-object-error.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/computed-path-indexing-error.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/computed-path-indexing-error.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/constructor-call-none.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/constructor-call-none.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/equality-comparison.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/equality-comparison.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-access-struct.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-access-struct.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-access-tuple.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-access-tuple.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-dict-key.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-dict-key.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-dict-value.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-dict-value.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-list.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-list.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-struct-entry.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-struct-entry.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-struct.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-struct.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-tuple.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-tuple.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/if-filter-expr.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/if-filter-expr.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/if-filter.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/if-filter.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/input-field-access.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/input-field-access.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/input-index-access.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/input-index-access.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/input-parameter.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/input-parameter.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/invalid-field-access-error.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/invalid-field-access-error.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/invalid-index-access-error.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/invalid-index-access-error.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/invalid-vertex-query.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/invalid-vertex-query.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/let-expression.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/let-expression.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/let-propagation.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/let-propagation.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/logical-and-or.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/logical-and-or.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/logical-or-and.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/logical-or-and.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/nested-binary-operation.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/nested-binary-operation.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/nested-let-bindings.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/nested-let-bindings.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/scalar-property-filter.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/scalar-property-filter.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/top-level-variable.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/top-level-variable.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/top-type-assertion.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/top-type-assertion.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/type-assertion-in-comparison.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/type-assertion-in-comparison.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/unsupported-closure.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/unsupported-closure.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/unsupported-nested-graph-read.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/unsupported-nested-graph-read.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/unsupported-type-constructor.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/unsupported-type-constructor.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/src/lib.rs | Removes graph module export and an unneeded feature gate. |
| libs/@local/hashql/eval/src/graph/mod.rs | Removes legacy graph module root. |
| libs/@local/hashql/eval/src/graph/error.rs | Removes legacy graph diagnostic category wrapper. |
| libs/@local/hashql/eval/src/graph/read/mod.rs | Removes legacy graph-read compiler entrypoint/types. |
| libs/@local/hashql/eval/src/graph/read/convert.rs | Removes legacy value→parameter conversion logic. |
| libs/@local/hashql/eval/src/graph/read/error.rs | Removes legacy graph-read compiler diagnostics definitions. |
| libs/@local/hashql/eval/src/graph/read/filter.rs | Removes legacy filter compilation logic. |
| libs/@local/hashql/eval/src/graph/read/filter_expr.rs | Removes legacy filter-expression lowering logic. |
| libs/@local/hashql/eval/src/graph/read/path.rs | Removes legacy query-path traversal/conversion logic. |
| libs/@local/hashql/eval/src/graph/read/sink.rs | Removes legacy filter sink builder. |
| libs/@local/hashql/eval/Cargo.toml | Drops the old graph feature wiring and updates deps to workspace-managed versions. |
| libs/@local/hashql/core/src/value/mod.rs | Removes composite Value hierarchy exports, keeping only primitives. |
| libs/@local/hashql/core/src/value/dict.rs | Removes legacy persistent dict value type. |
| libs/@local/hashql/core/src/value/list.rs | Removes legacy persistent list value type. |
| libs/@local/hashql/core/src/value/opaque.rs | Removes legacy opaque/nominal value type. |
| libs/@local/hashql/core/src/value/struct.rs | Removes legacy struct value type and access logic. |
| libs/@local/hashql/core/src/value/tuple.rs | Removes legacy tuple value type and access logic. |
| libs/@local/hashql/compiletest/src/suite/mod.rs | Removes old eval graph-read suite registration. |
| libs/@local/hashql/compiletest/src/suite/eval_graph_read_entity.rs | Removes the compiletest suite that exercised legacy graph-read compilation. |
| libs/@local/hashql/compiletest/Cargo.toml | Removes hashql-eval graph feature usage. |
| libs/@local/hashql/ast/src/lowering/sanitizer.rs | Adds #[inline] to Default impl. |
| libs/@local/hashql/ast/src/lowering/node_renumberer.rs | Adds #[inline] to Default impl. |
| libs/@local/graph/api/Cargo.toml | Drops hashql-eval graph feature enablement. |
| Cargo.toml | Adds workspace dependency versions for futures-lite, sqruff-lib, and sqruff-lib-core. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## bm/be-590-hgraph-entity-query-request-refactor #8841 +/- ##
=================================================================================
Coverage ? 59.88%
=================================================================================
Files ? 1225
Lines ? 122980
Branches ? 5461
=================================================================================
Hits ? 73649
Misses ? 48480
Partials ? 851
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Merging this PR will degrade performance by 29.52%
|
| Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|
| ❌ | linear |
6.8 µs | 7.8 µs | -13.78% |
| ❌ | diamond |
10.8 µs | 12.3 µs | -11.58% |
| ❌ | complex |
16.2 µs | 18.1 µs | -10.47% |
| 👁 | runtime |
29.7 ns | 58.9 ns | -49.53% |
| 👁 | constant |
29.7 ns | 58.9 ns | -49.53% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing bm/be-592-hashql-remove-old-eval-graph-path-and-core-value-types (887782c) with main (f416092)1
Footnotes
044a4ff to
c1e8a90
Compare
39ed22e to
90fb414
Compare
d9ee377 to
6eb20a0
Compare
b71a649 to
b4de21c
Compare
b4de21c to
d15129c
Compare
6eb20a0 to
36c00cc
Compare
36c00cc to
8a4c804
Compare
d15129c to
d357c57
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit d357c57. Configure here.
There was a problem hiding this comment.
⚠️ Human review recommended
It performs broad removals across multiple crates (including public-facing type/module deletions) that require full CI validation to ensure no downstream breakage.
Copilot's findings
- Files reviewed: 103/104 changed files
- Comments generated: 0 new
Note
Your feedback helps us improve the quality of this feature.
Please use 👍 or 👎 to tell us whether this assessment is correct.


🌟 What is the purpose of this PR?
Remove the old
eval::graphmodule (read path, filter expressions, convert, sink) and its compiletest suite (eval_graph_read_entity). Add the newmir_interpretcompiletest suite. Delete the now-unused composite value types fromhashql-core(Dict,List,Struct,Tuple,Opaque,Value,FieldAccessError), keeping only primitive re-exports.Pre-Merge Checklist 🚀
🚢 Has this modified a publishable library?
This PR:
📜 Does this require a change to the docs?
The changes in this PR:
🕸️ Does this require a change to the Turbo Graph?
The changes in this PR: