array Blub_nextFree831 integer Blub_firstFree201 integer Blub_maxIndex161 array Blub_typeId815 array A_nextFree785 integer A_firstFree104 integer A_maxIndex298 array A_typeId631 array B_nextFree192 integer B_firstFree565 integer B_maxIndex656 array A_x104 array B_x153 integer wurst_stack_depth750 array wurst_stack130 integer Blub_firstFree201 = 0 integer Blub_maxIndex161 = 0 integer A_firstFree104 = 0 integer A_maxIndex298 = 0 integer B_firstFree565 = 0 integer B_maxIndex656 = 0 integer wurst_stack_depth750 = 0 function initGlobals162() { } function main195() { initGlobals162(); init_test106("when calling init_test in closureWithGenerics, line 1"); } function config184() { } function init_test106(string __wurst_stackPos106) { local integer temp516 local integer temp134 local integer this158 local any stackTrace_tempReturn115 wurst_stack_130[wurst_stack_depth_750] = __wurst_stackPos_106; wurst_stack_depth_750 = (wurst_stack_depth_750 + 1); temp_516 = new_A156(3, "when calling new_A in closureWithGenerics, line 19"); temp_134 = new_B633(4, "when calling new_B in closureWithGenerics, line 19"); wurst_stack_130[wurst_stack_depth_750] = "when calling alloc_Blub_callMe_test in closureWithGenerics, line 19"; wurst_stack_depth_750 = (wurst_stack_depth_750 + 1); if (Blub_firstFree_201 == 0) { if (Blub_maxIndex_161 < 32768) { Blub_maxIndex_161 = (Blub_maxIndex_161 + 1); this_158 = Blub_maxIndex_161; Blub_typeId_815[this_158] = 4; } else { error457("Out of memory: Could not create Blub_callMe_test.", "when calling error in closureWithGenerics, line 19"); this_158 = 0; }; } else { Blub_firstFree_201 = (Blub_firstFree_201 - 1); this_158 = Blub_nextFree_831[Blub_firstFree_201]; Blub_typeId_815[this_158] = 4; }; wurst_stack_depth_750 = (wurst_stack_depth_750 - 1); wurst_stack_130[wurst_stack_depth_750] = "when calling callMe in closureWithGenerics, line 19"; wurst_stack_depth_750 = (wurst_stack_depth_750 + 1); stackTrace_tempReturn_115 = dispatch_Blub_test_Blub_foo100(this_158, temp_516, dispatch_Blub_test_Blub_foo100(this_158, temp_516, temp_134, "when calling foo in closureWithGenerics, line 6"), "when calling foo in closureWithGenerics, line 7"); wurst_stack_depth_750 = (wurst_stack_depth_750 - 1); if (B_x_153[stackTrace_tempReturn_115] == 10) { testSuccess394(); } else { }; wurst_stack_depth_750 = (wurst_stack_depth_750 - 1); } IS_NATIVE function testSuccess394() { } function new_A156(integer x157, string __wurst_stackPos245) returns integer { local integer this172 wurst_stack_130[wurst_stack_depth_750] = __wurst_stackPos_245; wurst_stack_depth_750 = (wurst_stack_depth_750 + 1); wurst_stack_130[wurst_stack_depth_750] = "when calling alloc_A in closureWithGenerics, line 10"; wurst_stack_depth_750 = (wurst_stack_depth_750 + 1); if (A_firstFree_104 == 0) { if (A_maxIndex_298 < 32768) { A_maxIndex_298 = (A_maxIndex_298 + 1); this_172 = A_maxIndex_298; A_typeId_631[this_172] = 1; } else { error457("Out of memory: Could not create A.", "when calling error in closureWithGenerics, line 8"); this_172 = 0; }; } else { A_firstFree_104 = (A_firstFree_104 - 1); this_172 = A_nextFree_785[A_firstFree_104]; A_typeId_631[this_172] = 1; }; wurst_stack_depth_750 = (wurst_stack_depth_750 - 1); A_x_104[this_172] = x_157; wurst_stack_depth_750 = (wurst_stack_depth_750 - 1); return this_172; } function new_B633(integer x508, string __wurst_stackPos134) returns integer { local integer this392 wurst_stack_130[wurst_stack_depth_750] = __wurst_stackPos_134; wurst_stack_depth_750 = (wurst_stack_depth_750 + 1); wurst_stack_130[wurst_stack_depth_750] = "when calling alloc_B in closureWithGenerics, line 16"; wurst_stack_depth_750 = (wurst_stack_depth_750 + 1); if (B_firstFree_565 == 0) { if (B_maxIndex_656 < 32768) { B_maxIndex_656 = (B_maxIndex_656 + 1); this_392 = B_maxIndex_656; } else { error457("Out of memory: Could not create B.", "when calling error in closureWithGenerics, line 14"); this_392 = 0; }; } else { B_firstFree_565 = (B_firstFree_565 - 1); this_392 = B_nextFree_192[B_firstFree_565]; }; wurst_stack_depth_750 = (wurst_stack_depth_750 - 1); B_x_153[this_392] = x_508; wurst_stack_depth_750 = (wurst_stack_depth_750 - 1); return this_392; } function error457(string msg173, string __wurst_stackPos379) { local integer stacktraceIndex292 local integer stacktraceLimit553 wurst_stack_130[wurst_stack_depth_750] = __wurst_stackPos_379; wurst_stack_depth_750 = (wurst_stack_depth_750 + 1); __wurst_stackPos_379 = ""; stacktraceIndex_292 = wurst_stack_depth_750; stacktraceLimit_553 = 0; loop { stacktraceIndex_292 = (stacktraceIndex_292 - 1); stacktraceLimit_553 = (stacktraceLimit_553 + 1); exitwhen ((stacktraceLimit_553 > 20) or (stacktraceIndex_292 < 0)); __wurst_stackPos_379 = (__wurst_stackPos_379 + (" " + wurst_stack_130[stacktraceIndex_292])); }; $debugPrint123((msg_173 + (" " + __wurst_stackPos_379))); wurst_stack_depth_750 = (wurst_stack_depth_750 - 1); } function dispatch_Blub_test_Blub_foo100(integer this112, any t119, any s142, string __wurst_stackPos179) returns any { wurst_stack_130[wurst_stack_depth_750] = __wurst_stackPos_179; wurst_stack_depth_750 = (wurst_stack_depth_750 + 1); if (Blub_typeId_815[this_112] == 0) { if (this_112 == 0) { error457("Nullpointer exception when calling Blub.foo", "when calling error in closureWithGenerics, line 4"); } else { error457("Called Blub.foo on invalid object.", "when calling error in closureWithGenerics, line 4"); }; } else { }; wurst_stack_130[wurst_stack_depth_750] = "when calling foo_callMe_test in closureWithGenerics, line 4"; wurst_stack_depth_750 = (wurst_stack_depth_750 + 1); wurst_stack_130[wurst_stack_depth_750] = "when calling foo in closureWithGenerics, line 19"; wurst_stack_depth_750 = (wurst_stack_depth_750 + 1); if (A_typeId_631[t_119] == 0) { if (t_119 == 0) { error457("Nullpointer exception when calling A.foo", "when calling error in closureWithGenerics, line 12"); } else { error457("Called A.foo on invalid object.", "when calling error in closureWithGenerics, line 12"); }; } else { }; wurst_stack_130[wurst_stack_depth_750] = "when calling foo in closureWithGenerics, line 12"; wurst_stack_depth_750 = (wurst_stack_depth_750 + 1); this_112 = new_B633((A_x_104[t_119] + B_x_153[s_142]), "when calling new_B in closureWithGenerics, line 13"); wurst_stack_depth_750 = ((((wurst_stack_depth_750 - 1) - 1) - 1) - 1); return this_112; }