mirror of
https://github.com/safishamsi/graphify.git
synced 2026-07-13 10:57:13 +00:00
984a6a8f0a
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>
36 lines
501 B
Julia
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
|