-
Notifications
You must be signed in to change notification settings - Fork 91
Closed as not planned
Labels
Description
When saving and then loading a struct that contains a function I now get a MethodError. MWE:
using FileIO, JLD2
f1() = 1.0;
mutable struct Foo
x :: Float64
f :: Function
end
x = Foo(1.0, f1);
fPath = "test1.jld2";
save(fPath, Dict("data" => x));
y = load(fPath)
The error is:
ERROR: LoadError: MethodError: no method matching typeof(f1)()
Stacktrace:
[1] handle_error(::MethodError, ::File{DataFormat{:JLD2}}) at /Users/lutz/.julia/packages/FileIO/2fEu2/src/error_handling.jl:82
[2] handle_exceptions(::Array{Any,1}, ::String) at /Users/lutz/.julia/packages/FileIO/2fEu2/src/error_handling.jl:77
[3] load(::Formatted; options::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{,Tuple{}}}) at /Users/lutz/.julia/packages/FileIO/2fEu2/src/loadsave.jl:210
[4] load at /Users/lutz/.julia/packages/FileIO/2fEu2/src/loadsave.jl:187 [inlined]
[5] #load#16 at /Users/lutz/.julia/packages/FileIO/2fEu2/src/loadsave.jl:136 [inlined]
[6] load(::String) at /Users/lutz/.julia/packages/FileIO/2fEu2/src/loadsave.jl:136
[7] top-level scope at /Users/lutz/Documents/projects/p2019/college_stratification/CollegeStrat/src/temp1.jl:15
[8] include(::String) at ./client.jl:457
[9] top-level scope at REPL[9]:1
in expression starting at /Users/lutz/Documents/projects/p2019/college_stratification/CollegeStrat/src/temp1.jl:15
Replacing the function with, say, and Int avoids the error.
This is on Julia 1.5.2, JLD2 0.3.0, FileIO 1.4.4.