array Blub_nextFree106 integer Blub_firstFree206 integer Blub_maxIndex996 array Blub_typeId955 array A_nextFree162 integer A_firstFree113 integer A_maxIndex165 array A_typeId226 array B_nextFree104 integer B_firstFree179 integer B_maxIndex172 array A_x895 array B_x572 integer wurst_stack_depth145 array wurst_stack209 integer Blub_firstFree206 = 0 integer Blub_maxIndex996 = 0 integer A_firstFree113 = 0 integer A_maxIndex165 = 0 integer B_firstFree179 = 0 integer B_maxIndex172 = 0 integer wurst_stack_depth145 = 0 function initGlobals156() { } function main916() { initGlobals156(); init_test186("when calling init_test in closureWithGenerics, line 1"); } function config120() { } function init_test186(string __wurst_stackPos349) { local integer temp144 local integer temp417 local integer this689 local any stackTrace_tempReturn210 wurst_stack_209[wurst_stack_depth_145] = __wurst_stackPos_349; wurst_stack_depth_145 = (wurst_stack_depth_145 + 1); temp_144 = new_A125(3, "when calling new_A in closureWithGenerics, line 19"); temp_417 = new_B161(4, "when calling new_B in closureWithGenerics, line 19"); wurst_stack_209[wurst_stack_depth_145] = "when calling alloc_Blub_callMe_test in closureWithGenerics, line 19"; wurst_stack_depth_145 = (wurst_stack_depth_145 + 1); if (Blub_firstFree_206 == 0) { if (Blub_maxIndex_996 < 32768) { Blub_maxIndex_996 = (Blub_maxIndex_996 + 1); this_689 = Blub_maxIndex_996; Blub_typeId_955[this_689] = 4; } else { error422("Out of memory: Could not create Blub_callMe_test.", "when calling error in closureWithGenerics, line 19"); this_689 = 0; }; } else { Blub_firstFree_206 = (Blub_firstFree_206 - 1); this_689 = Blub_nextFree_106[Blub_firstFree_206]; Blub_typeId_955[this_689] = 4; }; wurst_stack_depth_145 = (wurst_stack_depth_145 - 1); wurst_stack_209[wurst_stack_depth_145] = "when calling callMe in closureWithGenerics, line 19"; wurst_stack_depth_145 = (wurst_stack_depth_145 + 1); stackTrace_tempReturn_210 = dispatch_Blub_test_Blub_foo627(this_689, temp_144, dispatch_Blub_test_Blub_foo627(this_689, temp_144, temp_417, "when calling foo in closureWithGenerics, line 6"), "when calling foo in closureWithGenerics, line 7"); wurst_stack_depth_145 = (wurst_stack_depth_145 - 1); if (B_x_572[stackTrace_tempReturn_210] == 10) { testSuccess174(); } else { }; wurst_stack_depth_145 = (wurst_stack_depth_145 - 1); } IS_NATIVE function testSuccess174() { } function new_A125(integer x254, string __wurst_stackPos133) returns integer { local integer this907 wurst_stack_209[wurst_stack_depth_145] = __wurst_stackPos_133; wurst_stack_depth_145 = (wurst_stack_depth_145 + 1); wurst_stack_209[wurst_stack_depth_145] = "when calling alloc_A in closureWithGenerics, line 10"; wurst_stack_depth_145 = (wurst_stack_depth_145 + 1); if (A_firstFree_113 == 0) { if (A_maxIndex_165 < 32768) { A_maxIndex_165 = (A_maxIndex_165 + 1); this_907 = A_maxIndex_165; A_typeId_226[this_907] = 1; } else { error422("Out of memory: Could not create A.", "when calling error in closureWithGenerics, line 8"); this_907 = 0; }; } else { A_firstFree_113 = (A_firstFree_113 - 1); this_907 = A_nextFree_162[A_firstFree_113]; A_typeId_226[this_907] = 1; }; wurst_stack_depth_145 = (wurst_stack_depth_145 - 1); A_x_895[this_907] = x_254; wurst_stack_depth_145 = (wurst_stack_depth_145 - 1); return this_907; } function new_B161(integer x116, string __wurst_stackPos177) returns integer { local integer this312 wurst_stack_209[wurst_stack_depth_145] = __wurst_stackPos_177; wurst_stack_depth_145 = (wurst_stack_depth_145 + 1); wurst_stack_209[wurst_stack_depth_145] = "when calling alloc_B in closureWithGenerics, line 16"; wurst_stack_depth_145 = (wurst_stack_depth_145 + 1); if (B_firstFree_179 == 0) { if (B_maxIndex_172 < 32768) { B_maxIndex_172 = (B_maxIndex_172 + 1); this_312 = B_maxIndex_172; } else { error422("Out of memory: Could not create B.", "when calling error in closureWithGenerics, line 14"); this_312 = 0; }; } else { B_firstFree_179 = (B_firstFree_179 - 1); this_312 = B_nextFree_104[B_firstFree_179]; }; wurst_stack_depth_145 = (wurst_stack_depth_145 - 1); B_x_572[this_312] = x_116; wurst_stack_depth_145 = (wurst_stack_depth_145 - 1); return this_312; } function error422(string msg180, string __wurst_stackPos980) { local integer stacktraceIndex386 local integer stacktraceLimit120 wurst_stack_209[wurst_stack_depth_145] = __wurst_stackPos_980; wurst_stack_depth_145 = (wurst_stack_depth_145 + 1); __wurst_stackPos_980 = ""; stacktraceIndex_386 = wurst_stack_depth_145; stacktraceLimit_120 = 0; loop { stacktraceIndex_386 = (stacktraceIndex_386 - 1); stacktraceLimit_120 = (stacktraceLimit_120 + 1); exitwhen ((stacktraceLimit_120 > 20) or (stacktraceIndex_386 < 0)); __wurst_stackPos_980 = (__wurst_stackPos_980 + (" " + wurst_stack_209[stacktraceIndex_386])); }; $debugPrint164((msg_180 + (" " + __wurst_stackPos_980))); wurst_stack_depth_145 = (wurst_stack_depth_145 - 1); } function dispatch_Blub_test_Blub_foo627(integer this724, any t151, any s111, string __wurst_stackPos815) returns any { wurst_stack_209[wurst_stack_depth_145] = __wurst_stackPos_815; wurst_stack_depth_145 = (wurst_stack_depth_145 + 1); if (Blub_typeId_955[this_724] == 0) { if (this_724 == 0) { error422("Nullpointer exception when calling Blub.foo", "when calling error in closureWithGenerics, line 4"); } else { error422("Called Blub.foo on invalid object.", "when calling error in closureWithGenerics, line 4"); }; } else { }; wurst_stack_209[wurst_stack_depth_145] = "when calling foo_callMe_test in closureWithGenerics, line 4"; wurst_stack_depth_145 = (wurst_stack_depth_145 + 1); wurst_stack_209[wurst_stack_depth_145] = "when calling foo in closureWithGenerics, line 19"; wurst_stack_depth_145 = (wurst_stack_depth_145 + 1); if (A_typeId_226[t_151] == 0) { if (t_151 == 0) { error422("Nullpointer exception when calling A.foo", "when calling error in closureWithGenerics, line 12"); } else { error422("Called A.foo on invalid object.", "when calling error in closureWithGenerics, line 12"); }; } else { }; wurst_stack_209[wurst_stack_depth_145] = "when calling foo in closureWithGenerics, line 12"; wurst_stack_depth_145 = (wurst_stack_depth_145 + 1); this_724 = new_B161((A_x_895[t_151] + B_x_572[s_111]), "when calling new_B in closureWithGenerics, line 13"); wurst_stack_depth_145 = ((((wurst_stack_depth_145 - 1) - 1) - 1) - 1); return this_724; }