> However, could you please explain to me what is involved in updating dict? > I understand an ObjectIdDict is a hash table whose keys are object ID's. > But the documentation doesn't tell me how to generate such a key for my > object, nor what value to insert in the dict when overloading > deepcopy_internal. I presume the object itself is used as the key? But what > value should be inserted?
Looking at the code in Base: julia> @less Base.deepcopy_internal([1,2], ObjectIdDict()) suggests to me that the key is the object to be copied and the value is the copy. Aside: the function should be renamed to deepcopy_internal! as it modifies the dict. > On 25 February 2016 at 21:01, Yichao Yu <yyc1...@gmail.com> wrote: > >> On Thu, Feb 25, 2016 at 2:57 PM, Toivo Henningsson <toivo....@gmail.com> >> wrote: >> > It seems very reasonable that you should be able to overload deepcopy >> for a given type, and that if that has to be done on a specific way, it >> should be mentioned in the documentation for deepcopy. Open an issue? >> >> Please read the doc first. >> >> overloading deepcopy is supported and documented >> >> >> http://julia.readthedocs.org/en/latest/stdlib/base/?highlight=deepcopy#Base.deepcopy >>