Files
graphify/tests/fixtures/sample.jl
T
Synvoya 984a6a8f0a fix(julia): emit imports for qualified, relative, and scoped-selected forms
Only bare-identifier imports (`using Foo`) emitted edges. tree-sitter-julia
wraps qualified paths in `scoped_identifier` (`using Base.Threads`), relative
paths in `import_path` (`using ..Sibling`), and the package of a
`selected_import` may itself be a `scoped_identifier`
(`import Base.Threads: nthreads`). None of those were matched, so qualified and
relative imports were silently dropped, and scoped selected-imports pointed at
the selected symbol instead of the module.

Resolve the module name from identifier / scoped_identifier / import_path in
all three positions. Adds fixture lines + a regression test.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 13:45:52 +01:00

36 lines
501 B
Julia

module Geometry
using LinearAlgebra
import Base: show
using Base.Threads
using ..ParentModule
abstract type Shape end
struct Point <: Shape
x::Float64
y::Float64
end
mutable struct Circle <: Shape
center::Point
radius::Float64
end
function area(c::Circle)
return pi * c.radius^2
end
function distance(p1::Point, p2::Point)
return norm([p1.x - p2.x, p1.y - p2.y])
end
perimeter(c::Circle) = 2 * pi * c.radius
function describe(s::Shape)
show(s)
area(s)
end
end