// 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"; } }