/* Test protected vars - assignable within the class, but read-only
* outside the class
*/
using namespace oadl;
class foo {
protected var a;
public const pi = 3.14159265358979;
public proc set(b)
{
a = b;
}
public proc show()
{
say("a = ", a, "\n");
}
}
foo bar {}
proc main()
{
bar.set(3);
bar.show();
try {
bar.a = 4;
}
catch(n) {
if( n == AccessCheck ) {
say("Protected works!\n");
}
else {
say("Unexpected error: ", n, "\n");
}
}
try {
bar.pi = 5;
}
catch(n) {
if( n == AccessCheck ) {
say("Constants work!\n");
}
else {
say("Unexpected error: ", n, "\n");
}
}
}