1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
value BaseVal {
Int a;
init(Int a) {
init { a = a; }
}
}
value DerivedVal extends BaseVal {
Int b;
init(Int a, Int b) {
init(a) { b = b; }
}
}
Int sliceInitVar() {
DerivedVal d(2, 3);
BaseVal base = d;
base.a;
}
Int sliceInitVarTmp() {
BaseVal base = DerivedVal(2, 3);
base.a;
}
Int sliceAssignVar() {
DerivedVal d(3, 4);
BaseVal base(1);
base = d;
base.a;
}
Int sliceAssignVarTmp() {
BaseVal base(1);
base = DerivedVal(3, 4);
base.a;
}
Int sliceBaseFn(BaseVal x) {
x.a;
}
Int sliceFnCall() {
DerivedVal d(4, 5);
sliceBaseFn(d);
}
Int sliceFnCallTmp() {
sliceBaseFn(DerivedVal(4, 5));
}
|