[combination = sum] int asum();
[combination = and] int aand();
[combination = max] int amax();
+ [role = around] int base.asum() { return (CALL_NEXT_METHOD); }
[combination = custom,
empty = { sod_ret = 0; },
DONE(3);
}
+/*----- Static instances --------------------------------------------------*/
+
+[link = SodObject, nick = st]
+class StaticObject: SodObject {
+ int x, y = 2, z = 3;
+ [readonly = t] void step() { STEP(me->st.x); }
+}
+
+[extern = t] instance StaticObject mystatic: st.x = 0, st.z = 69;
+[const = nil] instance StaticObject otherstatic: st.x = 3, st.y = 42;
+
+code c: tests {
+ prepare("static instance");
+ StaticObject_step(mystatic);
+ if (mystatic->st.y == 2) STEP(1);
+ if (mystatic->st.z == 69) STEP(2);
+ StaticObject_step(otherstatic);
+ if (otherstatic->st.y == 42) STEP(4);
+ if (otherstatic->st.z == 3) STEP(5);
+ DONE(6);
+}
+
/*----- That's all, folks -------------------------------------------------*/