// Test protect()
using namespace oadl;
class foo {
public var bar;
}
proc main()
{
var a;
a = new Array(3);
a[0] = 0; a[1] = 1; a[2] = 2;
a = protect(a);
try { a[0] = 0; } catch(e) { "Caught exception, as expected\n"; }
a = new foo();
a.bar = 1;
a = protect(a);
try { a.bar = 0; } catch(e) { "Caught exception, as expected\n"; }
a = <<< "hi", 0, "there", 1 >>>;
a["hi"] = 1;
a = protect(a);
try { a["hi"] = 0; } catch(e) { "Caught exception, as expected\n"; }
}