/* Make sure that you can't steal methods from one class and put them
 * in a different class to do evil things.
 */

class Aclass {
    var a = 1;
    var b = 2;
    public var c = proc(x) {a = x;};
    public proc print()
    {
        say("a = ", a, "; b = ", b, "\n");
    }
}

class Bclass {
    var b = 1;
    var a = 2;
    public proc c(x) {a = x;}
    public proc print()
    {
        say("a = ", a, "; b = ", b, "\n");
    }
}

Aclass a {}
Bclass b {}

proc main()
{
    a.c = b.c;
    try {
        a.c(3);
    } catch(e) {
        say("Caught exception\n");
    }
    a.print();
}