array<integer> A_nextFree652
integer A_firstFree146
integer A_maxIndex102
array<integer> A_typeId115
array<integer> B_nextFree911
integer B_firstFree271
integer B_maxIndex138
array<integer> B_typeId152
integer wurst_stack_depth141
array<string> wurst_stack160


integer A_firstFree146 = 0
integer A_maxIndex102 = 0
integer B_firstFree271 = 0
integer B_maxIndex138 = 0
integer wurst_stack_depth141 = 0


function initGlobals115() { 
}


function main656() { 
    initGlobals115();
    wurst_stack_160[wurst_stack_depth_141] = "when calling init_test in testInnerClass_static1, line 1";
    wurst_stack_depth_141 = (wurst_stack_depth_141 + 1);
    if (dispatch_A_test_A_bar671(new_A205("when calling new_A in testInnerClass_static1, line 11"), "when calling bar in testInnerClass_static1, line 11") == 42) {
        testSuccess732();
    } else {
    };
    wurst_stack_depth_141 = (wurst_stack_depth_141 - 1);
}


function config193() { 
}


IS_NATIVE function testSuccess732() { 
}


function new_A205(string __wurst_stackPos530) returns integer { 
    local integer this156
    wurst_stack_160[wurst_stack_depth_141] = __wurst_stackPos_530;
    wurst_stack_depth_141 = (wurst_stack_depth_141 + 1);
    wurst_stack_160[wurst_stack_depth_141] = "when calling alloc_A in testInnerClass_static1, line 3";
    wurst_stack_depth_141 = (wurst_stack_depth_141 + 1);
    if (A_firstFree_146 == 0) {
        if (A_maxIndex_102 < 32768) {
            A_maxIndex_102 = (A_maxIndex_102 + 1);
            this_156 = A_maxIndex_102;
            A_typeId_115[this_156] = 1;
        } else {
            error105("Out of memory: Could not create A.", "when calling error in testInnerClass_static1, line 3");
            this_156 = 0;
        };
    } else {
        A_firstFree_146 = (A_firstFree_146 - 1);
        this_156 = A_nextFree_652[A_firstFree_146];
        A_typeId_115[this_156] = 1;
    };
    wurst_stack_depth_141 = ((wurst_stack_depth_141 - 1) - 1);
    return this_156;
}


function new_B188(string __wurst_stackPos108) returns integer { 
    local integer this210
    wurst_stack_160[wurst_stack_depth_141] = __wurst_stackPos_108;
    wurst_stack_depth_141 = (wurst_stack_depth_141 + 1);
    wurst_stack_160[wurst_stack_depth_141] = "when calling alloc_B in testInnerClass_static1, line 4";
    wurst_stack_depth_141 = (wurst_stack_depth_141 + 1);
    if (B_firstFree_271 == 0) {
        if (B_maxIndex_138 < 32768) {
            B_maxIndex_138 = (B_maxIndex_138 + 1);
            this_210 = B_maxIndex_138;
            B_typeId_152[this_210] = 2;
        } else {
            error105("Out of memory: Could not create B.", "when calling error in testInnerClass_static1, line 4");
            this_210 = 0;
        };
    } else {
        B_firstFree_271 = (B_firstFree_271 - 1);
        this_210 = B_nextFree_911[B_firstFree_271];
        B_typeId_152[this_210] = 2;
    };
    wurst_stack_depth_141 = ((wurst_stack_depth_141 - 1) - 1);
    return this_210;
}


function error105(string msg120, string __wurst_stackPos157) { 
    local integer stacktraceIndex171
    local integer stacktraceLimit901
    wurst_stack_160[wurst_stack_depth_141] = __wurst_stackPos_157;
    wurst_stack_depth_141 = (wurst_stack_depth_141 + 1);
    __wurst_stackPos_157 = "";
    stacktraceIndex_171 = wurst_stack_depth_141;
    stacktraceLimit_901 = 0;
    loop {
        stacktraceIndex_171 = (stacktraceIndex_171 - 1);
        stacktraceLimit_901 = (stacktraceLimit_901 + 1);
        exitwhen ((stacktraceLimit_901 > 20) or (stacktraceIndex_171 < 0));
        __wurst_stackPos_157 = (__wurst_stackPos_157 + ("
   " + wurst_stack_160[stacktraceIndex_171]));
    };
    $debugPrint209((msg_120 + ("
" + __wurst_stackPos_157)));
    wurst_stack_depth_141 = (wurst_stack_depth_141 - 1);
}


function dispatch_A_test_A_bar671(integer this620, string __wurst_stackPos206) returns integer { 
    wurst_stack_160[wurst_stack_depth_141] = __wurst_stackPos_206;
    wurst_stack_depth_141 = (wurst_stack_depth_141 + 1);
    if (A_typeId_115[this_620] == 0) {
        if (this_620 == 0) {
            error105("Nullpointer exception when calling A.bar", "when calling error in testInnerClass_static1, line 7");
        } else {
            error105("Called A.bar on invalid object.", "when calling error in testInnerClass_static1, line 7");
        };
    } else {
    };
    wurst_stack_160[wurst_stack_depth_141] = "when calling bar in testInnerClass_static1, line 7";
    wurst_stack_depth_141 = (wurst_stack_depth_141 + 1);
    this_620 = new_B188("when calling new_B in testInnerClass_static1, line 8");
    wurst_stack_160[wurst_stack_depth_141] = "when calling foo in testInnerClass_static1, line 9";
    wurst_stack_depth_141 = (wurst_stack_depth_141 + 1);
    if (B_typeId_152[this_620] == 0) {
        if (this_620 == 0) {
            error105("Nullpointer exception when calling B.foo", "when calling error in testInnerClass_static1, line 5");
        } else {
            error105("Called B.foo on invalid object.", "when calling error in testInnerClass_static1, line 5");
        };
    } else {
    };
    wurst_stack_depth_141 = (((wurst_stack_depth_141 - 1) - 1) - 1);
    return 42;
}