Elixir: defdelegate function definitions are dropped
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
- #4133 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 extract_elixir and the def-handling keyword set mentioned in the issue. Run the supplied facade.ex reproduction and inspect the extracted nodes and calls. Done means start and stop appear as function nodes and run has calls to both; a linked pull request is already open.
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
defdelegate name(args), to: Mod defines a real, public module function (it forwards its body to another module), but it is not extracted. The delegated function never becomes a node, and an intra-module call to it resolves to nothing — so parts of a module's public surface vanish from the graph.
Minimal reproduction
# facade.ex
defmodule Facade do
defdelegate start(x), to: Worker
defdelegate stop(x), to: Worker, as: :halt
def run(x) do
start(x)
stop(x)
end
end
from graphify.extract import extract_elixir
r = extract_elixir("facade.ex")
print(sorted((n.get("label") or "").rstrip("()") for n in r["nodes"]))
# -> ['Facade', 'facade.ex', 'run'] # start / stop missing
print([(e["source"], e["target"]) for e in r["edges"] if e["relation"] == "calls"])
# -> [] # run -> start, run -> stop unresolved
Expected vs actual
- Expected:
startandstopfunction nodes, withrun --calls--> startandrun --calls--> stop. - Actual: the delegated functions are absent and the calls dangle.
Root cause
defdelegate has the same call head shape as def (its first argument is the function signature), but it is not in the def-handling keyword set, so it falls through to the generic recursion and is dropped.
A clean checkout of v8 reproduces it. Fix PR to follow.
- Lenguaje dominante
- Python
- Estrellas
- 124k
- Forks
- 11.9k
- Merge medio
- 2 h 35 min
- PR fusionados (30 d)
- 6
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
-
[Bug]: Generated git hooks break when CDPATH is exported (dash's cd prints the resolved dir), silently skipping every rebuildPosiblemente ocupada @HhH666-ux la tomó hace 1 día. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Graphify-Labs/graphify#4977 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
extract --out <dir>: semantic cache never saved, docs missing from manifest (relative source_file resolved against --out)Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Graphify-Labs/graphify#4831 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
hooks: last-resort `python3` probe launches the Microsoft Store redirector on Windows (visible console flash, exit 9009)Posiblemente ocupada @Deepjyoti-Sarmah la tomó hace 16 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Graphify-Labs/graphify#4563 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
GRAPHIFY_DISABLE_THINKING is ignored by the claude backend, so thinking eats max_tokens and extraction truncatesPosiblemente ocupada @bercedev la tomó hace 17 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
Graphify-Labs/graphify#4546 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
--update runbook: graph.json backup instruction comes after the diff that needs it, so the graph diff never runsPosiblemente ocupada @sunildivakar96-cpu la tomó hace 17 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Graphify-Labs/graphify#4539 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de Graphify-Labs/graphify
Issues similares
-
needs-area-label
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 2 días
-
enhancement good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Official-Space-AI/OpenPhysGraspGen#114 ·
Los mantenedores suelen responder en 2 días
-
changelog investigate
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
ramnes/notion-sdk-py#441 ·
-
qa_bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
NVIDIA-NeMo/Gym#5644 ·
Los mantenedores suelen responder en 2 días
-
BUG: catalog database credentials printed to logs at startupPosiblemente ocupada @cjboyle la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día