/* Tests TypeCheck if we use a non-class for new */

class a {
    public var va = 0;
    operator {} () {
        "va = ", va, "\n";
    }
}

a b { va = 1 }

proc main()
{
    var c;

    c = new a { va = 2 };
    try {
        c = new b { va = 3 };
    }
    catch(e) {
        if (e == oadl::TypeCheck) {
            "Caught TypeCheck as expected\n";
        }
        else {
            "Unknown exception.\n";
        }
    }
}