Skip to content

Commit 1bce8ae

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

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-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: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,13 @@ 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(a, a1)
344+
@test isequal(a1, a2)
345+
@test !isequal(a1, a3)
339346
end
340347

341348
@testset "subtyping" begin

0 commit comments

Comments
 (0)