Julia: parametric type definitions (`struct Box{T}`, `abstract type Shape{T}`) are dropped
Maintainers usually reply within 1 day
Nobody has claimed this yet.
- #4129 by @rajatnagda45 — closed without merging
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 25/100
Research direction
Start with the Julia extractor and its type-head reader, then run the minimal reproduction from the issue against a clean v8 checkout. Verify that Box, Shape, and Sq appear as nodes and that Sq inherits from Shape; an open pull request already addresses this issue.
Written by the indexing model from the issue text.
Description
Version / commit
v0.9.77 (v8 @ 5c7b847)
Environment
macOS, Python 3.13, clean checkout of v8.
What happens
A parametric type declaration is dropped from the graph entirely — no node, and for the subtyping form no inherits edge either. The non-parametric forms (struct Box, abstract type Shape, Dog <: Animal) all work; only the {...} parameter list breaks it. Parametric types are the backbone of generic Julia.
Minimal reproduction
# params.jl
struct Box{T}
value::T
end
abstract type Shape{T} end
struct Sq{T} <: Shape{T}
end
from graphify.extract import extract_julia
r = extract_julia("params.jl")
print([n["label"] for n in r["nodes"]])
# -> ['params.jl'] # Box, Shape, Sq all missing
Expected vs actual
- Expected:
Box,Shape, andSqnodes, withSq --inherits--> Shape. - Actual: none of the three types appear.
Root cause
The type-head reader only recognises a plain identifier. A parametric head is a parametrized_type_expression (its leading identifier is the real name), which matched neither the bare nor the binary_expression (subtyping) branch, so the name came back None and the type was skipped.
A clean checkout of v8 reproduces it. Fix PR to follow.
- Dominant language
- Python
- Stars
- 124k
- Forks
- 11.9k
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Graphify-Labs/graphify
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
Graphify-Labs/graphify#3763 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Graphify-Labs/graphify#3611 · 1 comment ·
Maintainers usually reply within 1 day
-
Nix supportOpen
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Graphify-Labs/graphify#3193 · 2 reactions ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
Graphify-Labs/graphify#2871 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Graphify-Labs/graphify#2865 ·
Maintainers usually reply within 1 day
All issues in Graphify-Labs/graphify
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
spec-kitty/spec-kitty#6112 ·
Maintainers usually reply within 1 day
-
[Bug]: OpenRouter streaming chunks report the requested router name instead of the model OpenRouter servedPossibly taken @Mrun25 claimed this today. Openbug llm translation
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
BerriAI/litellm#46095 · 1 comment ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
uberdeveloper/fastbt#29 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
andrew-blake/melcloudhome#368 ·
Maintainers usually reply within 1 day
-
lane:discover
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
SPARDiffData/differential-data-collection#33 ·
Maintainers usually reply within 1 day