/* Test the calling of the destroy method and how it interacts * with the perm builtin */ using namespace oadl; class complex { public var real, imag; public proc assign(r, i) { real = r; imag = i; } public proc create(r, i) { real = r; imag = i; say("Creating (", r, ",", i, ")\n"); } public proc destroy() { say("Destroying (", real, ",", imag, ")\n"); } } proc main() { var a, b; a = new complex(1,2); b = perm(new complex(3,4)); a = nil; b.assign(5,6); b = nil; gc(); }