Skip to content

Commit

Permalink
Rename BasicSymbolicImpl field from impl to expr
Browse files Browse the repository at this point in the history
[skip ci]
  • Loading branch information
bowenszhu committed Feb 13, 2025
1 parent ca473d0 commit 6ee7ff0
Showing 1 changed file with 15 additions and 15 deletions.
30 changes: 15 additions & 15 deletions src/types.jl
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ end
end

@kwdef struct BasicSymbolic{T} <: Symbolic{T}
impl::BasicSymbolicImpl{T}
expr::BasicSymbolicImpl{T}
meta::Metadata
end

Expand All @@ -78,10 +78,10 @@ function SymbolicIndexingInterface.symbolic_type(::Type{<:BasicSymbolic})
end

function exprtype(x::BasicSymbolic)
exprtype(x.impl)
exprtype(x.expr)
end
function exprtype(impl::BasicSymbolicImpl)
@compactified impl::BasicSymbolicImpl begin
function exprtype(expr::BasicSymbolicImpl)
@compactified expr::BasicSymbolicImpl begin
Term => TERM
Add => ADD
Mul => MUL
Expand All @@ -93,10 +93,10 @@ function exprtype(impl::BasicSymbolicImpl)
end

function Base.getproperty(x::BasicSymbolic, sym::Symbol)
if sym === :metadata || sym === :impl
if sym === :metadata || sym === :expr
return getfield(x, sym)
else
return getproperty(x.impl, sym)
return getproperty(x.expr, sym)
end
end

Expand All @@ -118,7 +118,7 @@ function ConstructionBase.setproperties(obj::BasicSymbolic{T}, patch::NamedTuple
nt = getproperties(obj)
nt_new = merge(nt, patch)
# Call outer constructor because hash consing cannot be applied in inner constructor
@compactified obj.impl::BasicSymbolicImpl begin
@compactified obj.expr::BasicSymbolicImpl begin
Sym => Sym{T}(nt_new.name; nt_new...)
Term => Term{T}(nt_new.f, nt_new.arguments; nt_new..., hash = RefValue(UInt(0)), hash2 = RefValue(UInt(0)))
Add => Add(T, nt_new.coeff, nt_new.dict; nt_new..., hash = RefValue(UInt(0)), hash2 = RefValue(UInt(0)))
Expand Down Expand Up @@ -148,11 +148,11 @@ symtype(x) = typeof(x)

# We're returning a function pointer
function operation(x::BasicSymbolic)
operation(x.impl)
operation(x.expr)
end
@inline function operation(impl::BasicSymbolicImpl)
@compactified impl::BasicSymbolicImpl begin
Term => impl.f
@inline function operation(expr::BasicSymbolicImpl)
@compactified expr::BasicSymbolicImpl begin
Term => expr.f
Add => (+)
Mul => (*)
Div => (/)
Expand All @@ -166,7 +166,7 @@ end

function TermInterface.sorted_arguments(x::BasicSymbolic)
args = arguments(x)
@compactified x.impl::BasicSymbolicImpl begin
@compactified x.expr::BasicSymbolicImpl begin
Add => @goto ADD
Mul => @goto MUL
_ => return args
Expand All @@ -191,7 +191,7 @@ end
TermInterface.children(x::BasicSymbolic) = arguments(x)
TermInterface.sorted_children(x::BasicSymbolic) = sorted_arguments(x)
function TermInterface.arguments(x::BasicSymbolic)
arguments(x.impl)
arguments(x.expr)
end
function TermInterface.arguments(x::BasicSymbolicImpl)
@compactified x::BasicSymbolicImpl begin
Expand Down Expand Up @@ -246,7 +246,7 @@ iscall(s::BasicSymbolic) = isexpr(s)

@inline function isa_SymType(T::Val{S}, x) where {S}
if x isa BasicSymbolic
Unityper.isa_type_fun(Val(SymbolicUtils.BasicSymbolicImpl), T, x.impl)
Unityper.isa_type_fun(Val(SymbolicUtils.BasicSymbolicImpl), T, x.expr)
elseif x isa BasicSymbolicImpl
Unityper.isa_type_fun(Val(SymbolicUtils.BasicSymbolicImpl), T, x)
else
Expand Down Expand Up @@ -428,7 +428,7 @@ end
Base.one( s::Symbolic) = one( symtype(s))
Base.zero(s::Symbolic) = zero(symtype(s))

Base.nameof(s::BasicSymbolic) = nameof(s.impl)
Base.nameof(s::BasicSymbolic) = nameof(s.expr)
function Base.nameof(s::BasicSymbolicImpl)
if issym(s)
s.name
Expand Down

0 comments on commit 6ee7ff0

Please sign in to comment.