In the meanwhile there may be a chance for a general solution in sight
and most probably the problem is above my competence anyway. Still, the following idea, rather vague one:
module Module_Foo
struct Foo
x::Int
end
end
Foo = Module_Foo.Foo
# now we want to re-define Foo
fm = methodswith(Foo)
sources = [m.source_ref for m in fm] # pseudocode
# delete "old" methods
for m in fm
Base.delete_method(m)
end
# re-define Foo
module Module_Foo
struct Foo
x::Int
y::Int
end
end
Foo = Module_Foo.Foo
for s in sources
recompile(s) # pseudocode
end
in separate place:
foo(a::Foo) = a.x
Any idea what to put on the place of the pseudocode?