Skip to content

Commit d77207c

Browse files
Merge pull request #99 from hexaeder/master
don't copy RGF on deepcopy
2 parents 6ff33a8 + 1e2e342 commit d77207c

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

src/RuntimeGeneratedFunctions.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,9 @@ function Serialization.deserialize(s::AbstractSerializer,
376376
B === Nothing ? drop_expr(f) : f
377377
end
378378

379+
# achieve deepcopy(f)===f behavior similar to "normal" julia functions
380+
Base.deepcopy_internal(f::RuntimeGeneratedFunction, stackdict::IdDict) = f
381+
379382
@specialize
380383

381384
end

test/runtests.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,3 +184,8 @@ deserialized_f, deserialized_g = deserialize(buf)
184184
@test deserialized_f.body isa Expr
185185
@test deserialized_g(12) == "Serialization with dropped body. y=12"
186186
@test deserialized_g.body isa Nothing
187+
188+
# deepcopy
189+
ff = @RuntimeGeneratedFunction(:(x -> [x, x+1]))
190+
@test deepcopy(ff) == ff
191+
@test deepcopy(ff) === ff

0 commit comments

Comments
 (0)