Skip to content

Commit 51efeed

Browse files
committed
Fix: Consider metadata in BasicSymbolic isequal
1 parent f9b0ade commit 51efeed

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

src/types.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,7 @@ function Base.isequal(a::BasicSymbolic{T}, b::BasicSymbolic{S}) where {T,S}
245245
E === exprtype(b) || return false
246246

247247
T === S || return false
248+
isequal(metadata(a), metadata(b)) || return false
248249
return _isequal(a, b, E)::Bool
249250
end
250251
function _isequal(a, b, E)

test/basics.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,12 @@ end
336336

337337
@test !isequal(a, missing)
338338
@test !isequal(missing, b)
339+
340+
a1 = setmetadata(a, Ctx1, "meta_1")
341+
a2 = setmetadata(a, Ctx1, "meta_1")
342+
a3 = setmetadata(a, Ctx2, "meta_2")
343+
@test isequal(a1, a2)
344+
@test !isequal(a1, a3)
339345
end
340346

341347
@testset "subtyping" begin

0 commit comments

Comments
 (0)