array MyInterface_nextFree176 integer MyInterface_firstFree175 integer MyInterface_maxIndex167 array MyInterface_typeId203 integer wurst_stack_depth924 array wurst_stack112 integer MyInterface_firstFree175 = 0 integer MyInterface_maxIndex167 = 0 integer wurst_stack_depth924 = 0 function initGlobals882() { } function main355() { initGlobals882(); init_Test127("when calling init_Test in testOverrideInterfaceAbstractClass, line 1"); } function config211() { } function init_Test127(string __wurst_stackPos163) { local integer a170 local integer b696 wurst_stack_112[wurst_stack_depth_924] = __wurst_stackPos_163; wurst_stack_depth_924 = (wurst_stack_depth_924 + 1); a_170 = new_MyInterfaceAbstractImpl295("when calling new_MyInterfaceAbstractImpl in testOverrideInterfaceAbstractClass, line 20"); b_696 = new_MyInterfaceImpl220("when calling new_MyInterfaceImpl in testOverrideInterfaceAbstractClass, line 21"); println112(dispatch_MyInterface_Test_MyInterface_getStr117(a_170, "when calling getStr in testOverrideInterfaceAbstractClass, line 23")); println112(dispatch_MyInterface_Test_MyInterface_getStr117(b_696, "when calling getStr in testOverrideInterfaceAbstractClass, line 24")); if ((dispatch_MyInterface_Test_MyInterface_getStr117(a_170, "when calling getStr in testOverrideInterfaceAbstractClass, line 25") == "AAbstract") and (dispatch_MyInterface_Test_MyInterface_getStr117(b_696, "when calling getStr in testOverrideInterfaceAbstractClass, line 25") == "MyInterfaceImpl")) { testSuccess724(); } else { }; wurst_stack_depth_924 = (wurst_stack_depth_924 - 1); } IS_NATIVE function println112(string s718) { } IS_NATIVE function testSuccess724() { } function new_MyInterfaceAbstractImpl295(string __wurst_stackPos114) returns integer { local integer this204 wurst_stack_112[wurst_stack_depth_924] = __wurst_stackPos_114; wurst_stack_depth_924 = (wurst_stack_depth_924 + 1); wurst_stack_112[wurst_stack_depth_924] = "when calling alloc_MyInterfaceAbstractImpl in testOverrideInterfaceAbstractClass, line 11"; wurst_stack_depth_924 = (wurst_stack_depth_924 + 1); if (MyInterface_firstFree_175 == 0) { if (MyInterface_maxIndex_167 < 32768) { MyInterface_maxIndex_167 = (MyInterface_maxIndex_167 + 1); this_204 = MyInterface_maxIndex_167; MyInterface_typeId_203[this_204] = 3; } else { error171("Out of memory: Could not create MyInterfaceAbstractImpl.", "when calling error in testOverrideInterfaceAbstractClass, line 11"); this_204 = 0; }; } else { MyInterface_firstFree_175 = (MyInterface_firstFree_175 - 1); this_204 = MyInterface_nextFree_176[MyInterface_firstFree_175]; MyInterface_typeId_203[this_204] = 3; }; wurst_stack_depth_924 = ((wurst_stack_depth_924 - 1) - 1); return this_204; } function new_MyInterfaceImpl220(string __wurst_stackPos835) returns integer { local integer this141 wurst_stack_112[wurst_stack_depth_924] = __wurst_stackPos_835; wurst_stack_depth_924 = (wurst_stack_depth_924 + 1); wurst_stack_112[wurst_stack_depth_924] = "when calling alloc_MyInterfaceImpl in testOverrideInterfaceAbstractClass, line 15"; wurst_stack_depth_924 = (wurst_stack_depth_924 + 1); if (MyInterface_firstFree_175 == 0) { if (MyInterface_maxIndex_167 < 32768) { MyInterface_maxIndex_167 = (MyInterface_maxIndex_167 + 1); this_141 = MyInterface_maxIndex_167; MyInterface_typeId_203[this_141] = 4; } else { error171("Out of memory: Could not create MyInterfaceImpl.", "when calling error in testOverrideInterfaceAbstractClass, line 15"); this_141 = 0; }; } else { MyInterface_firstFree_175 = (MyInterface_firstFree_175 - 1); this_141 = MyInterface_nextFree_176[MyInterface_firstFree_175]; MyInterface_typeId_203[this_141] = 4; }; wurst_stack_depth_924 = ((wurst_stack_depth_924 - 1) - 1); return this_141; } function error171(string msg209, string __wurst_stackPos158) { local integer stacktraceIndex142 local integer stacktraceLimit507 wurst_stack_112[wurst_stack_depth_924] = __wurst_stackPos_158; wurst_stack_depth_924 = (wurst_stack_depth_924 + 1); __wurst_stackPos_158 = ""; stacktraceIndex_142 = wurst_stack_depth_924; stacktraceLimit_507 = 0; loop { stacktraceIndex_142 = (stacktraceIndex_142 - 1); stacktraceLimit_507 = (stacktraceLimit_507 + 1); exitwhen ((stacktraceLimit_507 > 20) or (stacktraceIndex_142 < 0)); __wurst_stackPos_158 = (__wurst_stackPos_158 + (" " + wurst_stack_112[stacktraceIndex_142])); }; $debugPrint144((msg_209 + (" " + __wurst_stackPos_158))); wurst_stack_depth_924 = (wurst_stack_depth_924 - 1); } function dispatch_MyInterface_Test_MyInterface_getStr117(integer this203, string __wurst_stackPos127) returns string { wurst_stack_112[wurst_stack_depth_924] = __wurst_stackPos_127; wurst_stack_depth_924 = (wurst_stack_depth_924 + 1); if (MyInterface_typeId_203[this_203] == 0) { if (this_203 == 0) { error171("Nullpointer exception when calling MyInterface.getStr", "when calling error in testOverrideInterfaceAbstractClass, line 5"); } else { error171("Called MyInterface.getStr on invalid object.", "when calling error in testOverrideInterfaceAbstractClass, line 5"); }; } else { }; if (MyInterface_typeId_203[this_203] <= 3) { wurst_stack_112[wurst_stack_depth_924] = "when calling getStr in testOverrideInterfaceAbstractClass, line 5"; wurst_stack_depth_924 = (wurst_stack_depth_924 + 1); wurst_stack_112[wurst_stack_depth_924] = "when calling getSome in testOverrideInterfaceAbstractClass, line 13"; wurst_stack_depth_924 = (wurst_stack_depth_924 + 1); if (MyInterface_typeId_203[this_203] == 0) { if (this_203 == 0) { error171("Nullpointer exception when calling MyInterfaceAbstract.getSome", "when calling error in testOverrideInterfaceAbstractClass, line 8"); } else { error171("Called MyInterfaceAbstract.getSome on invalid object.", "when calling error in testOverrideInterfaceAbstractClass, line 8"); }; } else { }; wurst_stack_depth_924 = ((wurst_stack_depth_924 - 1) - 1); __wurst_stackPos_127 = "AAbstract"; } else { __wurst_stackPos_127 = "MyInterfaceImpl"; }; wurst_stack_depth_924 = (wurst_stack_depth_924 - 1); return __wurst_stackPos_127; }