// zweic - test program for class typing
// M. Ganguin, J. Ruffin 2005
// Class
// Superclass typing
class SuperClassTest extends unknown {} // 1/4 failure of clause 1 (incorrectly typed superclass)
// Class scope typing
class ClassSymbolTest {} class ClassSymbolTest {} // 2/4 failure of clause 2 (class already defined)
// Class member typing
class ClassMemberTest {
Int x; // success
RANDOM y; // 3/4 failure of clause 3 (incorrectly typed member)
Null foo() { NONE; } // 4/4 failure of clause 3 (incorrectly typed member)
Int bar() { Int a = 2; return a + 2 } // success
}
// Happy Day Scenario
class WorkingClassTest {
Int x;
Null y;
Null foo() {
2 + 2;
}
Int bar() {
Int z = this.x + 2;
return z
}
} // success
{
WorkingClassTest w = new WorkingClassTest(3, null);
return w.bar()
}