JuliaIO / BSON.jl

Other
158 stars 39 forks source link

Serializing anonymous method fails on julia 1.6-beta1 #80

Closed ghost closed 3 years ago

ghost commented 3 years ago

Failing example:

using BSON
f = x -> 2x
BSON.@save "test.bson" f

Stacktrace:

ERROR: LoadError: type Method has no field ambig
Stacktrace:
  [1] getproperty(x::Method, f::Symbol)
    @ Base ./Base.jl:33
  [2] structdata(meth::Method)
    @ BSON ~/.julia/packages/BSON/XAts7/src/anonymous.jl:15
  [3] lower(x::Method)
    @ BSON ~/.julia/packages/BSON/XAts7/src/extensions.jl:91
  [4] _lower_recursive(x::Method, cache::IdDict{Any, Any}, refs::Vector{Any})
    @ BSON ~/.julia/packages/BSON/XAts7/src/write.jl:62
  [5] (::BSON.var"#5#9"{IdDict{Any, Any}, Vector{Any}})(x::Method)
    @ BSON ~/.julia/packages/BSON/XAts7/src/write.jl:62
  [6] applychildren!(f::BSON.var"#5#9"{IdDict{Any, Any}, Vector{Any}}, x::Vector{Any})
    @ BSON ~/.julia/packages/BSON/XAts7/src/BSON.jl:28
  [7] _lower_recursive(x::Vector{Method}, cache::IdDict{Any, Any}, refs::Vector{Any})
    @ BSON ~/.julia/packages/BSON/XAts7/src/write.jl:62
  [8] (::BSON.var"#5#9"{IdDict{Any, Any}, Vector{Any}})(x::Vector{Method})
    @ BSON ~/.julia/packages/BSON/XAts7/src/write.jl:62
  [9] applychildren!(f::BSON.var"#5#9"{IdDict{Any, Any}, Vector{Any}}, x::Vector{Any})
    @ BSON ~/.julia/packages/BSON/XAts7/src/BSON.jl:28
 [10] _lower_recursive(x::Vector{Any}, cache::IdDict{Any, Any}, refs::Vector{Any})
    @ BSON ~/.julia/packages/BSON/XAts7/src/write.jl:62
 [11] (::BSON.var"#5#9"{IdDict{Any, Any}, Vector{Any}})(x::Vector{Any})
    @ BSON ~/.julia/packages/BSON/XAts7/src/write.jl:62
 [12] applychildren!(f::BSON.var"#5#9"{IdDict{Any, Any}, Vector{Any}}, x::Vector{Any})
    @ BSON ~/.julia/packages/BSON/XAts7/src/BSON.jl:28
 [13] _lower_recursive(x::Vector{Any}, cache::IdDict{Any, Any}, refs::Vector{Any})
    @ BSON ~/.julia/packages/BSON/XAts7/src/write.jl:62
 [14] (::BSON.var"#5#9"{IdDict{Any, Any}, Vector{Any}})(x::Vector{Any})
    @ BSON ~/.julia/packages/BSON/XAts7/src/write.jl:62
 [15] applychildren!(f::BSON.var"#5#9"{IdDict{Any, Any}, Vector{Any}}, x::Dict{Symbol, Any})
    @ BSON ~/.julia/packages/BSON/XAts7/src/BSON.jl:21
 [16] _lower_recursive(x::Core.TypeName, cache::IdDict{Any, Any}, refs::Vector{Any})
    @ BSON ~/.julia/packages/BSON/XAts7/src/write.jl:62
 [17] (::BSON.var"#3#7"{IdDict{Any, Any}, Vector{Any}})(x::Core.TypeName)
    @ BSON ~/.julia/packages/BSON/XAts7/src/write.jl:53
 [18] applychildren!(f::BSON.var"#3#7"{IdDict{Any, Any}, Vector{Any}}, x::Dict{Symbol, Any})
    @ BSON ~/.julia/packages/BSON/XAts7/src/BSON.jl:21
 [19] (::BSON.var"#_lower#6"{IdDict{Any, Any}, Vector{Any}})(x::Type)
    @ BSON ~/.julia/packages/BSON/XAts7/src/write.jl:53
 [20] _lower_recursive(x::Type, cache::IdDict{Any, Any}, refs::Vector{Any})
    @ BSON ~/.julia/packages/BSON/XAts7/src/write.jl:54
 [21] (::BSON.var"#3#7"{IdDict{Any, Any}, Vector{Any}})(x::Type)
    @ BSON ~/.julia/packages/BSON/XAts7/src/write.jl:53
 [22] applychildren!(f::BSON.var"#3#7"{IdDict{Any, Any}, Vector{Any}}, x::Dict{Symbol, Any})
    @ BSON ~/.julia/packages/BSON/XAts7/src/BSON.jl:21
 [23] _lower
    @ ~/.julia/packages/BSON/XAts7/src/write.jl:53 [inlined]
 [24] _lower_recursive(x::Function, cache::IdDict{Any, Any}, refs::Vector{Any})
    @ BSON ~/.julia/packages/BSON/XAts7/src/write.jl:54
 [25] (::BSON.var"#5#9"{IdDict{Any, Any}, Vector{Any}})(x::Function)
    @ BSON ~/.julia/packages/BSON/XAts7/src/write.jl:62
 [26] applychildren!(f::BSON.var"#5#9"{IdDict{Any, Any}, Vector{Any}}, x::Dict{Symbol, Any})
    @ BSON ~/.julia/packages/BSON/XAts7/src/BSON.jl:21
 [27] _lower_recursive(x::Dict{Symbol, var"#1#2"}, cache::IdDict{Any, Any}, refs::Vector{Any})
    @ BSON ~/.julia/packages/BSON/XAts7/src/write.jl:62
 [28] lower_recursive(y::Dict{Symbol, var"#1#2"})
    @ BSON ~/.julia/packages/BSON/XAts7/src/write.jl:73
 [29] bson(io::IOStream, doc::Dict{Symbol, var"#1#2"})
    @ BSON ~/.julia/packages/BSON/XAts7/src/write.jl:81
 [30] #12
    @ ~/.julia/packages/BSON/XAts7/src/write.jl:83 [inlined]
 [31] open(::BSON.var"#12#13"{Dict{Symbol, var"#1#2"}}, ::String, ::Vararg{String, N} where N; kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Base ./io.jl:330
 [32] open
    @ ./io.jl:328 [inlined]
 [33] bson(path::String, doc::Dict{Symbol, var"#1#2"})
    @ BSON ~/.julia/packages/BSON/XAts7/src/write.jl:83
 [34] top-level scope
    @ ~/test.jl:3