Julia: parametric type definitions (`struct Box{T}`, `abstract type Shape{T}`) are dropped
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
- #4129 de @rajatnagda45 — cerrado sin fusionar
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 25/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Python
- Estrellas
- 124k
- Forks
- 11.9k
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Graphify-Labs/graphify
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
Graphify-Labs/graphify#3763 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Graphify-Labs/graphify#3611 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Nix supportAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Graphify-Labs/graphify#3193 · 2 reacciones ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
Graphify-Labs/graphify#2871 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Graphify-Labs/graphify#2865 ·
Los mantenedores suelen responder en 1 día
Todos los issues de Graphify-Labs/graphify
Issues similares
-
Agentic
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Imbad0202/academic-research-skills#979 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
reflex-dev/reflex#7561 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
prometheus-community/ansible#906 · 2 comentarios ·