This mr fixes that the Push attribute on N_ap nodes can not be serialized and deserialized. This issue is decribed in #2539.
After this we can actually have stack traces that span across modules!
Today Bodo and me looked into this and we found that this issue can simply be fixed changing the type of the Push attribute from ExtLink to Link.
The serialization for Link attributes is automatically generated in serialize_helper.c in the build directory, while attributes of ExtLink that are not Fundef or Objdef need to be custom implemented.
During the deserialization, the Link attributes are only resolved after the entire tree has been deserialized which means that Link atribute avoid the problem of pointing to something that has not been serialized yet.
ExtLink can also deal with pointing to nodes that have not yet been deserialized, but only if you have some unique identifier for the thing that you are deserializing. This is doable for function definitions, but it would be a lot more annoying to generate some identifier that can be used to find a specific application in an assignment chain in a specific function.
I simply did not see the Link attribute type before this but it is definitly what should be used here.
Merging this closes #2539.