Special case compute_identity edges to forward ref types#5302
Merged
Special case compute_identity edges to forward ref types#5302
compute_identity edges to forward ref types#5302Conversation
Collaborator
Benchmark ResultsSHA: bd67d09aa162fe2b3b1b4df191afe3e3fdd54f06 Warning These results are subject to substantial noise because GitHub's CI runs on shared machines that are not ideally suited for benchmarking. |
SimonDanisch
approved these changes
Sep 24, 2025
Member
SimonDanisch
left a comment
There was a problem hiding this comment.
Seems like a good idea and ready to merge if tests pass.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
When passing a node of graph A as an input to graph B a new node is created in graph B which connects to the node in A with
compute_identity. This was done to avoid sharing nodes between multiple graphs so that nodes are easier to manage. Since this was just using the normal machinery, the new node would pin whatever type it first gets.This pr changes that behavior by special casing
compute_identity. It now reuses theRefs in input nodes directly, which preserves their potentially abstract eltypes and also allows us to skip a bunch of update code. So maybe this is also slightly faster.This is in relation to JuliaDataCubes/PyramidScheme.jl#78.
Type of change
Checklist