#include <OOC/SymbolTable/CreateNamespace.d>
#include <__oo2c.h>
#include <setjmp.h>

void OOC_SymbolTable_CreateNamespace__ErrorContextDesc_GetTemplate(OOC_SymbolTable_CreateNamespace__ErrorContext context, Msg__Msg msg, Msg__LString templ, OOC_LEN templ_0d) {
  register OOC_INT32 i0,i1;
  OOC_CHAR16 t[128];

  i0 = (OOC_INT32)msg;
  i1 = *(OOC_INT32*)((_check_pointer(i0, 2754))+8);
  switch (i1) {
  case 1:
    _copy_16((const void*)((OOC_CHAR16[]){85,110,100,101,99,108,97,114,101,100,32,105,100,101,110,116,105,102,105,101,114,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 2:
    _copy_16((const void*)((OOC_CHAR16[]){68,97,116,97,32,116,121,112,101,32,101,120,112,101,99,116,101,100,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 3:
    _copy_16((const void*)((OOC_CHAR16[]){84,104,105,115,32,116,121,112,101,32,99,97,110,110,111,116,32,98,101,32,117,115,101,100,32,97,115,32,97,32,114,101,99,111,114,100,32,98,97,115,101,32,116,121,112,101,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 4:
    _copy_16((const void*)((OOC_CHAR16[]){67,97,110,39,116,32,117,115,101,32,116,121,112,101,32,99,111,110,115,116,114,117,99,116,111,114,32,104,101,114,101,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 5:
    _copy_16((const void*)((OOC_CHAR16[]){73,108,108,101,103,97,108,32,114,101,99,101,105,118,101,114,32,116,121,112,101,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 6:
    _copy_16((const void*)((OOC_CHAR16[]){73,108,108,101,103,97,108,32,116,121,112,101,32,102,111,114,32,102,117,110,99,116,105,111,110,32,114,101,115,117,108,116,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 7:
    _copy_16((const void*)((OOC_CHAR16[]){73,108,108,101,103,97,108,32,112,111,105,110,116,101,114,32,98,97,115,101,32,116,121,112,101,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 8:
    _copy_16((const void*)((OOC_CHAR16[]){73,108,108,101,103,97,108,32,116,121,112,101,32,102,111,114,32,97,114,114,97,121,32,101,108,101,109,101,110,116,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 9:
    _copy_16((const void*)((OOC_CHAR16[]){67,97,110,110,111,116,32,117,115,101,32,111,112,101,110,32,97,114,114,97,121,32,116,121,112,101,32,104,101,114,101,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 10:
    _copy_16((const void*)((OOC_CHAR16[]){82,101,99,101,105,118,101,114,32,111,102,32,114,101,99,111,114,100,32,116,121,112,101,32,109,117,115,116,32,98,101,32,97,32,118,97,114,105,97,98,108,101,32,112,97,114,97,109,101,116,101,114,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 11:
    _copy_16((const void*)((OOC_CHAR16[]){82,101,99,101,105,118,101,114,32,111,102,32,112,111,105,110,116,101,114,32,116,121,112,101,32,109,117,115,116,32,98,101,32,97,32,118,97,108,117,101,32,112,97,114,97,109,101,116,101,114,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 12:
    _copy_16((const void*)((OOC_CHAR16[]){85,110,114,101,115,111,108,118,101,100,32,112,114,111,99,101,100,117,114,101,32,102,111,114,119,97,114,100,32,100,101,99,108,97,114,97,116,105,111,110,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 13:
    _copy_16((const void*)((OOC_CHAR16[]){78,97,109,101,32,111,102,32,102,111,114,119,97,114,100,32,100,101,99,108,97,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,97,115,115,105,103,110,101,100,32,116,111,32,97,110,111,116,104,101,114,32,111,98,106,101,99,116,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 14:
    _copy_16((const void*)((OOC_CHAR16[]){77,117,108,116,105,112,108,101,32,102,111,114,119,97,114,100,32,100,101,99,108,97,114,97,116,105,111,110,115,32,102,111,114,32,115,97,109,101,32,110,97,109,101,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 15:
    _copy_16((const void*)((OOC_CHAR16[]){70,111,114,119,97,114,100,32,100,101,99,108,97,114,97,116,105,111,110,32,105,115,32,112,108,97,99,101,100,32,97,102,116,101,114,32,116,104,101,32,100,101,102,105,110,105,116,105,111,110,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 16:
    _copy_16((const void*)((OOC_CHAR16[]){70,111,114,109,97,108,32,112,97,114,97,109,101,116,101,114,115,32,100,111,110,39,116,32,109,97,116,99,104,32,112,114,111,99,101,100,117,114,101,32,100,101,102,105,110,105,116,105,111,110,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 17:
    _copy_16((const void*)((OOC_CHAR16[]){85,110,100,101,99,108,97,114,101,100,32,109,111,100,117,108,101,32,110,97,109,101,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 18:
    _copy_16((const void*)((OOC_CHAR16[]){84,104,105,115,32,105,115,32,110,111,116,32,97,32,109,111,100,117,108,101,32,110,97,109,101,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 19:
    _copy_16((const void*)((OOC_CHAR16[]){73,110,118,97,108,105,100,32,109,111,100,105,102,105,101,114,32,102,108,97,103,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 20:
    _copy_16((const void*)((OOC_CHAR16[]){84,104,105,115,32,109,111,100,105,102,105,101,114,32,102,108,97,103,32,104,97,115,32,110,111,32,101,102,102,101,99,116,32,104,101,114,101,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 21:
    _copy_16((const void*)((OOC_CHAR16[]){67,97,110,110,111,116,32,99,114,101,97,116,101,32,105,110,115,116,97,110,99,101,32,111,102,32,97,98,115,116,114,97,99,116,32,116,121,112,101,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 22:
    _copy_16((const void*)((OOC_CHAR16[]){82,101,99,101,105,118,101,114,32,116,121,112,101,32,105,115,32,110,111,116,32,97,98,115,116,114,97,99,116,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 23:
    _copy_16((const void*)((OOC_CHAR16[]){65,98,115,116,114,97,99,116,32,112,114,111,99,101,100,117,114,101,32,109,117,115,116,32,98,101,32,101,120,112,111,114,116,101,100,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 24:
    _copy_16((const void*)((OOC_CHAR16[]){73,110,104,101,114,105,116,101,100,32,112,114,111,99,101,100,117,114,101,32,96,36,123,110,97,109,101,125,39,32,105,115,32,115,116,105,108,108,32,97,98,115,116,114,97,99,116,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 25:
    _copy_16((const void*)((OOC_CHAR16[]){77,111,100,117,108,101,32,109,117,115,116,32,112,114,111,118,105,100,101,32,97,116,32,109,111,115,116,32,111,110,101,32,76,73,78,75,32,70,73,76,69,32,100,105,114,101,99,116,105,118,101,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 26:
    _copy_16((const void*)((OOC_CHAR16[]){84,121,112,101,32,105,115,32,110,111,116,32,97,110,32,101,120,116,101,110,115,105,111,110,32,111,102,32,96,69,120,99,101,112,116,105,111,110,46,69,120,99,101,112,116,105,111,110,39,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 27:
    _copy_16((const void*)((OOC_CHAR16[]){73,110,118,97,108,105,100,32,116,121,112,101,32,98,111,117,110,100,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 28:
    _copy_16((const void*)((OOC_CHAR16[]){84,104,105,115,32,105,115,32,110,111,116,32,97,32,112,97,114,97,109,101,116,114,105,99,32,116,121,112,101,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 29:
    _copy_16((const void*)((OOC_CHAR16[]){84,111,111,32,102,101,119,32,116,121,112,101,32,97,114,103,117,109,101,110,116,115,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 30:
    _copy_16((const void*)((OOC_CHAR16[]){84,111,111,32,109,97,110,121,32,116,121,112,101,32,97,114,103,117,109,101,110,116,115,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 31:
    _copy_16((const void*)((OOC_CHAR16[]){84,104,105,115,32,105,115,32,110,111,116,32,97,110,32,101,120,116,101,110,115,105,111,110,32,111,102,32,116,104,101,32,116,121,112,101,32,98,111,117,110,100,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 32:
    _copy_16((const void*)((OOC_CHAR16[]){84,104,101,32,98,97,115,101,32,114,101,99,111,114,100,32,116,121,112,101,32,104,97,115,32,36,123,99,111,117,110,116,125,32,116,121,112,101,32,112,97,114,97,109,101,116,101,114,40,115,41,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 33:
    _copy_16((const void*)((OOC_CHAR16[]){84,104,101,32,98,97,115,101,32,114,101,99,111,114,100,32,116,121,112,101,32,104,97,115,32,110,111,32,116,121,112,101,32,112,97,114,97,109,101,116,101,114,115,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 34:
    _copy_16((const void*)((OOC_CHAR16[]){86,84,65,66,76,69,32,102,108,97,103,32,105,115,32,105,110,99,111,110,115,105,115,116,101,110,116,32,119,105,116,104,32,98,97,115,101,32,116,121,112,101,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  case 35:
    _copy_16((const void*)((OOC_CHAR16[]){82,101,99,101,105,118,101,114,39,115,32,98,97,115,101,32,114,101,99,111,114,100,32,105,115,32,105,109,112,111,114,116,101,100,0}),(void*)(OOC_INT32)t,128);
    goto l38;
  default:
    _failed_case(i1, 2746);
    goto l38;
  }
l38:
  i1 = (OOC_INT32)context;
  OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 5479)))), OOC_Error__ContextDesc_BaseTemplate)),OOC_Error__ContextDesc_BaseTemplate)((OOC_Error__Context)i1, (Msg__Msg)i0, (void*)(OOC_INT32)t, 128, (void*)(OOC_INT32)templ, templ_0d);
  return;
  ;
}

OOC_SymbolTable__Declaration OOC_SymbolTable_CreateNamespace__ResolveQualident(OOC_SymbolTable__Namespace ns, OOC_SymbolTable__Item contextOfUse, OOC_SymbolTable_Uses__Uses uses, OOC_SymbolTable__Name module, OOC_SymbolTable__Name ident) {
  register OOC_INT32 i0,i1,i2,i3,i4,i5;
  OOC_SymbolTable__Declaration m;

  i0 = (OOC_INT32)ns;
  i1 = (OOC_INT32)contextOfUse;
  i2 = (OOC_INT32)module;
  i3 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 5776)))), OOC_SymbolTable__NamespaceDesc_Identify)),OOC_SymbolTable__NamespaceDesc_Identify)((OOC_SymbolTable__Namespace)i0, (OOC_SymbolTable__Item)i1, (OOC_SymbolTable__Name)i2, 0u);
  m = (OOC_SymbolTable__Declaration)i3;
  i4 = (OOC_INT32)uses;
  i5 = i3==(OOC_INT32)0;
  if (i5) goto l3;
  i5 = !(OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i3, 5840)))), &_td_OOC_SymbolTable__ImportDesc));
  
  goto l5;
l3:
  i5=1u;
l5:
  if (i5) goto l7;
  OOC_SymbolTable_Uses__Mark((OOC_SymbolTable__Declaration)i3, (OOC_SymbolTable_Uses__Uses)i4, (OOC_SymbolTable__Name)i2);
  i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer((_type_guard(i3, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i3, 5939)))), &_td_OOC_SymbolTable__ImportDesc, 5939)), 5946))+52);
  i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 5961))+48);
  ns = (OOC_SymbolTable__Namespace)i0;
  
  goto l8;
l7:
  return (OOC_SymbolTable__Declaration)(OOC_INT32)0;
  
l8:
  i2 = (OOC_INT32)ident;
  i0 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 5989)))), OOC_SymbolTable__NamespaceDesc_Identify)),OOC_SymbolTable__NamespaceDesc_Identify)((OOC_SymbolTable__Namespace)i0, (OOC_SymbolTable__Item)i1, (OOC_SymbolTable__Name)i2, 0u);
  OOC_SymbolTable_Uses__Mark((OOC_SymbolTable__Declaration)i0, (OOC_SymbolTable_Uses__Uses)i4, (OOC_SymbolTable__Name)i2);
  return (OOC_SymbolTable__Declaration)i0;
  ;
}

void OOC_SymbolTable_CreateNamespace__CreateNamespace(OOC_SymbolTable__Module root, OOC_SymbolTable_Uses__Uses uses, OOC_Error__List errList) {
  register OOC_INT32 i0,i1,i2,i3;
  ADT_Dictionary__Dictionary privateRecords;
  ADT_ArrayList__ArrayList unpatchedQualTypes;
  OOC_INT32 i;
  ADT_Dictionary__Dictionary visited;
  Msg__Msg lastError;
  auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_SetErrPos(Msg__Msg err, OOC_SymbolTable__Position pos);
  auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_Err(OOC_INT32 code, OOC_SymbolTable__TypeName tname);
  auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(OOC_INT32 code, OOC_SymbolTable__Type type);
  auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrDecl(OOC_INT32 code, OOC_SymbolTable__Declaration decl, OOC_Error__List errList);
  auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_ImportAllModules(OOC_SymbolTable__Module root);
  auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace(OOC_SymbolTable__Item item);
  auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckLocalUniqueness(OOC_SymbolTable__Item item, OOC_Error__List errList);
  auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_ConnectNamespaces(OOC_SymbolTable__Item item, OOC_SymbolTable__Module predefModule, OOC_Error__List errList);
  auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames(OOC_SymbolTable__Item item, OOC_SymbolTable__Item contextOfUse, ADT_ArrayList__ArrayList unpatchedQualTypes, OOC_Error__List errList);
  auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions(OOC_SymbolTable__Item item, OOC_Error__List errList);
  auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_InsertTypeBoundProcs(OOC_SymbolTable__Module module, OOC_Error__List errList);
  auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveForwardDecl(OOC_SymbolTable__Item item, OOC_Error__List errList);
  auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckExtendedRecords(OOC_SymbolTable__Item item, OOC_Error__List errList);
  auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags(OOC_SymbolTable__Item item, OOC_Error__List errList);
  auto OOC_INT32 OOC_SymbolTable_CreateNamespace__CreateNamespace_LinkFileSections(OOC_SymbolTable__LinkDirective ld);
  auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars(OOC_SymbolTable__Item item);
  auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_PatchQualType(OOC_SymbolTable__QualType qualType);
    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_SetErrPos(Msg__Msg err, OOC_SymbolTable__Position pos) {
      register OOC_INT32 i0,i1,i2;
      OOC_INT32 i;

      i0 = (OOC_INT32)pos;
      i1 = *(OOC_INT32*)(_check_pointer(i0, 7265));
      i = i1;
      i2 = i1<0;
      if (!i2) goto l4;
      i = 0;
      i1=0;
l4:
      i2 = (OOC_INT32)err;
      OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 7329)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i2, (OOC_CHAR8*)"pos", 4, i1);
      i1 = *(OOC_INT32*)((_check_pointer(i0, 7392))+4);
      OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 7365)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i2, (OOC_CHAR8*)"line", 5, i1);
      i0 = *(OOC_INT32*)((_check_pointer(i0, 7439))+8);
      OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 7410)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i2, (OOC_CHAR8*)"column", 7, i0);
      return;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_Err(OOC_INT32 code, OOC_SymbolTable__TypeName tname) {
      register OOC_INT32 i0,i1,i2;

      i0 = code;
      i1 = i0==1;
      if (i1) goto l3;
      i1 = (OOC_INT32)tname;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 7892))+20);
      
      goto l4;
l3:
      i1 = (OOC_INT32)tname;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 7853))+44);
      
l4:
      i2 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__createNamespaceContext;
      i0 = (OOC_INT32)OOC_Error__New((OOC_Error__Context)i2, i0);
      lastError = (Msg__Msg)i0;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_SetErrPos((Msg__Msg)i0, (OOC_SymbolTable__Position)i1);
      i0 = (OOC_INT32)errList;
      i1 = (OOC_INT32)lastError;
      OOC_Error__ListDesc_Append((OOC_Error__List)i0, (Msg__Msg)i1);
      return;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(OOC_INT32 code, OOC_SymbolTable__Type type) {
      register OOC_INT32 i0,i1;

      i0 = code;
      i1 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__createNamespaceContext;
      i0 = (OOC_INT32)OOC_Error__New((OOC_Error__Context)i1, i0);
      lastError = (Msg__Msg)i0;
      i1 = (OOC_INT32)type;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 8216))+20);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_SetErrPos((Msg__Msg)i0, (OOC_SymbolTable__Position)i1);
      i0 = (OOC_INT32)errList;
      i1 = (OOC_INT32)lastError;
      OOC_Error__ListDesc_Append((OOC_Error__List)i0, (Msg__Msg)i1);
      return;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrDecl(OOC_INT32 code, OOC_SymbolTable__Declaration decl, OOC_Error__List errList) {
      register OOC_INT32 i0,i1;

      i0 = code;
      i1 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__createNamespaceContext;
      i0 = (OOC_INT32)OOC_Error__New((OOC_Error__Context)i1, i0);
      lastError = (Msg__Msg)i0;
      i1 = (OOC_INT32)decl;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 8468))+20);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_SetErrPos((Msg__Msg)i0, (OOC_SymbolTable__Position)i1);
      i0 = (OOC_INT32)errList;
      i1 = (OOC_INT32)lastError;
      OOC_Error__ListDesc_Append((OOC_Error__List)i0, (Msg__Msg)i1);
      return;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_ImportAllModules(OOC_SymbolTable__Module root) {
      register OOC_INT32 i0,i1,i2;
      OOC_SymbolTable__Item ptr;

      i0 = (OOC_INT32)errList;
      i1 = (OOC_INT32)root;
      i2 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__systemModule;
      OOC_SymbolTable_ImportModules__ImportModules((OOC_SymbolTable__Module)i2, (OOC_SymbolTable__Module)i1, (OOC_Error__List)i0);
      i0 = (OOC_INT32)errList;
      i0 = OOC_Error__ListDesc_NoErrors((OOC_Error__List)i0);
      if (!i0) goto l17;
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 8751))+8);
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT32)0;
      if (!i1) goto l17;
l5_loop:
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 8813)))), &_td_OOC_SymbolTable__ImportDesc);
      if (!i1) goto l11;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 8848))+52);
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 8864))+48);
      i1 = i1==(OOC_INT32)0;
      if (!i1) goto l11;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 9101))+52);
      i2 = (OOC_INT32)errList;
      OOC_SymbolTable_CreateNamespace__CreateNamespace((OOC_SymbolTable__Module)i1, (OOC_SymbolTable_Uses__Uses)(OOC_INT32)0, (OOC_Error__List)i2);
l11:
      i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 9200));
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT32)0;
      if (i1) goto l5_loop;
l17:
      return;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace(OOC_SymbolTable__Item item) {
      register OOC_INT32 i0,i1,i2;
      OOC_SymbolTable__Item ptr;
      auto OOC_SymbolTable__Namespace OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble(OOC_SymbolTable__Item item, OOC_INT8 nsType);
        
        OOC_SymbolTable__Namespace OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble(OOC_SymbolTable__Item item, OOC_INT8 nsType) {
          register OOC_INT32 i0,i1,i2,i3;
          OOC_INT32 c;
          OOC_SymbolTable__Item ptr;
          OOC_SymbolTable__DeclarationArray da;
          auto OOC_CHAR8 OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble_IsDeclaration(OOC_SymbolTable__Item x);
          auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble_Quicksort(OOC_SymbolTable__DeclarationArray da, OOC_INT32 l, OOC_INT32 r);
            
            OOC_CHAR8 OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble_IsDeclaration(OOC_SymbolTable__Item x) {
              register OOC_INT32 i0,i1;

              i0 = (OOC_INT32)x;
              i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 10206)))), &_td_OOC_SymbolTable__ProcDeclDesc);
              if (i1) goto l19;
              i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 10295)))), &_td_OOC_SymbolTable__TypeDeclDesc);
              if (i1) goto l13;
              i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 10678)))), &_td_OOC_SymbolTable__VarDeclDesc);
              if (i1) goto l7;
              return (OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 10944)))), &_td_OOC_SymbolTable__DeclarationDesc));
              goto l24;
l7:
              i0 = *(OOC_UINT8*)((_check_pointer(i0, 10864))+56);
              i0 = !i0;
              if (i0) goto l10;
              i0 = (OOC_INT32)item;
              i0 = !(OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 10887)))), &_td_OOC_SymbolTable__FormalParsDesc));
              
              goto l11;
l10:
              i0=1u;
l11:
              return i0;
              goto l24;
l13:
              i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 10330))+48);
              i0 = i0==(OOC_INT32)0;
              if (i0) goto l16;
              return 1u;
              goto l24;
l16:
              i0 = (OOC_INT32)item;
              return (OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 10584)))), &_td_OOC_SymbolTable__FormalParsDesc));
              goto l24;
l19:
              i1 = OOC_SymbolTable__ProcDeclDesc_IsTypeBound((OOC_SymbolTable__ProcDecl)i0);
              if (i1) goto l22;
              i0 = *(OOC_UINT8*)((_check_pointer(i0, 10265))+49);
              
              goto l23;
l22:
              i0=1u;
l23:
              return (!i0);
l24:
              _failed_function(10138); return 0;
              ;
            }

            
            void OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble_Quicksort(OOC_SymbolTable__DeclarationArray da, OOC_INT32 l, OOC_INT32 r) {
              register OOC_INT32 i0,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10;
              OOC_INT32 i;
              OOC_INT32 j;
              OOC_Scanner_InputBuffer__CharArray v;
              OOC_SymbolTable__Declaration t;

              i0 = l;
              i1 = r;
              i2 = i0<i1;
              if (!i2) goto l26;
              i2 = i0-1;
              i = i2;
              j = i1;
              i3 = (OOC_INT32)da;
              i4 = _check_pointer(i3, 11266);
              i5 = OOC_ARRAY_LENGTH(i4, 0);
              i4 = (OOC_INT32)*(OOC_INT32*)(i4+(_check_index(i1, i5, OOC_UINT32, 11266))*4);
              i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i4, 11269))+20);
              i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i4, 11275))+12);
              v = (OOC_Scanner_InputBuffer__CharArray)i4;
              i5=i1;
l3_loop:
              
l4_loop:
              i2 = i2+1;
              i = i2;
              i6 = i2>i1;
              if (i6) goto l7;
              i6 = _check_pointer(i3, 11348);
              i7 = OOC_ARRAY_LENGTH(i6, 0);
              i6 = (OOC_INT32)*(OOC_INT32*)(i6+(_check_index(i2, i7, OOC_UINT32, 11348))*4);
              i6 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i6, 11351))+20);
              i6 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i6, 11357))+12);
              i6 = (
              _cmp8((const void*)(_check_pointer(i6, 11362)),(const void*)(_check_pointer(i4, 11368))))>=0;
              
              goto l9;
l7:
              i6=1u;
l9:
              if (!i6) goto l4_loop;
l13_loop:
              i5 = i5-1;
              j = i5;
              i6 = i5<i0;
              if (i6) goto l16;
              i6 = _check_pointer(i3, 11421);
              i7 = OOC_ARRAY_LENGTH(i6, 0);
              i6 = (OOC_INT32)*(OOC_INT32*)(i6+(_check_index(i5, i7, OOC_UINT32, 11421))*4);
              i6 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i6, 11424))+20);
              i6 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i6, 11430))+12);
              i6 = (
              _cmp8((const void*)(_check_pointer(i6, 11435)),(const void*)(_check_pointer(i4, 11441))))<=0;
              
              goto l18;
l16:
              i6=1u;
l18:
              if (!i6) goto l13_loop;
l21:
              i6 = i2>=i5;
              if (i6) goto l25;
              i6 = _check_pointer(i3, 11507);
              i7 = OOC_ARRAY_LENGTH(i6, 0);
              i6 = (OOC_INT32)*(OOC_INT32*)(i6+(_check_index(i2, i7, OOC_UINT32, 11507))*4);
              t = (OOC_SymbolTable__Declaration)i6;
              i7 = _check_pointer(i3, 11514);
              i8 = OOC_ARRAY_LENGTH(i7, 0);
              i9 = _check_pointer(i3, 11523);
              i10 = OOC_ARRAY_LENGTH(i9, 0);
              i9 = (OOC_INT32)*(OOC_INT32*)(i9+(_check_index(i5, i10, OOC_UINT32, 11523))*4);
              *(OOC_INT32*)(i7+(_check_index(i2, i8, OOC_UINT32, 11514))*4) = i9;
              i7 = _check_pointer(i3, 11530);
              i8 = OOC_ARRAY_LENGTH(i7, 0);
              *(OOC_INT32*)(i7+(_check_index(i5, i8, OOC_UINT32, 11530))*4) = i6;
              
              goto l3_loop;
l25:
              i4 = _check_pointer(i3, 11575);
              i5 = OOC_ARRAY_LENGTH(i4, 0);
              i4 = (OOC_INT32)*(OOC_INT32*)(i4+(_check_index(i2, i5, OOC_UINT32, 11575))*4);
              t = (OOC_SymbolTable__Declaration)i4;
              i5 = _check_pointer(i3, 11582);
              i6 = OOC_ARRAY_LENGTH(i5, 0);
              i7 = _check_pointer(i3, 11591);
              i8 = OOC_ARRAY_LENGTH(i7, 0);
              i7 = (OOC_INT32)*(OOC_INT32*)(i7+(_check_index(i1, i8, OOC_UINT32, 11591))*4);
              *(OOC_INT32*)(i5+(_check_index(i2, i6, OOC_UINT32, 11582))*4) = i7;
              i5 = _check_pointer(i3, 11598);
              i6 = OOC_ARRAY_LENGTH(i5, 0);
              *(OOC_INT32*)(i5+(_check_index(i1, i6, OOC_UINT32, 11598))*4) = i4;
              OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble_Quicksort((OOC_SymbolTable__DeclarationArray)i3, i0, (i2-1));
              OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble_Quicksort((OOC_SymbolTable__DeclarationArray)i3, (i2+1), i1);
l26:
              return;
              ;
            }


          c = 0;
          i0 = (OOC_INT32)item;
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 11819))+8);
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT32)0;
          if (!i1) goto l11;
l3_loop:
          i0 = OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble_IsDeclaration((OOC_SymbolTable__Item)i0);
          if (!i0) goto l6;
          i0 = c;
          c = (i0+1);
l6:
          i0 = (OOC_INT32)ptr;
          i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 11956));
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT32)0;
          if (i1) goto l3_loop;
l11:
          i0 = (OOC_INT32)item;
          i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 11999)))), &_td_OOC_SymbolTable__ProcDeclDesc);
          if (!i1) goto l25;
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer((_type_guard(i0, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 12324)))), &_td_OOC_SymbolTable__ProcDeclDesc, 12324)), 12333))+64);
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 12345))+8);
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT32)0;
          if (!i1) goto l25;
l16_loop:
          i0 = OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble_IsDeclaration((OOC_SymbolTable__Item)i0);
          if (!i0) goto l19;
          i0 = c;
          c = (i0+1);
l19:
          i0 = (OOC_INT32)ptr;
          i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 12492));
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT32)0;
          if (i1) goto l16_loop;
l25:
          i0 = c;
          da = (OOC_SymbolTable__DeclarationArray)((OOC_INT32)RT0__NewObject(_td_OOC_SymbolTable__DeclarationArray.baseTypes[0], i0));
          c = 0;
          i0 = (OOC_INT32)item;
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 12648))+8);
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT32)0;
          if (!i1) goto l36;
l28_loop:
          i0 = OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble_IsDeclaration((OOC_SymbolTable__Item)i0);
          if (!i0) goto l31;
          i0 = (OOC_INT32)da;
          i0 = _check_pointer(i0, 12744);
          i1 = OOC_ARRAY_LENGTH(i0, 0);
          i2 = c;
          i3 = (OOC_INT32)ptr;
          *(OOC_INT32*)(i0+(_check_index(i2, i1, OOC_UINT32, 12744))*4) = (_type_guard(i3, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i3, 12759)))), &_td_OOC_SymbolTable__DeclarationDesc, 12759));
          c = (i2+1);
l31:
          i0 = (OOC_INT32)ptr;
          i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 12828));
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT32)0;
          if (i1) goto l28_loop;
l36:
          i0 = (OOC_INT32)item;
          i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 12871)))), &_td_OOC_SymbolTable__ProcDeclDesc);
          if (!i1) goto l50;
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer((_type_guard(i0, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 12950)))), &_td_OOC_SymbolTable__ProcDeclDesc, 12950)), 12959))+64);
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 12971))+8);
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT32)0;
          if (!i1) goto l50;
l41_loop:
          i0 = OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble_IsDeclaration((OOC_SymbolTable__Item)i0);
          if (!i0) goto l44;
          i0 = (OOC_INT32)da;
          i0 = _check_pointer(i0, 13073);
          i1 = OOC_ARRAY_LENGTH(i0, 0);
          i2 = c;
          i3 = (OOC_INT32)ptr;
          *(OOC_INT32*)(i0+(_check_index(i2, i1, OOC_UINT32, 13073))*4) = (_type_guard(i3, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i3, 13088)))), &_td_OOC_SymbolTable__DeclarationDesc, 13088));
          c = (i2+1);
l44:
          i0 = (OOC_INT32)ptr;
          i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 13163));
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT32)0;
          if (i1) goto l41_loop;
l50:
          i0 = c;
          i1 = (OOC_INT32)da;
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble_Quicksort((OOC_SymbolTable__DeclarationArray)i1, 0, (i0-1));
          i0 = nsType;
          switch (i0) {
          case 0:
            i0 = c;
            i1 = (OOC_INT32)da;
            i0 = (OOC_INT32)OOC_SymbolTable_Namespace__NewNested((OOC_SymbolTable__DeclarationArray)i1, i0);
            return (OOC_SymbolTable__Namespace)i0;
            goto l55;
          case 1:
            i0 = c;
            i1 = (OOC_INT32)da;
            i0 = (OOC_INT32)OOC_SymbolTable_Namespace__NewExtended((OOC_SymbolTable__DeclarationArray)i1, i0);
            return (OOC_SymbolTable__Namespace)i0;
            goto l55;
          default:
            _failed_case(i0, 13270);
            goto l55;
          }
l55:
          _failed_function(9974); return 0;
          ;
        }


      i0 = (OOC_INT32)item;
      i1 = i0!=(OOC_INT32)0;
      if (!i1) goto l30;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 13504))+8);
      ptr = (OOC_SymbolTable__Item)i1;
      i2 = i1!=(OOC_INT32)0;
      if (!i2) goto l10;
l5_loop:
      OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace((OOC_SymbolTable__Item)i1);
      i1 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i1, 13603));
      ptr = (OOC_SymbolTable__Item)i1;
      i2 = i1!=(OOC_INT32)0;
      if (i2) goto l5_loop;
l10:
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 13647)))), &_td_OOC_SymbolTable__ModuleDesc);
      if (i1) goto l28;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 13741)))), &_td_OOC_SymbolTable__ProcDeclDesc);
      if (i1) goto l26;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 13837)))), &_td_OOC_SymbolTable__RecordDesc);
      if (i1) goto l24;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 13975)))), &_td_OOC_SymbolTable__TypeParsDesc);
      if (i1) goto l22;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 14072)))), &_td_OOC_SymbolTable__FormalParsDesc);
      if (!i1) goto l30;
      i0 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble((OOC_SymbolTable__Item)i0, 0);
      i1 = (OOC_INT32)item;
      OOC_SymbolTable__FormalParsDesc_SetNamespace((OOC_SymbolTable__FormalPars)i1, (OOC_SymbolTable__Namespace)i0);
      goto l30;
l22:
      i0 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble((OOC_SymbolTable__Item)i0, 0);
      i1 = (OOC_INT32)item;
      OOC_SymbolTable__TypeParsDesc_SetNamespace((OOC_SymbolTable__TypePars)i1, (OOC_SymbolTable__Namespace)i0);
      goto l30;
l24:
      i0 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble((OOC_SymbolTable__Item)i0, 1);
      i1 = (OOC_INT32)item;
      OOC_SymbolTable__RecordDesc_SetNamespace((OOC_SymbolTable__Record)i1, (OOC_SymbolTable__Namespace)i0);
      i0 = (OOC_INT32)privateRecords;
      ADT_Dictionary__DictionaryDesc_Set((ADT_Dictionary__Dictionary)i0, (Object__Object)i1, (Object__Object)(OOC_INT32)0);
      goto l30;
l26:
      i0 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble((OOC_SymbolTable__Item)i0, 0);
      i1 = (OOC_INT32)item;
      OOC_SymbolTable__ProcDeclDesc_SetNamespace((OOC_SymbolTable__ProcDecl)i1, (OOC_SymbolTable__Namespace)i0);
      goto l30;
l28:
      i0 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble((OOC_SymbolTable__Item)i0, 0);
      i1 = (OOC_INT32)item;
      OOC_SymbolTable__ModuleDesc_SetNamespace((OOC_SymbolTable__Module)i1, (OOC_SymbolTable__Namespace)i0);
l30:
      return;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckLocalUniqueness(OOC_SymbolTable__Item item, OOC_Error__List errList) {
      register OOC_INT32 i0,i1,i2;
      OOC_SymbolTable__Namespace ns0;
      OOC_SymbolTable__Item ptr;

      i0 = (OOC_INT32)item;
      i1 = i0!=(OOC_INT32)0;
      if (!i1) goto l14;
      i1 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 14739)))), OOC_SymbolTable__ItemDesc_Namespace)),OOC_SymbolTable__ItemDesc_Namespace)((OOC_SymbolTable__Item)i0);
      ns0 = (OOC_SymbolTable__Namespace)i1;
      i2 = i1!=(OOC_INT32)0;
      if (!i2) goto l5;
      i2 = (OOC_INT32)errList;
      OOC_SymbolTable_Namespace__NamespaceDesc_CheckLocalUniqueness((OOC_SymbolTable_Namespace__Namespace)(_type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 14806)))), &_td_OOC_SymbolTable_Namespace__NamespaceDesc, 14806)), (OOC_Error__List)i2);
l5:
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 14931))+8);
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT32)0;
      if (!i1) goto l14;
      i1 = (OOC_INT32)errList;
      
l8_loop:
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckLocalUniqueness((OOC_SymbolTable__Item)i0, (OOC_Error__List)i1);
      i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 15042));
      ptr = (OOC_SymbolTable__Item)i0;
      i2 = i0!=(OOC_INT32)0;
      if (i2) goto l8_loop;
l14:
      return;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_ConnectNamespaces(OOC_SymbolTable__Item item, OOC_SymbolTable__Module predefModule, OOC_Error__List errList) {
      register OOC_INT32 i0,i1,i2,i3;
      OOC_SymbolTable__Item ptr;
      auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_ConnectNamespaces_SetEnclosingParent(OOC_SymbolTable_Namespace__Nested ns, OOC_SymbolTable__Item parent);
        
        void OOC_SymbolTable_CreateNamespace__CreateNamespace_ConnectNamespaces_SetEnclosingParent(OOC_SymbolTable_Namespace__Nested ns, OOC_SymbolTable__Item parent) {
          register OOC_INT32 i0,i1;

          i0 = (OOC_INT32)parent;
          i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 15842)))), &_td_OOC_SymbolTable__ModuleDesc);
          if (i1) goto l6;
          i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 15979)))), &_td_OOC_SymbolTable__ProcDeclDesc);
          if (!i1) goto l7;
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer((_type_guard(i0, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 16062)))), &_td_OOC_SymbolTable__ProcDeclDesc, 16062)), 16071))+60);
          i1 = (OOC_INT32)ns;
          OOC_SymbolTable_Namespace__NestedDesc_SetEnclosingNamespace((OOC_SymbolTable_Namespace__Nested)i1, (OOC_SymbolTable_Namespace__Namespace)(_type_guard(i0, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 16085)))), &_td_OOC_SymbolTable_Namespace__NamespaceDesc, 16085)));
          goto l7;
l6:
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer((_type_guard(i0, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 15923)))), &_td_OOC_SymbolTable__ModuleDesc, 15923)), 15930))+48);
          i1 = (OOC_INT32)ns;
          OOC_SymbolTable_Namespace__NestedDesc_SetEnclosingNamespace((OOC_SymbolTable_Namespace__Nested)i1, (OOC_SymbolTable_Namespace__Namespace)(_type_guard(i0, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 15944)))), &_td_OOC_SymbolTable_Namespace__NamespaceDesc, 15944)));
l7:
          return;
          ;
        }


      i0 = (OOC_INT32)item;
      i1 = i0!=(OOC_INT32)0;
      if (!i1) goto l37;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 16199)))), &_td_OOC_SymbolTable__ModuleDesc);
      if (i1) goto l24;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 16399)))), &_td_OOC_SymbolTable__ProcDeclDesc);
      if (i1) goto l22;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 16546)))), &_td_OOC_SymbolTable__TypeParsDesc);
      if (i1) goto l20;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 16649)))), &_td_OOC_SymbolTable__FormalParsDesc);
      if (!i1) goto l28;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 16687))+4);
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 16695)))), &_td_OOC_SymbolTable__ProcDeclDesc);
      if (i1) goto l13;
      i1=0u;
      goto l15;
l13:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 16732))+4);
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer((_type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 16744)))), &_td_OOC_SymbolTable__ProcDeclDesc, 16744)), 16753))+64);
      i1 = i1==i0;
      
l15:
      if (i1) goto l17;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 16940))+64);
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 16967))+4);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ConnectNamespaces_SetEnclosingParent((OOC_SymbolTable_Namespace__Nested)(_type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 16954)))), &_td_OOC_SymbolTable_Namespace__NestedDesc, 16954)), (OOC_SymbolTable__Item)i0);
      goto l28;
l17:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 16840))+4);
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 16813))+64);
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 16847))+4);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ConnectNamespaces_SetEnclosingParent((OOC_SymbolTable_Namespace__Nested)(_type_guard(i0, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 16827)))), &_td_OOC_SymbolTable_Namespace__NestedDesc, 16827)), (OOC_SymbolTable__Item)i1);
      goto l28;
l20:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 16597))+24);
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 16624))+4);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ConnectNamespaces_SetEnclosingParent((OOC_SymbolTable_Namespace__Nested)(_type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 16611)))), &_td_OOC_SymbolTable_Namespace__NestedDesc, 16611)), (OOC_SymbolTable__Item)i0);
      goto l28;
l22:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 16494))+64);
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 16505))+64);
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 16431))+60);
      OOC_SymbolTable_Namespace__NestedDesc_SetEnclosingNamespace((OOC_SymbolTable_Namespace__Nested)(_type_guard(i0, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 16445)))), &_td_OOC_SymbolTable_Namespace__NestedDesc, 16445)), (OOC_SymbolTable_Namespace__Namespace)(_type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 16519)))), &_td_OOC_SymbolTable_Namespace__NamespaceDesc, 16519)));
      goto l28;
l24:
      i1 = (OOC_INT32)predefModule;
      i2 = i1!=(OOC_INT32)0;
      if (!i2) goto l28;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 16344))+48);
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 16270))+48);
      OOC_SymbolTable_Namespace__NestedDesc_SetEnclosingNamespace((OOC_SymbolTable_Namespace__Nested)(_type_guard(i0, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 16285)))), &_td_OOC_SymbolTable_Namespace__NestedDesc, 16285)), (OOC_SymbolTable_Namespace__Namespace)(_type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 16359)))), &_td_OOC_SymbolTable_Namespace__NamespaceDesc, 16359)));
l28:
      i0 = (OOC_INT32)item;
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 17138))+8);
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT32)0;
      if (!i1) goto l37;
      i1 = (OOC_INT32)errList;
      i2 = (OOC_INT32)predefModule;
      
l31_loop:
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ConnectNamespaces((OOC_SymbolTable__Item)i0, (OOC_SymbolTable__Module)i2, (OOC_Error__List)i1);
      i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 17260));
      ptr = (OOC_SymbolTable__Item)i0;
      i3 = i0!=(OOC_INT32)0;
      if (i3) goto l31_loop;
l37:
      return;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames(OOC_SymbolTable__Item item, OOC_SymbolTable__Item contextOfUse, ADT_ArrayList__ArrayList unpatchedQualTypes, OOC_Error__List errList) {
      register OOC_INT32 i0,i1,i2,i3,i4,i5,i6;
      OOC_SymbolTable__TypePars typePars;
      OOC_INT32 i;
      OOC_INT32 typeDeclCount;
      OOC_SymbolTable__Item ptr;
      auto OOC_SymbolTable__Type OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName(OOC_SymbolTable__Type typeName, OOC_SymbolTable__Item contextOfUse, OOC_CHAR8 extendedSearch, OOC_CHAR8 addQualTypeDefaults, OOC_Error__List errList);
      auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_CollectFormalPars(OOC_SymbolTable__FormalPars item);
      auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_ResolveReceiver(OOC_SymbolTable__ProcDecl procDecl, OOC_SymbolTable__VarDecl receiver);
        
        OOC_SymbolTable__Type OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName(OOC_SymbolTable__Type typeName, OOC_SymbolTable__Item contextOfUse, OOC_CHAR8 extendedSearch, OOC_CHAR8 addQualTypeDefaults, OOC_Error__List errList) {
          register OOC_INT32 i0,i1,i2,i3,i4,i5;
          OOC_SymbolTable__Namespace ns;
          OOC_SymbolTable__Declaration item;
          OOC_SymbolTable__Declaration itemRedir;
          OOC_SymbolTable__Type type;
          OOC_SymbolTable__QualType qt;

          i0 = (OOC_INT32)typeName;
          i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 19061)))), &_td_OOC_SymbolTable__TypeNameDesc);
          if (i1) goto l7;
          i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 22313)))), &_td_OOC_SymbolTable__QualTypeDesc);
          if (i1) goto l5;
          return (OOC_SymbolTable__Type)i0;
          goto l78;
l5:
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 22384))+40);
          i2 = (OOC_INT32)errList;
          i3 = extendedSearch;
          i4 = (OOC_INT32)contextOfUse;
          i1 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i4, i3, 0u, (OOC_Error__List)i2);
          *(OOC_INT32*)((_check_pointer(i0, 22349))+40) = i1;
          return (OOC_SymbolTable__Type)i0;
          goto l78;
l7:
          i1 = (OOC_INT32)contextOfUse;
          i2 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 19107)))), OOC_SymbolTable__ItemDesc_Namespace)),OOC_SymbolTable__ItemDesc_Namespace)((OOC_SymbolTable__Item)i1);
          ns = (OOC_SymbolTable__Namespace)i2;
          i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 19144))+40);
          i3 = i3!=(OOC_INT32)0;
          if (!i3) goto l23;
          i3 = OOC_SymbolTable__TypeNameDesc_IsPredefReference((OOC_SymbolTable__TypeName)i0);
          if (i3) goto l21;
          i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 19395))+40);
          i3 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 19361)))), OOC_SymbolTable__NamespaceDesc_Identify)),OOC_SymbolTable__NamespaceDesc_Identify)((OOC_SymbolTable__Namespace)i2, (OOC_SymbolTable__Item)i1, (OOC_SymbolTable__Name)i3, 0u);
          item = (OOC_SymbolTable__Declaration)i3;
          i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 19457))+40);
          i5 = (OOC_INT32)uses;
          OOC_SymbolTable_Uses__Mark((OOC_SymbolTable__Declaration)i3, (OOC_SymbolTable_Uses__Uses)i5, (OOC_SymbolTable__Name)i4);
          i4 = i3==(OOC_INT32)0;
          if (i4) goto l19;
          i4 = !(OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i3, 19611)))), &_td_OOC_SymbolTable__ImportDesc));
          if (i4) goto l17;
          i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer((_type_guard(i3, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i3, 19756)))), &_td_OOC_SymbolTable__ImportDesc, 19756)), 19763))+52);
          i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 19779))+48);
          ns = (OOC_SymbolTable__Namespace)i2;
          _assert((i2!=(OOC_INT32)0), 127, 19801);
          
          goto l23;
l17:
          OOC_SymbolTable_CreateNamespace__CreateNamespace_Err(18, (OOC_SymbolTable__TypeName)i0);
          return (OOC_SymbolTable__Type)i0;
          
          goto l23;
l19:
          OOC_SymbolTable_CreateNamespace__CreateNamespace_Err(17, (OOC_SymbolTable__TypeName)i0);
          return (OOC_SymbolTable__Type)i0;
          
          goto l23;
l21:
          i2 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__predefModule;
          i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 19246))+48);
          ns = (OOC_SymbolTable__Namespace)i2;
          
l23:
          i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 19923))+44);
          i3 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 19889)))), OOC_SymbolTable__NamespaceDesc_Identify)),OOC_SymbolTable__NamespaceDesc_Identify)((OOC_SymbolTable__Namespace)i2, (OOC_SymbolTable__Item)i1, (OOC_SymbolTable__Name)i3, 0u);
          item = (OOC_SymbolTable__Declaration)i3;
          i4 = i3==(OOC_INT32)0;
          if (i4) goto l26;
          i4=0u;
          goto l28;
l26:
          i4 = extendedSearch;
          
l28:
          if (i4) goto l30;
          i2=i3;
          goto l39;
l30:
          i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 20049))+44);
          i3 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 20010)))), OOC_SymbolTable__NamespaceDesc_IdentifyLocal)),OOC_SymbolTable__NamespaceDesc_IdentifyLocal)((OOC_SymbolTable__Namespace)i2, (OOC_SymbolTable__Item)i1, (OOC_SymbolTable__Name)i3, 1u);
          item = (OOC_SymbolTable__Declaration)i3;
          i4 = i3==(OOC_INT32)0;
          if (i4) goto l33;
          i4=0u;
          goto l35;
l33:
          i4 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 20109)))), &_td_OOC_SymbolTable__TypeParsDesc);
          
l35:
          if (i4) goto l37;
          i2=i3;
          goto l39;
l37:
          i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer((_type_guard(i2, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 20345)))), &_td_OOC_SymbolTable_Namespace__NestedDesc, 20345)), 20352))+8);
          i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 20417))+44);
          i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer((_type_guard(i2, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 20345)))), &_td_OOC_SymbolTable_Namespace__NestedDesc, 20345)), 20352))+8);
          i2 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i3, 20361)))), OOC_SymbolTable__NamespaceDesc_IdentifyLocal)),OOC_SymbolTable__NamespaceDesc_IdentifyLocal)((OOC_SymbolTable__Namespace)i2, (OOC_SymbolTable__Item)i1, (OOC_SymbolTable__Name)i4, 1u);
          item = (OOC_SymbolTable__Declaration)i2;
          
l39:
          i3 = i2==(OOC_INT32)0;
          if (i3) goto l76;
          i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 20609))+40);
          i3 = i3==(OOC_INT32)0;
          if (i3) goto l44;
          i3=0u;
          goto l46;
l44:
          i3 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 20647)))), &_td_OOC_SymbolTable__TypeDeclDesc);
          
l46:
          if (i3) goto l48;
          i3=0u;
          goto l50;
l48:
          i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 20671))+4);
          i4 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__predefModule;
          i3 = i3==i4;
          
l50:
          if (!i3) goto l52;
          OOC_SymbolTable__TypeNameDesc_MarkAsPredefReference((OOC_SymbolTable__TypeName)i0);
l52:
          i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 21035))+44);
          i4 = (OOC_INT32)uses;
          OOC_SymbolTable_Uses__Mark((OOC_SymbolTable__Declaration)i2, (OOC_SymbolTable_Uses__Uses)i4, (OOC_SymbolTable__Name)i3);
          itemRedir = (OOC_SymbolTable__Declaration)i2;
          i3 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 21101)))), &_td_OOC_SymbolTable__RedirectDesc);
          if (!i3) goto l59;
          i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 21269))+52);
          i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 21251))+48);
          i4 = (OOC_INT32)uses;
          i5 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 21170)))), OOC_SymbolTable__ItemDesc_Namespace)),OOC_SymbolTable__ItemDesc_Namespace)((OOC_SymbolTable__Item)i1);
          i2 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__ResolveQualident((OOC_SymbolTable__Namespace)i5, (OOC_SymbolTable__Item)i1, (OOC_SymbolTable_Uses__Uses)i4, (OOC_SymbolTable__Name)i2, (OOC_SymbolTable__Name)i3);
          item = (OOC_SymbolTable__Declaration)i2;
          i3 = i2==(OOC_INT32)0;
          if (!i3) goto l59;
          OOC_SymbolTable_CreateNamespace__CreateNamespace_Err(1, (OOC_SymbolTable__TypeName)i0);
          return (OOC_SymbolTable__Type)i0;
l59:
          i3 = !(OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 21483)))), &_td_OOC_SymbolTable__TypeDeclDesc));
          if (i3) goto l74;
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer((_type_guard(i2, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 21746)))), &_td_OOC_SymbolTable__TypeDeclDesc, 21746)), 21755))+48);
          i2 = (OOC_INT32)errList;
          i3 = extendedSearch;
          i4 = addQualTypeDefaults;
          i0 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Item)i1, i3, i4, (OOC_Error__List)i2);
          type = (OOC_SymbolTable__Type)i0;
          if (i4) goto l64;
          i1=0u;
          goto l66;
l64:
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 21954))+28);
          i1 = i1!=(OOC_INT32)0;
          
l66:
          if (i1) goto l68;
          i1=0u;
          goto l70;
l68:
          i1 = !(OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 21997)))), &_td_OOC_SymbolTable__TypeVarDesc));
          
l70:
          if (i1) goto l72;
          return (OOC_SymbolTable__Type)i0;
          goto l78;
l72:
          i1 = (OOC_INT32)RT0__NewObject(_td_OOC_SymbolTable__QualType.baseTypes[0]);
          qt = (OOC_SymbolTable__QualType)i1;
          i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 22089))+20);
          OOC_SymbolTable__InitQualType((OOC_SymbolTable__QualType)i1, (OOC_SymbolTable__Item)(OOC_INT32)0, (OOC_SymbolTable__Position)i2, (OOC_SymbolTable__Type)i0, (OOC_SymbolTable__TypeRefArray)(OOC_INT32)0);
          i0 = (OOC_INT32)unpatchedQualTypes;
          OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 22146)))), ADT_ArrayList__ArrayListDesc_Append)),ADT_ArrayList__ArrayListDesc_Append)((ADT_ArrayList__ArrayList)i0, (Object__Object)i1);
          return (OOC_SymbolTable__Type)i1;
          goto l78;
l74:
          OOC_SymbolTable_CreateNamespace__CreateNamespace_Err(2, (OOC_SymbolTable__TypeName)i0);
          return (OOC_SymbolTable__Type)i0;
          goto l78;
l76:
          OOC_SymbolTable_CreateNamespace__CreateNamespace_Err(1, (OOC_SymbolTable__TypeName)i0);
          return (OOC_SymbolTable__Type)i0;
l78:
          _failed_function(18093); return 0;
          ;
        }

        
        void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_CollectFormalPars(OOC_SymbolTable__FormalPars item) {
          register OOC_INT32 i0,i1,i2,i3,i4;
          OOC_INT32 c;
          OOC_SymbolTable__Item ptr;

          c = 0;
          i0 = (OOC_INT32)item;
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 22937))+8);
          ptr = (OOC_SymbolTable__Item)i1;
          i2 = i1!=(OOC_INT32)0;
          if (i2) goto l3;
          i1=0;
          goto l21;
l3:
          i2=0;
l4_loop:
          i3 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 22998)))), &_td_OOC_SymbolTable__VarDeclDesc);
          if (i3) goto l7;
          i3=0u;
          goto l9;
l7:
          i3 = *(OOC_UINT8*)((_check_pointer((_type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 23038)))), &_td_OOC_SymbolTable__VarDeclDesc, 23038)), 23046))+56);
          
l9:
          if (i3) goto l11;
          i3=0u;
          goto l13;
l11:
          i3 = *(OOC_UINT8*)((_check_pointer((_type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 23083)))), &_td_OOC_SymbolTable__VarDeclDesc, 23083)), 23091))+57);
          i3 = !i3;
          
l13:
          if (!i3) goto l16;
          i2 = i2+1;
          c = i2;
          
l16:
          i1 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i1, 23163));
          ptr = (OOC_SymbolTable__Item)i1;
          i3 = i1!=(OOC_INT32)0;
          if (i3) goto l4_loop;
l20:
          i1=i2;
l21:
          *(OOC_INT32*)((_check_pointer(i0, 23213))+52) = ((OOC_INT32)RT0__NewObject(_td_OOC_SymbolTable__VarDeclArray.baseTypes[0], i1));
          c = 0;
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 23261))+8);
          ptr = (OOC_SymbolTable__Item)i1;
          i2 = i1!=(OOC_INT32)0;
          if (!i2) goto l41;
          i2=0;
l24_loop:
          i3 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 23322)))), &_td_OOC_SymbolTable__VarDeclDesc);
          if (i3) goto l27;
          i3=0u;
          goto l29;
l27:
          i3 = *(OOC_UINT8*)((_check_pointer((_type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 23361)))), &_td_OOC_SymbolTable__VarDeclDesc, 23361)), 23369))+56);
          
l29:
          if (i3) goto l31;
          i3=0u;
          goto l33;
l31:
          i3 = *(OOC_UINT8*)((_check_pointer((_type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 23406)))), &_td_OOC_SymbolTable__VarDeclDesc, 23406)), 23414))+57);
          i3 = !i3;
          
l33:
          if (!i3) goto l36;
          i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 23447))+52);
          i3 = _check_pointer(i3, 23454);
          i4 = OOC_ARRAY_LENGTH(i3, 0);
          *(OOC_INT32*)(i3+(_check_index(i2, i4, OOC_UINT32, 23454))*4) = (_type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 23469)))), &_td_OOC_SymbolTable__VarDeclDesc, 23469));
          i2 = i2+1;
          c = i2;
          
l36:
          i1 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i1, 23534));
          ptr = (OOC_SymbolTable__Item)i1;
          i3 = i1!=(OOC_INT32)0;
          if (i3) goto l24_loop;
l41:
          return;
          ;
        }

        
        void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_ResolveReceiver(OOC_SymbolTable__ProcDecl procDecl, OOC_SymbolTable__VarDecl receiver) {
          register OOC_INT32 i0,i1,i2,i3,i4,i5;
          OOC_SymbolTable__Record _class;
          OOC_INT32 count;
          OOC_SymbolTable__Item ptr;
          auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_ResolveReceiver_FixupAliasDecl(OOC_SymbolTable__FormalPars formalPars);
            
            void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_ResolveReceiver_FixupAliasDecl(OOC_SymbolTable__FormalPars formalPars) {
              register OOC_INT32 i0,i1,i2;
              OOC_SymbolTable__Item ptr;

              i0 = (OOC_INT32)formalPars;
              i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 23920))+8);
              ptr = (OOC_SymbolTable__Item)i0;
              i1 = i0!=(OOC_INT32)0;
              if (!i1) goto l14;
              i1 = (OOC_INT32)receiver;
              
l3_loop:
              i2 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 23985)))), &_td_OOC_SymbolTable__TypeDeclDesc);
              if (!i2) goto l9;
              i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 24024))+48);
              i2 = i2==(OOC_INT32)0;
              if (!i2) goto l9;
              i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 24078))+48);
              *(OOC_INT32*)((_check_pointer(i0, 24061))+48) = i2;
              i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 24128))+52);
              *(OOC_INT32*)((_check_pointer(i0, 24104))+52) = i2;
l9:
              i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 24244));
              ptr = (OOC_SymbolTable__Item)i0;
              i2 = i0!=(OOC_INT32)0;
              if (i2) goto l3_loop;
l14:
              return;
              ;
            }


          i0 = (OOC_INT32)receiver;
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 24366))+48);
          i2 = (OOC_INT32)contextOfUse;
          i3 = (OOC_INT32)errList;
          i1 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i2, 0u, 0u, (OOC_Error__List)i3);
          OOC_SymbolTable__VarDeclDesc_SetType((OOC_SymbolTable__VarDecl)i0, (OOC_SymbolTable__Type)i1);
          i0 = (OOC_INT32)procDecl;
          i1 = (OOC_INT32)OOC_SymbolTable__ProcDeclDesc_Class((OOC_SymbolTable__ProcDecl)i0);
          _class = (OOC_SymbolTable__Record)i1;
          i1 = i1==(OOC_INT32)0;
          if (!i1) goto l3;
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 24621))+64);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_ResolveReceiver_FixupAliasDecl((OOC_SymbolTable__FormalPars)i0);
          return;
l3:
          i0 = (OOC_INT32)_class;
          i1 = (OOC_INT32)procDecl;
          i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 24682))+64);
          i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 24711))+28);
          i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 24682))+64);
          OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 24693)))), OOC_SymbolTable__TypeDesc_SetTypePars)),OOC_SymbolTable__TypeDesc_SetTypePars)((OOC_SymbolTable__Type)i4, (OOC_SymbolTable__TypePars)i3);
          i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 24806))+28);
          i2 = i2==(OOC_INT32)0;
          if (i2) goto l33;
          count = 0;
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 25249))+64);
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 25260))+8);
          ptr = (OOC_SymbolTable__Item)i1;
          i2 = (OOC_INT32)receiver;
          i3 = i1!=(OOC_INT32)0;
          if (i3) goto l8;
          i1=0;
          goto l25;
l8:
          i3=0;
l9_loop:
          i4 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 25325)))), &_td_OOC_SymbolTable__TypeDeclDesc);
          if (!i4) goto l20;
          i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 25364))+48);
          i4 = i4==(OOC_INT32)0;
          if (!i4) goto l19;
          i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 25580))+28);
          i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i4, 25589))+20);
          i4 = OOC_ARRAY_LENGTH((_check_pointer(i4, 25596)), 0);
          i4 = i3<i4;
          if (i4) goto l17;
          i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 25892))+48);
          *(OOC_INT32*)((_check_pointer(i1, 25875))+48) = i4;
          i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 25944))+52);
          *(OOC_INT32*)((_check_pointer(i1, 25920))+52) = i4;
          goto l19;
l17:
          i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 25640))+28);
          i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i4, 25649))+20);
          i4 = _check_pointer(i4, 25656);
          i5 = OOC_ARRAY_LENGTH(i4, 0);
          i4 = (OOC_INT32)*(OOC_INT32*)(i4+(_check_index(i3, i5, OOC_UINT32, 25656))*4);
          *(OOC_INT32*)((_check_pointer(i1, 25626))+48) = i4;
          i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 25705))+48);
          *(OOC_INT32*)((_check_pointer(i1, 25686))+52) = i4;
          i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 25733))+48);
          OOC_SymbolTable__TypeVarDesc_SetParameterIndex((OOC_SymbolTable__TypeVar)(_type_guard(i4, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i4, 25743)))), &_td_OOC_SymbolTable__TypeVarDesc, 25743)), i3);
l19:
          i3 = i3+1;
          count = i3;
          
l20:
          i1 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i1, 26107));
          ptr = (OOC_SymbolTable__Item)i1;
          i4 = i1!=(OOC_INT32)0;
          if (i4) goto l9_loop;
l24:
          i1=i3;
l25:
          i3 = *(OOC_UINT8*)((_check_pointer(i2, 26168))+58);
          i3 = !i3;
          if (i3) goto l28;
          i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 26216))+28);
          i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i3, 26225))+20);
          i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 26232)), 0);
          i1 = i1!=i3;
          
          goto l30;
l28:
          i1=1u;
l30:
          if (!i1) goto l37;
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 26288))+52);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(32, (OOC_SymbolTable__Type)i1);
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 26356))+28);
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 26365))+20);
          i1 = (OOC_INT32)lastError;
          i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 26372)), 0);
          OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 26324)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"count", 6, i0);
          goto l37;
l33:
          i0 = (OOC_INT32)receiver;
          i2 = *(OOC_UINT8*)((_check_pointer(i0, 24849))+58);
          if (!i2) goto l37;
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 24921))+52);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(33, (OOC_SymbolTable__Type)i0);
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 25160))+64);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_ResolveReceiver_FixupAliasDecl((OOC_SymbolTable__FormalPars)i0);
l37:
          return;
          ;
        }


      i0 = (OOC_INT32)item;
      i1 = i0!=(OOC_INT32)0;
      if (!i1) goto l126;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 26491)))), &_td_OOC_SymbolTable__TypeDeclDesc);
      if (i1) goto l84;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 27019)))), &_td_OOC_SymbolTable__VarDeclDesc);
      if (i1) goto l78;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 27238)))), &_td_OOC_SymbolTable__FieldDeclDesc);
      if (i1) goto l76;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 27409)))), &_td_OOC_SymbolTable__PointerDesc);
      if (i1) goto l74;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 27593)))), &_td_OOC_SymbolTable__FormalParsDesc);
      if (i1) goto l58;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 28092)))), &_td_OOC_SymbolTable__ArrayDesc);
      if (i1) goto l56;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 28280)))), &_td_OOC_SymbolTable__RecordDesc);
      if (i1) goto l51;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 28514)))), &_td_OOC_SymbolTable__QualTypeDesc);
      if (i1) goto l41;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 28919)))), &_td_OOC_SymbolTable__TypeVarDesc);
      if (i1) goto l39;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 29192)))), &_td_OOC_SymbolTable__ModuleDesc);
      if (i1) goto l37;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 29253)))), &_td_OOC_SymbolTable__ProcDeclDesc);
      if (i1) goto l28;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 29469)))), &_td_OOC_SymbolTable__TypeParsDesc);
      if (!i1) goto l93;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 29508))+24);
      _assert((i1!=(OOC_INT32)0), 127, 29497);
      contextOfUse = (OOC_SymbolTable__Item)i0;
      goto l93;
l28:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 29289))+64);
      i1 = i1!=(OOC_INT32)0;
      if (i1) goto l31;
      i1=0u;
      goto l33;
l31:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 29315))+64);
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 29326))+40);
      i1 = i1!=(OOC_INT32)0;
      
l33:
      if (!i1) goto l35;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 29386))+64);
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 29397))+40);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_ResolveReceiver((OOC_SymbolTable__ProcDecl)i0, (OOC_SymbolTable__VarDecl)i1);
l35:
      i0 = (OOC_INT32)item;
      contextOfUse = (OOC_SymbolTable__Item)i0;
      goto l93;
l37:
      contextOfUse = (OOC_SymbolTable__Item)i0;
      goto l93;
l39:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 28978))+40);
      i2 = (OOC_INT32)errList;
      i3 = (OOC_INT32)contextOfUse;
      i1 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i3, 1u, 1u, (OOC_Error__List)i2);
      *(OOC_INT32*)((_check_pointer(i0, 28950))+40) = i1;
      goto l93;
l41:
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 28706))+48);
      i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 28716)), 0);
      i = 0;
      i1 = 0<i0;
      if (!i1) goto l93;
      i1=0;
l44_loop:
      i2 = (OOC_INT32)item;
      i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 28740))+48);
      i3 = _check_pointer(i3, 28750);
      i4 = OOC_ARRAY_LENGTH(i3, 0);
      i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 28796))+48);
      i2 = _check_pointer(i2, 28806);
      i5 = OOC_ARRAY_LENGTH(i2, 0);
      i2 = (OOC_INT32)*(OOC_INT32*)((i2+(_check_index(i1, i5, OOC_UINT32, 28806))*8)+4);
      i5 = (OOC_INT32)errList;
      i6 = (OOC_INT32)contextOfUse;
      i2 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Item)i6, 1u, 1u, (OOC_Error__List)i5);
      i5 = i;
      *(OOC_INT32*)(i3+(_check_index(i1, i4, OOC_UINT32, 28750))*8) = i2;
      i1 = i5+1;
      i = i1;
      i2 = i1<i0;
      if (i2) goto l44_loop;
      goto l93;
l51:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 28314))+40);
      i1 = i1!=(OOC_INT32)0;
      if (!i1) goto l93;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 28385))+40);
      i2 = (OOC_INT32)errList;
      i3 = (OOC_INT32)contextOfUse;
      i1 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i3, 0u, 1u, (OOC_Error__List)i2);
      *(OOC_INT32*)((_check_pointer(i0, 28353))+40) = i1;
      goto l93;
l56:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 28157))+44);
      i2 = (OOC_INT32)errList;
      i3 = (OOC_INT32)contextOfUse;
      i1 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i3, 0u, 1u, (OOC_Error__List)i2);
      *(OOC_INT32*)((_check_pointer(i0, 28121))+44) = i1;
      goto l93;
l58:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 27631))+44);
      i1 = i1!=(OOC_INT32)0;
      if (!i1) goto l61;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 27707))+44);
      i2 = (OOC_INT32)errList;
      i3 = (OOC_INT32)contextOfUse;
      i1 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i3, 0u, 1u, (OOC_Error__List)i2);
      *(OOC_INT32*)((_check_pointer(i0, 27672))+44) = i1;
l61:
      i0 = (OOC_INT32)item;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 27837))+60);
      i1 = i1!=(OOC_INT32)0;
      if (!i1) goto l93;
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 27891))+60);
      i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 27898)), 0);
      i = 0;
      i1 = 0<i0;
      if (!i1) goto l93;
      i1=0;
l66_loop:
      i2 = (OOC_INT32)item;
      i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 27924))+60);
      i3 = _check_pointer(i3, 27931);
      i4 = OOC_ARRAY_LENGTH(i3, 0);
      i3 = (OOC_INT32)*(OOC_INT32*)(i3+(_check_index(i1, i4, OOC_UINT32, 27931))*4);
      i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 27980))+60);
      i2 = _check_pointer(i2, 27987);
      i4 = OOC_ARRAY_LENGTH(i2, 0);
      i1 = (OOC_INT32)*(OOC_INT32*)(i2+(_check_index(i1, i4, OOC_UINT32, 27987))*4);
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 27990))+20);
      i2 = (OOC_INT32)errList;
      i4 = (OOC_INT32)contextOfUse;
      i1 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i4, 0u, 0u, (OOC_Error__List)i2);
      i2 = i;
      *(OOC_INT32*)((_check_pointer(i3, 27934))+20) = i1;
      i1 = i2+1;
      i = i1;
      i2 = i1<i0;
      if (i2) goto l66_loop;
      goto l93;
l74:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 27473))+40);
      i2 = (OOC_INT32)errList;
      i3 = (OOC_INT32)contextOfUse;
      i1 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i3, 1u, 1u, (OOC_Error__List)i2);
      *(OOC_INT32*)((_check_pointer(i0, 27440))+40) = i1;
      goto l93;
l76:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 27300))+48);
      i2 = (OOC_INT32)errList;
      i3 = (OOC_INT32)contextOfUse;
      i1 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i3, 0u, 1u, (OOC_Error__List)i2);
      *(OOC_INT32*)((_check_pointer(i0, 27271))+48) = i1;
      goto l93;
l78:
      i1 = *(OOC_UINT8*)((_check_pointer(i0, 27054))+57);
      i1 = !i1;
      if (!i1) goto l93;
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 27114))+48);
      i1 = (OOC_INT32)errList;
      i2 = (OOC_INT32)contextOfUse;
      i0 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Item)i2, 0u, 1u, (OOC_Error__List)i1);
      i1 = (OOC_INT32)item;
      OOC_SymbolTable__VarDeclDesc_SetType((OOC_SymbolTable__VarDecl)i1, (OOC_SymbolTable__Type)i0);
      
      goto l93;
l84:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 26527))+48);
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 26532))+28);
      i1 = i1!=(OOC_INT32)0;
      if (i1) goto l87;
      i1=0u;
      goto l89;
l87:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 26556))+48);
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 26561))+28);
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 26570))+24);
      i1 = i1!=(OOC_INT32)0;
      
l89:
      if (i1) goto l91;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 26896))+48);
      i2 = (OOC_INT32)errList;
      i3 = (OOC_INT32)contextOfUse;
      i1 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i3, 0u, 1u, (OOC_Error__List)i2);
      *(OOC_INT32*)((_check_pointer(i0, 26869))+48) = i1;
      goto l93;
l91:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 26614))+48);
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 26619))+28);
      typePars = (OOC_SymbolTable__TypePars)i1;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 26684))+48);
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 26689))+28);
      i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 26673))+48);
      i3 = (OOC_INT32)errList;
      i1 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Item)i1, 0u, 1u, (OOC_Error__List)i3);
      *(OOC_INT32*)((_check_pointer(i0, 26646))+48) = i1;
      i0 = (OOC_INT32)item;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 26778))+48);
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 26778))+48);
      i2 = (OOC_INT32)typePars;
      OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 26783)))), OOC_SymbolTable__TypeDesc_SetTypePars)),OOC_SymbolTable__TypeDesc_SetTypePars)((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__TypePars)i2);
l93:
      typeDeclCount = 0;
      i0 = (OOC_INT32)item;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 29710))+8);
      ptr = (OOC_SymbolTable__Item)i1;
      i2 = i1!=(OOC_INT32)0;
      if (i2) goto l96;
      i1=0;
      goto l106;
l96:
      i2 = (OOC_INT32)unpatchedQualTypes;
      i3 = (OOC_INT32)errList;
      i4 = (OOC_INT32)contextOfUse;
      i5=0;
l97_loop:
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames((OOC_SymbolTable__Item)i1, (OOC_SymbolTable__Item)i4, (ADT_ArrayList__ArrayList)i2, (OOC_Error__List)i3);
      i6 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 29849)))), &_td_OOC_SymbolTable__TypeDeclDesc);
      if (!i6) goto l101;
      i5 = i5+1;
      typeDeclCount = i5;
      
l101:
      i1 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i1, 29938));
      ptr = (OOC_SymbolTable__Item)i1;
      i6 = i1!=(OOC_INT32)0;
      if (i6) goto l97_loop;
l105:
      i1=i5;
l106:
      i2 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 30056)))), &_td_OOC_SymbolTable__TypeParsDesc);
      if (i2) goto l112;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 30516)))), &_td_OOC_SymbolTable__FormalParsDesc);
      if (!i1) goto l126;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_CollectFormalPars((OOC_SymbolTable__FormalPars)i0);
      goto l126;
l112:
      *(OOC_INT32*)((_check_pointer(i0, 30146))+20) = ((OOC_INT32)RT0__NewObject(_td_OOC_SymbolTable__TypeVarArray.baseTypes[0], i1));
      typeDeclCount = 0;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 30222))+8);
      ptr = (OOC_SymbolTable__Item)i1;
      i2 = i1!=(OOC_INT32)0;
      if (!i2) goto l126;
      i2=0;
l115_loop:
      i3 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 30287)))), &_td_OOC_SymbolTable__TypeDeclDesc);
      if (!i3) goto l119;
      i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 30327))+20);
      i3 = _check_pointer(i3, 30334);
      i4 = OOC_ARRAY_LENGTH(i3, 0);
      i5 = (OOC_INT32)*(OOC_INT32*)((_check_pointer((_type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 30361)))), &_td_OOC_SymbolTable__TypeDeclDesc, 30361)), 30370))+48);
      *(OOC_INT32*)(i3+(_check_index(i2, i4, OOC_UINT32, 30334))*4) = (_type_guard(i5, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i5, 30380)))), &_td_OOC_SymbolTable__TypeVarDesc, 30380));
      i2 = i2+1;
      typeDeclCount = i2;
      
l119:
      i1 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i1, 30463));
      ptr = (OOC_SymbolTable__Item)i1;
      i3 = i1!=(OOC_INT32)0;
      if (i3) goto l115_loop;
l126:
      return;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions(OOC_SymbolTable__Item item, OOC_Error__List errList) {
      register OOC_INT32 i0,i1,i2,i3,i4,i5,i6;
      OOC_SymbolTable__Type type;
      OOC_SymbolTable__Record record;
      OOC_INT32 i;
      OOC_SymbolTable__Namespace ns;
      OOC_SymbolTable__TypePars typePars;
      OOC_SymbolTable__Item ptr;
      auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions_CheckOpenArray(OOC_SymbolTable__Type type, OOC_SymbolTable__Type srcCodeType);
      auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions_CheckInstance(OOC_SymbolTable__Type type, OOC_SymbolTable__Type srcCodeType);
      auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions_CheckTypePars(OOC_SymbolTable__TypePars typePars);
        
        void OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions_CheckOpenArray(OOC_SymbolTable__Type type, OOC_SymbolTable__Type srcCodeType) {
          register OOC_INT32 i0,i1;

          i0 = (OOC_INT32)type;
          i1 = !(OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 31077)))), &_td_OOC_SymbolTable__TypeNameDesc));
          if (i1) goto l3;
          i0=0u;
          goto l5;
l3:
          i0 = OOC_SymbolTable_TypeRules__IsOpenArrayType((OOC_SymbolTable__Type)i0);
          
l5:
          if (!i0) goto l7;
          i0 = (OOC_INT32)srcCodeType;
          OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(9, (OOC_SymbolTable__Type)i0);
l7:
          return;
          ;
        }

        
        void OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions_CheckInstance(OOC_SymbolTable__Type type, OOC_SymbolTable__Type srcCodeType) {
          register OOC_INT32 i0;

          i0 = (OOC_INT32)type;
          i0 = OOC_SymbolTable_TypeRules__VariableInstance((OOC_SymbolTable__Type)i0);
          i0 = !i0;
          if (!i0) goto l4;
          i0 = (OOC_INT32)srcCodeType;
          OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(21, (OOC_SymbolTable__Type)i0);
l4:
          return;
          ;
        }

        
        void OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions_CheckTypePars(OOC_SymbolTable__TypePars typePars) {
          register OOC_INT32 i0,i1;
          OOC_SymbolTable__Item ptr;

          i0 = (OOC_INT32)typePars;
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 31544))+8);
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT32)0;
          if (!i1) goto l14;
l3_loop:
          i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 31605)))), &_td_OOC_SymbolTable__TypeDeclDesc);
          if (!i1) goto l9;
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 31662))+48);
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer((_type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 31672)))), &_td_OOC_SymbolTable__TypeVarDesc, 31672)), 31680))+40);
          i1 = OOC_SymbolTable_TypeRules__IsValidTypeBound((OOC_SymbolTable__Type)i1);
          i1 = !i1;
          if (!i1) goto l9;
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 31736))+52);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(27, (OOC_SymbolTable__Type)i1);
l9:
          i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 31843));
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT32)0;
          if (i1) goto l3_loop;
l14:
          return;
          ;
        }


      i0 = (OOC_INT32)item;
      i1 = i0!=(OOC_INT32)0;
      if (!i1) goto l193;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 31953)))), &_td_OOC_SymbolTable__VarDeclDesc);
      if (i1) goto l136;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 32951)))), &_td_OOC_SymbolTable__FieldDeclDesc);
      if (i1) goto l134;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 33097)))), &_td_OOC_SymbolTable__ProcDeclDesc);
      if (i1) goto l109;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 33712)))), &_td_OOC_SymbolTable__PointerDesc);
      if (i1) goto l100;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 33948)))), &_td_OOC_SymbolTable__FormalParsDesc);
      if (i1) goto l69;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 34495)))), &_td_OOC_SymbolTable__ArrayDesc);
      if (i1) goto l60;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 34828)))), &_td_OOC_SymbolTable__RecordDesc);
      if (i1) goto l47;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 35400)))), &_td_OOC_SymbolTable__QualTypeDesc);
      if (!i1) goto l177;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 35444))+40);
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 35453))+28);
      typePars = (OOC_SymbolTable__TypePars)i1;
      i2 = i1==(OOC_INT32)0;
      if (i2) goto l44;
      i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 35590))+20);
      i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 35610))+48);
      i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 35597)), 0);
      i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 35620)), 0);
      i2 = i2<i3;
      if (i2) goto l42;
      i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 35767))+20);
      i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 35787))+48);
      i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 35797)), 0);
      i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 35774)), 0);
      i2 = i2>i3;
      if (i2) goto l40;
      i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 35918))+20);
      i = 0;
      i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 35925)), 0);
      i3 = 0<i2;
      if (!i3) goto l177;
      i3=0;
l27_loop:
      i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 35959))+48);
      i4 = _check_pointer(i4, 35969);
      i5 = OOC_ARRAY_LENGTH(i4, 0);
      i4 = (OOC_INT32)*(OOC_INT32*)(i4+(_check_index(i3, i5, OOC_UINT32, 35969))*8);
      type = (OOC_SymbolTable__Type)i4;
      i5 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i4, 36002)))), &_td_OOC_SymbolTable__TypeVarDesc);
      if (!i5) goto l31;
      i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer((_type_guard(i4, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i4, 36056)))), &_td_OOC_SymbolTable__TypeVarDesc, 36056)), 36064))+40);
      type = (OOC_SymbolTable__Type)i4;
      
l31:
      i5 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 36140))+20);
      i5 = _check_pointer(i5, 36147);
      i6 = OOC_ARRAY_LENGTH(i5, 0);
      i5 = (OOC_INT32)*(OOC_INT32*)(i5+(_check_index(i3, i6, OOC_UINT32, 36147))*4);
      i5 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i5, 36150))+40);
      i4 = OOC_SymbolTable_TypeRules__IsExtensionOf((OOC_SymbolTable__Type)i4, (OOC_SymbolTable__Type)i5);
      i4 = !i4;
      if (!i4) goto l34;
      i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 36212))+48);
      i4 = _check_pointer(i4, 36222);
      i5 = OOC_ARRAY_LENGTH(i4, 0);
      i4 = (OOC_INT32)*(OOC_INT32*)((i4+(_check_index(i3, i5, OOC_UINT32, 36222))*8)+4);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(31, (OOC_SymbolTable__Type)i4);
l34:
      i3 = i3+1;
      i = i3;
      i4 = i3<i2;
      if (i4) goto l27_loop;
      goto l177;
l40:
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 35846))+44);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(29, (OOC_SymbolTable__Type)i0);
      goto l177;
l42:
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 35690))+48);
      i0 = _check_pointer(i0, 35700);
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 35713))+20);
      i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 35720)), 0);
      i2 = OOC_ARRAY_LENGTH(i0, 0);
      i0 = (OOC_INT32)*(OOC_INT32*)((i0+(_check_index(i1, i2, OOC_UINT32, 35700))*8)+4);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(30, (OOC_SymbolTable__Type)i0);
      goto l177;
l44:
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 35542))+44);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(28, (OOC_SymbolTable__Type)i0);
      goto l177;
l47:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 34862))+40);
      i1 = i1!=(OOC_INT32)0;
      if (!i1) goto l177;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 34908))+40);
      type = (OOC_SymbolTable__Type)i1;
      i2 = OOC_SymbolTable_TypeRules__IsValidRecordBaseType((OOC_SymbolTable__Type)i1);
      if (i2) goto l56;
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 35155))+44);
      type = (OOC_SymbolTable__Type)i0;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 35196)))), &_td_OOC_SymbolTable__QualTypeDesc);
      if (!i1) goto l55;
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer((_type_guard(i0, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 35251)))), &_td_OOC_SymbolTable__QualTypeDesc, 35251)), 35260))+44);
      type = (OOC_SymbolTable__Type)i0;
      
l55:
      OOC_SymbolTable_CreateNamespace__CreateNamespace_Err(3, (OOC_SymbolTable__TypeName)(_type_guard(i0, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 35344)))), &_td_OOC_SymbolTable__TypeNameDesc, 35344)));
      goto l177;
l56:
      i1 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 34994)))), OOC_SymbolTable__ItemDesc_Namespace)),OOC_SymbolTable__ItemDesc_Namespace)((OOC_SymbolTable__Item)i1);
      ns = (OOC_SymbolTable__Namespace)i1;
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 35026))+52);
      OOC_SymbolTable_Namespace__ExtendedDesc_SetBaseNamespace((OOC_SymbolTable_Namespace__Extended)(_type_guard(i0, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 35040)))), &_td_OOC_SymbolTable_Namespace__ExtendedDesc, 35040)), (OOC_SymbolTable_Namespace__Namespace)(_type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 35099)))), &_td_OOC_SymbolTable_Namespace__NamespaceDesc, 35099)));
      goto l177;
l60:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 34532))+44);
      type = (OOC_SymbolTable__Type)i1;
      i2 = !(OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 34567)))), &_td_OOC_SymbolTable__TypeNameDesc));
      if (i2) goto l63;
      i1=0u;
      goto l65;
l63:
      i2 = *(OOC_UINT8*)((_check_pointer(i0, 34638))+40);
      i1 = OOC_SymbolTable_TypeRules__IsValidArrayElementType((OOC_SymbolTable__Type)i1, i2);
      i1 = !i1;
      
l65:
      if (!i1) goto l67;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 34708))+48);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(8, (OOC_SymbolTable__Type)i1);
l67:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 34791))+48);
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 34773))+44);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions_CheckInstance((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
      goto l177;
l69:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 33990))+44);
      type = (OOC_SymbolTable__Type)i1;
      i2 = i1!=(OOC_INT32)0;
      if (i2) goto l72;
      i2=0u;
      goto l74;
l72:
      i2 = !(OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 34039)))), &_td_OOC_SymbolTable__TypeNameDesc));
      
l74:
      if (i2) goto l76;
      i1=0u;
      goto l78;
l76:
      i1 = OOC_SymbolTable_TypeRules__IsValidResultType((OOC_SymbolTable__Type)i1);
      i1 = !i1;
      
l78:
      if (!i1) goto l80;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 34149))+48);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(6, (OOC_SymbolTable__Type)i1);
l80:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 34203))+60);
      i1 = i1!=(OOC_INT32)0;
      if (!i1) goto l177;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 34257))+60);
      i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 34264)), 0);
      i = 0;
      i2 = 0<i1;
      if (!i2) goto l177;
      i2 = (OOC_INT32)errList;
      i3=0;
l85_loop:
      i4 = OOC_Error__ListDesc_NoErrors((OOC_Error__List)i2);
      if (i4) goto l88;
      i4=0u;
      goto l90;
l88:
      i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 34330))+60);
      i4 = _check_pointer(i4, 34337);
      i5 = OOC_ARRAY_LENGTH(i4, 0);
      i4 = (OOC_INT32)*(OOC_INT32*)(i4+(_check_index(i3, i5, OOC_UINT32, 34337))*4);
      i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i4, 34340))+20);
      i4 = OOC_SymbolTable_TypeRules__IsException((OOC_SymbolTable__Type)i4);
      i4 = !i4;
      
l90:
      if (!i4) goto l92;
      i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 34394))+60);
      i4 = _check_pointer(i4, 34401);
      i5 = OOC_ARRAY_LENGTH(i4, 0);
      i4 = (OOC_INT32)*(OOC_INT32*)(i4+(_check_index(i3, i5, OOC_UINT32, 34401))*4);
      i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i4, 34404))+24);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(26, (OOC_SymbolTable__Type)i4);
l92:
      i3 = i3+1;
      i = i3;
      i4 = i3<i1;
      if (i4) goto l85_loop;
      goto l177;
l100:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 33751))+40);
      type = (OOC_SymbolTable__Type)i1;
      i2 = !(OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 33783)))), &_td_OOC_SymbolTable__TypeNameDesc));
      if (i2) goto l103;
      i1=0u;
      goto l105;
l103:
      i1 = OOC_SymbolTable_TypeRules__IsValidPointerBaseType((OOC_SymbolTable__Type)i1);
      i1 = !i1;
      
l105:
      if (!i1) goto l177;
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 33890))+44);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(7, (OOC_SymbolTable__Type)i0);
      goto l177;
l109:
      i1 = OOC_SymbolTable__ProcDeclDesc_IsTypeBound((OOC_SymbolTable__ProcDecl)i0);
      if (!i1) goto l177;
      i1 = (OOC_INT32)OOC_SymbolTable__ProcDeclDesc_Class((OOC_SymbolTable__ProcDecl)i0);
      record = (OOC_SymbolTable__Record)i1;
      i2 = i1!=(OOC_INT32)0;
      if (i2) goto l114;
      i3=0u;
      goto l116;
l114:
      i3 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 33227)))), OOC_SymbolTable__ItemDesc_Module)),OOC_SymbolTable__ItemDesc_Module)((OOC_SymbolTable__Item)i1);
      i4 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 33243)))), OOC_SymbolTable__ItemDesc_Module)),OOC_SymbolTable__ItemDesc_Module)((OOC_SymbolTable__Item)i0);
      i3 = i3!=i4;
      
l116:
      if (i3) goto l130;
      i3 = *(OOC_UINT8*)((_check_pointer(i0, 33344))+50);
      if (!i3) goto l177;
      if (i2) goto l121;
      i1=0u;
      goto l123;
l121:
      i1 = *(OOC_UINT8*)((_check_pointer(i1, 33402))+57);
      i1 = !i1;
      
l123:
      if (!i1) goto l125;
      i1 = (OOC_INT32)errList;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrDecl(22, (OOC_SymbolTable__Declaration)i0, (OOC_Error__List)i1);
l125:
      i1 = *(OOC_INT8*)((_check_pointer(i0, 33531))+28);
      i1 = i1==0;
      if (!i1) goto l177;
      i1 = (OOC_INT32)errList;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrDecl(23, (OOC_SymbolTable__Declaration)i0, (OOC_Error__List)i1);
      goto l177;
l130:
      i1 = (OOC_INT32)errList;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrDecl(35, (OOC_SymbolTable__Declaration)i0, (OOC_Error__List)i1);
      goto l177;
l134:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 33012))+52);
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 33000))+48);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions_CheckOpenArray((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
      i0 = (OOC_INT32)item;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 33067))+52);
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 33056))+48);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions_CheckInstance((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
      goto l177;
l136:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 31992))+48);
      type = (OOC_SymbolTable__Type)i1;
      i2 = *(OOC_UINT8*)((_check_pointer(i0, 32017))+56);
      if (i2) goto l139;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 32366))+52);
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 32354))+48);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions_CheckOpenArray((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
      i0 = (OOC_INT32)item;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 32423))+52);
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 32412))+48);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions_CheckInstance((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
      goto l150;
l139:
      i2 = !(OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 32058)))), &_td_OOC_SymbolTable__TypeNameDesc));
      if (i2) goto l142;
      i1=0u;
      goto l144;
l142:
      i1 = OOC_SymbolTable_TypeRules__IsValidParameterType((OOC_SymbolTable__Type)i1);
      i1 = !i1;
      
l144:
      if (!i1) goto l146;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 32163))+52);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(4, (OOC_SymbolTable__Type)i1);
l146:
      i1 = *(OOC_UINT8*)((_check_pointer(i0, 32215))+59);
      i1 = !i1;
      if (!i1) goto l150;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 32275))+52);
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 32264))+48);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions_CheckInstance((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
l150:
      i0 = (OOC_INT32)item;
      i1 = *(OOC_UINT8*)((_check_pointer(i0, 32470))+57);
      if (i1) goto l153;
      i1=0u;
      goto l155;
l153:
      i1 = (OOC_INT32)type;
      i1 = !(OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 32492)))), &_td_OOC_SymbolTable__TypeNameDesc));
      
l155:
      if (!i1) goto l177;
      i1 = (OOC_INT32)type;
      i2 = OOC_SymbolTable_TypeRules__IsValidReceiverType((OOC_SymbolTable__Type)i1);
      i2 = !i2;
      if (i2) goto l174;
      i2 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 32652)))), &_td_OOC_SymbolTable__RecordDesc);
      if (i2) goto l161;
      i2=0u;
      goto l163;
l161:
      i2 = *(OOC_UINT8*)((_check_pointer(i0, 32674))+59);
      i2 = !i2;
      
l163:
      if (i2) goto l172;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 32785)))), &_td_OOC_SymbolTable__PointerDesc);
      if (i1) goto l167;
      i1=0u;
      goto l169;
l167:
      i1 = *(OOC_UINT8*)((_check_pointer(i0, 32807))+59);
      
l169:
      if (!i1) goto l177;
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 32880))+52);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(11, (OOC_SymbolTable__Type)i0);
      goto l177;
l172:
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 32746))+52);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(10, (OOC_SymbolTable__Type)i0);
      goto l177;
l174:
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 32613))+52);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(5, (OOC_SymbolTable__Type)i0);
l177:
      i0 = (OOC_INT32)item;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 36373)))), &_td_OOC_SymbolTable__TypeDesc);
      if (i1) goto l180;
      i1=0u;
      goto l182;
l180:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer((_type_guard(i0, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 36398)))), &_td_OOC_SymbolTable__TypeDesc, 36398)), 36403))+28);
      i1 = i1!=(OOC_INT32)0;
      
l182:
      if (!i1) goto l184;
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer((_type_guard(i0, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 36458)))), &_td_OOC_SymbolTable__TypeDesc, 36458)), 36463))+28);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions_CheckTypePars((OOC_SymbolTable__TypePars)i0);
l184:
      i0 = (OOC_INT32)item;
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 36558))+8);
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT32)0;
      if (!i1) goto l193;
      i1 = (OOC_INT32)errList;
      
l187_loop:
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions((OOC_SymbolTable__Item)i0, (OOC_Error__List)i1);
      i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 36670));
      ptr = (OOC_SymbolTable__Item)i0;
      i2 = i0!=(OOC_INT32)0;
      if (i2) goto l187_loop;
l193:
      return;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_InsertTypeBoundProcs(OOC_SymbolTable__Module module, OOC_Error__List errList) {
      register OOC_INT32 i0,i1,i2,i3,i4;
      OOC_SymbolTable__Item ptr;
      OOC_SymbolTable__Record record;

      i0 = (OOC_INT32)root;
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 36977))+8);
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT32)0;
      if (!i1) goto l36;
      i1 = (OOC_INT32)errList;
      
l3_loop:
      i2 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 37035)))), &_td_OOC_SymbolTable__ProcDeclDesc);
      if (!i2) goto l31;
      i2 = OOC_SymbolTable__ProcDeclDesc_IsTypeBound((OOC_SymbolTable__ProcDecl)i0);
      if (i2) goto l8;
      i2=0u;
      goto l10;
l8:
      i2 = *(OOC_UINT8*)((_check_pointer(i0, 37090))+49);
      i2 = !i2;
      
l10:
      if (!i2) goto l31;
      i2 = (OOC_INT32)OOC_SymbolTable__ProcDeclDesc_Class((OOC_SymbolTable__ProcDecl)i0);
      record = (OOC_SymbolTable__Record)i2;
      i3 = i2!=(OOC_INT32)0;
      if (i3) goto l14;
      i3=0u;
      goto l16;
l14:
      i3 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 37185)))), OOC_SymbolTable__ItemDesc_Module)),OOC_SymbolTable__ItemDesc_Module)((OOC_SymbolTable__Item)i2);
      i4 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 37200)))), OOC_SymbolTable__ItemDesc_Module)),OOC_SymbolTable__ItemDesc_Module)((OOC_SymbolTable__Item)i0);
      i3 = i3==i4;
      
l16:
      if (!i3) goto l31;
      i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 37236))+52);
      OOC_SymbolTable_Namespace__ExtendedDesc_InsertTBProc((OOC_SymbolTable_Namespace__Extended)(_type_guard(i3, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i3, 37251)))), &_td_OOC_SymbolTable_Namespace__ExtendedDesc, 37251)), (OOC_SymbolTable__ProcDecl)i0, (OOC_Error__List)i1);
      i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 37312))+20);
      i3 = *(OOC_INT32*)(_check_pointer(i3, 37317));
      i3 = i3>=0;
      if (i3) goto l20;
      i2=0u;
      goto l26;
l20:
      i3 = *(OOC_INT8*)((_check_pointer(i0, 37389))+28);
      i3 = i3==0;
      if (i3) goto l23;
      i3 = (OOC_INT32)privateRecords;
      i2 = ADT_Dictionary__DictionaryDesc_HasKey((ADT_Dictionary__Dictionary)i3, (Object__Object)i2);
      
      goto l26;
l23:
      i2=1u;
l26:
      if (!i2) goto l31;
      *(OOC_UINT8*)((_check_pointer(i0, 37839))+51) = 1u;
l31:
      i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 37955));
      ptr = (OOC_SymbolTable__Item)i0;
      i2 = i0!=(OOC_INT32)0;
      if (i2) goto l3_loop;
l36:
      return;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveForwardDecl(OOC_SymbolTable__Item item, OOC_Error__List errList) {
      register OOC_INT32 i0,i1,i2,i3,i4;
      OOC_SymbolTable__ProcDecl forward;
      OOC_SymbolTable__Record _class;
      OOC_SymbolTable__Namespace ns;
      OOC_SymbolTable__Declaration def;
      OOC_SymbolTable__Item ptr;

      i0 = (OOC_INT32)item;
      i1 = i0!=(OOC_INT32)0;
      if (!i1) goto l45;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 38410)))), &_td_OOC_SymbolTable__ProcDeclDesc);
      if (i1) goto l5;
      i1=0u;
      goto l7;
l5:
      i1 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 38438)))), &_td_OOC_SymbolTable__ProcDeclDesc, 38438)), 38447))+49);
      
l7:
      if (!i1) goto l36;
      i1 = _type_guard(i0, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 38498)))), &_td_OOC_SymbolTable__ProcDeclDesc, 38498);
      forward = (OOC_SymbolTable__ProcDecl)i1;
      i2 = OOC_SymbolTable__ProcDeclDesc_IsTypeBound((OOC_SymbolTable__ProcDecl)i1);
      if (i2) goto l11;
      i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 38753))+4);
      i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 38753))+4);
      i2 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 38761)))), OOC_SymbolTable__ItemDesc_Namespace)),OOC_SymbolTable__ItemDesc_Namespace)((OOC_SymbolTable__Item)i3);
      ns = (OOC_SymbolTable__Namespace)i2;
      i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 38838))+20);
      i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 38821))+4);
      i2 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 38797)))), OOC_SymbolTable__NamespaceDesc_IdentifyLocal)),OOC_SymbolTable__NamespaceDesc_IdentifyLocal)((OOC_SymbolTable__Namespace)i2, (OOC_SymbolTable__Item)i4, (OOC_SymbolTable__Name)i3, 1u);
      def = (OOC_SymbolTable__Declaration)i2;
      
      goto l12;
l11:
      i2 = (OOC_INT32)OOC_SymbolTable__ProcDeclDesc_Class((OOC_SymbolTable__ProcDecl)i1);
      _class = (OOC_SymbolTable__Record)i2;
      i2 = (OOC_INT32)OOC_SymbolTable__RecordDesc_Namespace((OOC_SymbolTable__Record)i2);
      ns = (OOC_SymbolTable__Namespace)i2;
      i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 38699))+20);
      i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 38682))+4);
      i2 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 38658)))), OOC_SymbolTable__NamespaceDesc_IdentifyLocal)),OOC_SymbolTable__NamespaceDesc_IdentifyLocal)((OOC_SymbolTable__Namespace)i2, (OOC_SymbolTable__Item)i4, (OOC_SymbolTable__Name)i3, 1u);
      def = (OOC_SymbolTable__Declaration)i2;
      
l12:
      i3 = i2==(OOC_INT32)0;
      if (i3) goto l34;
      i3 = !(OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 38992)))), &_td_OOC_SymbolTable__ProcDeclDesc));
      if (i3) goto l32;
      i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 39110))+20);
      i4 = *(OOC_INT32*)((_check_pointer(i2, 39091))+24);
      i3 = *(OOC_INT32*)(_check_pointer(i3, 39116));
      i3 = i4<i3;
      if (i3) goto l27;
      i3 = *(OOC_INT32*)((_check_pointer(i2, 39296))+24);
      i4 = *(OOC_INT32*)((_check_pointer(i1, 39319))+24);
      i3 = i3<i4;
      if (i3) goto l25;
      i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer((_type_guard(i2, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 39512)))), &_td_OOC_SymbolTable__ProcDeclDesc, 39512)), 39521))+64);
      i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 39449))+64);
      i3 = OOC_SymbolTable_TypeRules__IsValidForwardDecl((OOC_SymbolTable__FormalPars)i4, (OOC_SymbolTable__FormalPars)i3);
      i3 = !i3;
      if (i3) goto l23;
      OOC_SymbolTable__ProcDeclDesc_RegisterForwardDecl((OOC_SymbolTable__ProcDecl)(_type_guard(i2, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 39636)))), &_td_OOC_SymbolTable__ProcDeclDesc, 39636)), (OOC_SymbolTable__ProcDecl)i1);
      goto l36;
l23:
      i2 = (OOC_INT32)errList;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrDecl(16, (OOC_SymbolTable__Declaration)i1, (OOC_Error__List)i2);
      goto l36;
l25:
      i2 = (OOC_INT32)errList;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrDecl(15, (OOC_SymbolTable__Declaration)i1, (OOC_Error__List)i2);
      goto l36;
l27:
      i2 = *(OOC_INT32*)((_check_pointer(i2, 39147))+24);
      i2 = i2>=0;
      if (!i2) goto l36;
      i2 = (OOC_INT32)errList;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrDecl(14, (OOC_SymbolTable__Declaration)i1, (OOC_Error__List)i2);
      goto l36;
l32:
      i2 = (OOC_INT32)errList;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrDecl(13, (OOC_SymbolTable__Declaration)i1, (OOC_Error__List)i2);
      goto l36;
l34:
      i2 = (OOC_INT32)errList;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrDecl(12, (OOC_SymbolTable__Declaration)i1, (OOC_Error__List)i2);
l36:
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 39732))+8);
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT32)0;
      if (!i1) goto l45;
      i1 = (OOC_INT32)errList;
      
l39_loop:
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveForwardDecl((OOC_SymbolTable__Item)i0, (OOC_Error__List)i1);
      i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 39841));
      ptr = (OOC_SymbolTable__Item)i0;
      i2 = i0!=(OOC_INT32)0;
      if (i2) goto l39_loop;
l45:
      return;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckExtendedRecords(OOC_SymbolTable__Item item, OOC_Error__List errList) {
      register OOC_INT32 i0,i1,i2;
      OOC_SymbolTable__Item ptr;
      auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckExtendedRecords_CheckRecord(OOC_SymbolTable__Record record);
        
        void OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckExtendedRecords_CheckRecord(OOC_SymbolTable__Record record) {
          register OOC_INT32 i0,i1,i2,i3,i4;
          OOC_SymbolTable__Type type;
          OOC_SymbolTable__Record baseRecord;
          OOC_INT32 i;
          OOC_SymbolTable__ProcDecl proc;
          auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckExtendedRecords_CheckRecord_AllocateTBProcIndices(OOC_SymbolTable__Record record);
            
            void OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckExtendedRecords_CheckRecord_AllocateTBProcIndices(OOC_SymbolTable__Record record) {
              register OOC_INT32 i0,i1,i2,i3,i4;
              OOC_SymbolTable__Item decl;
              OOC_SymbolTable_Namespace__Extended ns;
              OOC_SymbolTable__Item base;

              i0 = (OOC_INT32)root;
              i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 40856))+8);
              decl = (OOC_SymbolTable__Item)i0;
              i1 = i0!=(OOC_INT32)0;
              if (!i1) goto l34;
              i1 = (OOC_INT32)record;
              
l3_loop:
              i2 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 40923)))), &_td_OOC_SymbolTable__ProcDeclDesc);
              if (!i2) goto l29;
              i2 = OOC_SymbolTable__ProcDeclDesc_IsTypeBound((OOC_SymbolTable__ProcDecl)i0);
              if (i2) goto l8;
              i2=0u;
              goto l10;
l8:
              i2 = *(OOC_UINT8*)((_check_pointer(i0, 40984))+49);
              i2 = !i2;
              
l10:
              if (i2) goto l12;
              i2=0u;
              goto l14;
l12:
              i2 = (OOC_INT32)OOC_SymbolTable__ProcDeclDesc_Class((OOC_SymbolTable__ProcDecl)i0);
              i2 = i2==i1;
              
l14:
              if (!i2) goto l29;
              i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 41075))+52);
              i2 = _type_guard(i2, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 41089)))), &_td_OOC_SymbolTable_Namespace__ExtendedDesc, 41089);
              ns = (OOC_SymbolTable_Namespace__Extended)i2;
              i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 41122))+8);
              i3 = i3==(OOC_INT32)0;
              if (i3) goto l18;
              i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 41223))+8);
              i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 41251))+20);
              i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 41223))+8);
              i2 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i3, 41231)))), OOC_SymbolTable__NamespaceDesc_Identify)),OOC_SymbolTable__NamespaceDesc_Identify)((OOC_SymbolTable__Namespace)i2, (OOC_SymbolTable__Item)i0, (OOC_SymbolTable__Name)i4, 1u);
              base = (OOC_SymbolTable__Item)i2;
              
              goto l19;
l18:
              base = (OOC_SymbolTable__Item)(OOC_INT32)0;
              i2=(OOC_INT32)0;
l19:
              i3 = i2!=(OOC_INT32)0;
              if (i3) goto l22;
              i3=0u;
              goto l24;
l22:
              i3 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 41326)))), &_td_OOC_SymbolTable__ProcDeclDesc);
              
l24:
              if (i3) goto l26;
              OOC_SymbolTable__RecordDesc_AssignTBProcIndex((OOC_SymbolTable__Record)i1, (OOC_SymbolTable__ProcDecl)i0);
              goto l29;
l26:
              OOC_SymbolTable__ProcDeclDesc_CopyTBProcIndex((OOC_SymbolTable__ProcDecl)(_type_guard(i2, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 41375)))), &_td_OOC_SymbolTable__ProcDeclDesc, 41375)), (OOC_SymbolTable__ProcDecl)i0);
l29:
              i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 41604));
              decl = (OOC_SymbolTable__Item)i0;
              i2 = i0!=(OOC_INT32)0;
              if (i2) goto l3_loop;
l34:
              return;
              ;
            }


          i0 = (OOC_INT32)record;
          i1 = *(OOC_INT32*)((_check_pointer(i0, 41704))+48);
          i1 = i1==(-1);
          if (!i1) goto l36;
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 41749))+40);
          i1 = i1==(OOC_INT32)0;
          if (i1) goto l5;
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 41789))+40);
          i1 = OOC_SymbolTable_TypeRules__IsRecord((OOC_SymbolTable__Type)i1);
          i1 = !i1;
          
          goto l7;
l5:
          i1=1u;
l7:
          if (i1) goto l16;
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 41883))+40);
          i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 41883))+40);
          i1 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 41892)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i2);
          type = (OOC_SymbolTable__Type)i1;
          i1 = _type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 41939)))), &_td_OOC_SymbolTable__RecordDesc, 41939);
          baseRecord = (OOC_SymbolTable__Record)i1;
          OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckExtendedRecords_CheckRecord((OOC_SymbolTable__Record)i1);
          i2 = *(OOC_INT32*)((_check_pointer(i1, 42031))+48);
          *(OOC_INT32*)((_check_pointer(i0, 42004))+48) = i2;
          i2 = *(OOC_UINT8*)((_check_pointer(i0, 42067))+60);
          if (i2) goto l11;
          i2=0u;
          goto l13;
l11:
          i2 = *(OOC_UINT8*)((_check_pointer(i1, 42091))+60);
          i2 = !i2;
          
l13:
          if (!i2) goto l15;
          OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(34, (OOC_SymbolTable__Type)i0);
l15:
          i1 = *(OOC_UINT8*)((_check_pointer(i1, 42217))+60);
          *(OOC_UINT8*)((_check_pointer(i0, 42193))+60) = i1;
          goto l17;
l16:
          *(OOC_INT32*)((_check_pointer(i0, 41823))+48) = 0;
l17:
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 42260))+52);
          i2 = (OOC_INT32)uses;
          i3 = (OOC_INT32)errList;
          OOC_SymbolTable_Namespace__ExtendedDesc_CheckRestrictions((OOC_SymbolTable_Namespace__Extended)(_type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 42274)))), &_td_OOC_SymbolTable_Namespace__ExtendedDesc, 42274)), (OOC_SymbolTable__Record)i0, (OOC_SymbolTable_Uses__Uses)i2, (OOC_Error__List)i3);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckExtendedRecords_CheckRecord_AllocateTBProcIndices((OOC_SymbolTable__Record)i0);
          i0 = (OOC_INT32)errList;
          i0 = OOC_Error__ListDesc_NoErrors((OOC_Error__List)i0);
          if (i0) goto l20;
          i0=0u;
          goto l22;
l20:
          i0 = (OOC_INT32)record;
          i0 = *(OOC_UINT8*)((_check_pointer(i0, 42480))+57);
          i0 = !i0;
          
l22:
          if (!i0) goto l36;
          i0 = (OOC_INT32)record;
          i = 0;
          i1 = *(OOC_INT32*)((_check_pointer(i0, 42797))+48);
          i2 = 0<i1;
          if (!i2) goto l36;
          i2=0;
l26_loop:
          i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 42843))+52);
          i3 = (OOC_INT32)OOC_SymbolTable_Namespace__ExtendedDesc_GetTBProcByIndex((OOC_SymbolTable_Namespace__Extended)(_type_guard(i3, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i3, 42857)))), &_td_OOC_SymbolTable_Namespace__ExtendedDesc, 42857)), i2);
          proc = (OOC_SymbolTable__ProcDecl)i3;
          i4 = *(OOC_UINT8*)((_check_pointer(i3, 42910))+50);
          if (!i4) goto l29;
          OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(24, (OOC_SymbolTable__Type)i0);
          i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i3, 43097))+20);
          i4 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i4, 43102))+12);
          i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i3, 43097))+20);
          i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i3, 43102))+12);
          i4 = OOC_ARRAY_LENGTH((_check_pointer(i4, 43106)), 0);
          i3 = (OOC_INT32)Msg__GetStringPtr((void*)(_check_pointer(i3, 43106)), i4);
          i4 = (OOC_INT32)lastError;
          OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i4, 43009)))), Msg__MsgDesc_SetStringAttrib)),Msg__MsgDesc_SetStringAttrib)((Msg__Msg)i4, (OOC_CHAR8*)"name", 5, (Msg__StringPtr)i3);
l29:
          i2 = i2+1;
          i = i2;
          i3 = i2<i1;
          if (i3) goto l26_loop;
l36:
          return;
          ;
        }


      i0 = (OOC_INT32)item;
      i1 = i0!=(OOC_INT32)0;
      if (!i1) goto l14;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 43256)))), &_td_OOC_SymbolTable__RecordDesc);
      if (!i1) goto l5;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckExtendedRecords_CheckRecord((OOC_SymbolTable__Record)i0);
l5:
      i0 = (OOC_INT32)item;
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 43396))+8);
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT32)0;
      if (!i1) goto l14;
      i1 = (OOC_INT32)errList;
      
l8_loop:
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckExtendedRecords((OOC_SymbolTable__Item)i0, (OOC_Error__List)i1);
      i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 43507));
      ptr = (OOC_SymbolTable__Item)i0;
      i2 = i0!=(OOC_INT32)0;
      if (i2) goto l8_loop;
l14:
      return;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags(OOC_SymbolTable__Item item, OOC_Error__List errList) {
      register OOC_INT32 i0,i1,i2;
      OOC_SymbolTable__Type type;
      OOC_SymbolTable__Item ptr;
      auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags(OOC_SymbolTable__Item item);
      auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlagsDirect(OOC_SymbolTable__Item referrer, OOC_SymbolTable__Item item);
      auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveCallingConvention(OOC_SymbolTable__FormalPars fpars);
        
        void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags(OOC_SymbolTable__Item item) {
          register OOC_INT32 i0,i1,i2;
          OOC_SymbolTable__Flag flag;
          auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag(OOC_SymbolTable__Flag flag, OOC_INT16 code);
          auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag(OOC_CHAR8 *flagAttribute, OOC_CHAR8 newValue);
          auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetAlign(OOC_INT16 *alignAttribute, OOC_INT16 newValue);
            
            void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag(OOC_SymbolTable__Flag flag, OOC_INT16 code) {
              register OOC_INT32 i0,i1,i2;

              i0 = code;
              i1 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__createNamespaceContext;
              i0 = (OOC_INT32)OOC_Error__New((OOC_Error__Context)i1, i0);
              lastError = (Msg__Msg)i0;
              i1 = (OOC_INT32)flag;
              i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 44137))+8);
              i2 = *(OOC_INT32*)(_check_pointer(i2, 44141));
              OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 44110)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i0, (OOC_CHAR8*)"pos", 4, i2);
              i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 44195))+8);
              i2 = (OOC_INT32)lastError;
              i0 = *(OOC_INT32*)((_check_pointer(i0, 44199))+4);
              OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 44167)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i2, (OOC_CHAR8*)"line", 5, i0);
              i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 44256))+8);
              i1 = (OOC_INT32)lastError;
              i0 = *(OOC_INT32*)((_check_pointer(i0, 44260))+8);
              OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 44226)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"column", 7, i0);
              i0 = (OOC_INT32)errList;
              i1 = (OOC_INT32)lastError;
              OOC_Error__ListDesc_Append((OOC_Error__List)i0, (Msg__Msg)i1);
              return;
              ;
            }

            
            void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag(OOC_CHAR8 *flagAttribute, OOC_CHAR8 newValue) {
              register OOC_INT32 i0,i1;

              i0 = *flagAttribute;
              i1 = newValue;
              i0 = i0!=i1;
              if (i0) goto l3;
              i0 = (OOC_INT32)flag;
              OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 20);
              goto l4;
l3:
              *flagAttribute = i1;
l4:
              return;
              ;
            }

            
            void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetAlign(OOC_INT16 *alignAttribute, OOC_INT16 newValue) {
              register OOC_INT32 i0;

              i0 = *alignAttribute;
              i0 = i0==0;
              if (i0) goto l3;
              i0 = (OOC_INT32)flag;
              OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 20);
              goto l4;
l3:
              i0 = newValue;
              *alignAttribute = i0;
l4:
              return;
              ;
            }


          i0 = (OOC_INT32)item;
          i1 = (OOC_INT32)visited;
          i1 = ADT_Dictionary__DictionaryDesc_HasKey((ADT_Dictionary__Dictionary)i1, (Object__Object)i0);
          i1 = !i1;
          if (!i1) goto l137;
          i1 = (OOC_INT32)visited;
          ADT_Dictionary__DictionaryDesc_Set((ADT_Dictionary__Dictionary)i1, (Object__Object)i0, (Object__Object)(OOC_INT32)0);
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 45012))+16);
          flag = (OOC_SymbolTable__Flag)i0;
          i1 = i0!=(OOC_INT32)0;
          if (!i1) goto l137;
l5_loop:
          i1 = (OOC_INT32)item;
          i2 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 45076)))), &_td_OOC_SymbolTable__ModuleDesc);
          if (i2) goto l125;
          i2 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 45408)))), &_td_OOC_SymbolTable__ProcDeclDesc);
          if (i2) goto l118;
          i2 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 45735)))), &_td_OOC_SymbolTable__ConstDeclDesc);
          if (i2) goto l112;
          i2 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 45995)))), &_td_OOC_SymbolTable__VarDeclDesc);
          if (i2) goto l84;
          i2 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 47018)))), &_td_OOC_SymbolTable__FieldDeclDesc);
          if (i2) goto l78;
          i2 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 47278)))), &_td_OOC_SymbolTable__TypeDeclDesc);
          if (i2) goto l72;
          i2 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 47537)))), &_td_OOC_SymbolTable__RecordDesc);
          if (i2) goto l55;
          i2 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 48704)))), &_td_OOC_SymbolTable__ArrayDesc);
          if (i2) goto l38;
          i2 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 49423)))), &_td_OOC_SymbolTable__PointerDesc);
          if (i2) goto l32;
          i2 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 49672)))), &_td_OOC_SymbolTable__FormalParsDesc);
          if (i2) goto l26;
          OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
          goto l131;
l26:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 49715))+4);
          switch (i2) {
          case 9:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 49784))+57), 1u);
            goto l131;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l131;
          }
l32:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 49463))+4);
          switch (i2) {
          case 5:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 49531))+48), 1u);
            goto l131;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l131;
          }
l38:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 48742))+4);
          switch (i2) {
          case 3:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 48815))+38), 0u);
            goto l131;
          case 2:
            i2 = *(OOC_UINT8*)((_check_pointer(i1, 48901))+40);
            i2 = !i2;
            if (i2) goto l44;
            i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 48959))+44);
            i2 = OOC_SymbolTable_TypeRules__IsOpenArrayType((OOC_SymbolTable__Type)i2);
            
            goto l46;
l44:
            i2=1u;
l46:
            if (i2) goto l48;
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 49087))+41), 0u);
            goto l131;
l48:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l131;
          case 8:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 49194))+42), 1u);
            goto l131;
          case 19:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 49278))+60), 1u);
            goto l131;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l131;
          }
l55:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 47576))+4);
          switch (i2) {
          case 1:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 47645))+57), 1u);
            goto l131;
          case 3:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 47731))+38), 0u);
            goto l131;
          case 4:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 47822))+58), 0u);
            goto l131;
          case 12:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 47909))+58), 1u);
            goto l131;
          case 18:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 48003))+59), 1u);
            goto l131;
          case 17:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 48093))+60), 1u);
            goto l131;
          case 19:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 48171))+61), 1u);
            goto l131;
          case 7:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 48248))+56), 1u);
            goto l131;
          case 13:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetAlign((void*)((_check_pointer(i1, 48326))+62), 1);
            goto l131;
          case 14:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetAlign((void*)((_check_pointer(i1, 48404))+62), 2);
            goto l131;
          case 15:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetAlign((void*)((_check_pointer(i1, 48482))+62), 4);
            goto l131;
          case 16:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetAlign((void*)((_check_pointer(i1, 48560))+62), 8);
            goto l131;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l131;
          }
l72:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 47319))+4);
          switch (i2) {
          case 10:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 47390))+36), 1u);
            goto l131;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l131;
          }
l78:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 47060))+4);
          switch (i2) {
          case 10:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 47131))+36), 1u);
            goto l131;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l131;
          }
l84:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 46035))+4);
          switch (i2) {
          case 0:
            i2 = *(OOC_UINT8*)((_check_pointer(i1, 46098))+56);
            i2 = !i2;
            if (i2) goto l89;
            i2 = *(OOC_UINT8*)((_check_pointer(i1, 46137))+59);
            
            goto l91;
l89:
            i2=1u;
l91:
            if (i2) goto l97;
            i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 46178))+48);
            i2 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 46184)))), &_td_OOC_SymbolTable__ArrayDesc);
            if (i2) goto l95;
            i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 46227))+48);
            i2 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i2, 46233)))), &_td_OOC_SymbolTable__RecordDesc);
            
            goto l96;
l95:
            i2=1u;
l96:
            i2 = !i2;
            
            goto l99;
l97:
            i2=1u;
l99:
            if (i2) goto l101;
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 46479))+61), 0u);
            i0 = (OOC_INT32)item;
            *(OOC_UINT8*)((_check_pointer(i0, 46524))+62) = 1u;
            goto l131;
l101:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l131;
          case 6:
            i2 = *(OOC_UINT8*)((_check_pointer(i1, 46625))+60);
            i2 = !i2;
            if (i2) goto l106;
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 46759))+63), 1u);
            goto l131;
l106:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l131;
          case 10:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 46871))+36), 1u);
            goto l131;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l131;
          }
l112:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 45777))+4);
          switch (i2) {
          case 10:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 45848))+36), 1u);
            goto l131;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l131;
          }
l118:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 45449))+4);
          switch (i2) {
          case 1:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 45518))+50), 1u);
            goto l131;
          case 10:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 45602))+36), 1u);
            goto l131;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l131;
          }
l125:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 45115))+4);
          switch (i2) {
          case 11:
            goto l131;
          case 10:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 45261))+36), 1u);
            goto l131;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l131;
          }
l131:
          i0 = (OOC_INT32)flag;
          i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 50023));
          flag = (OOC_SymbolTable__Flag)i0;
          i1 = i0!=(OOC_INT32)0;
          if (i1) goto l5_loop;
l137:
          return;
          ;
        }

        
        void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlagsDirect(OOC_SymbolTable__Item referrer, OOC_SymbolTable__Item item) {
          register OOC_INT32 i0,i1,i2;

          i0 = (OOC_INT32)referrer;
          i0 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 50179)))), OOC_SymbolTable__ItemDesc_Module)),OOC_SymbolTable__ItemDesc_Module)((OOC_SymbolTable__Item)i0);
          i1 = (OOC_INT32)item;
          i2 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 50195)))), OOC_SymbolTable__ItemDesc_Module)),OOC_SymbolTable__ItemDesc_Module)((OOC_SymbolTable__Item)i1);
          i0 = i0==i2;
          if (!i0) goto l4;
          OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags((OOC_SymbolTable__Item)i1);
l4:
          return;
          ;
        }

        
        void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveCallingConvention(OOC_SymbolTable__FormalPars fpars) {
          register OOC_INT32 i0,i1,i2;
          OOC_SymbolTable__Item parentItem;

          i0 = (OOC_INT32)fpars;
          i1 = *(OOC_INT8*)((_check_pointer(i0, 50623))+58);
          i1 = i1==0;
          if (!i1) goto l12;
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 50691))+4);
          parentItem = (OOC_SymbolTable__Item)i1;
          i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 50728))+4);
          i2 = i2!=(OOC_INT32)0;
          if (!i2) goto l11;
l6_loop:
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 50784))+4);
          parentItem = (OOC_SymbolTable__Item)i1;
          i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 50728))+4);
          i2 = i2!=(OOC_INT32)0;
          if (i2) goto l6_loop;
l11:
          i1 = *(OOC_INT8*)((_check_pointer((_type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 50855)))), &_td_OOC_SymbolTable__ModuleDesc, 50855)), 50862))+60);
          *(OOC_INT8*)((_check_pointer(i0, 50827))+58) = i1;
l12:
          return;
          ;
        }


      i0 = (OOC_INT32)item;
      i1 = i0!=(OOC_INT32)0;
      if (!i1) goto l88;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags((OOC_SymbolTable__Item)i0);
      i0 = (OOC_INT32)item;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 51018)))), &_td_OOC_SymbolTable__PointerDesc);
      if (i1) goto l71;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 51204)))), &_td_OOC_SymbolTable__RecordDesc);
      if (i1) goto l59;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 51498)))), &_td_OOC_SymbolTable__VarDeclDesc);
      if (i1) goto l39;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 51872)))), &_td_OOC_SymbolTable__TypeDeclDesc);
      if (i1) goto l14;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 52222)))), &_td_OOC_SymbolTable__FormalParsDesc);
      if (!i1) goto l79;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveCallingConvention((OOC_SymbolTable__FormalPars)i0);
      goto l79;
l14:
      i1 = *(OOC_INT8*)((_check_pointer(i0, 51908))+28);
      i1 = i1!=0;
      if (i1) goto l17;
      i1=0u;
      goto l19;
l17:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 51963))+48);
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 51969)))), &_td_OOC_SymbolTable__RecordDesc);
      
l19:
      if (!i1) goto l79;
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 52013))+48);
      type = (OOC_SymbolTable__Type)i0;
      i1 = i0!=(OOC_INT32)0;
      if (i1) goto l23;
      i1=0u;
      goto l25;
l23:
      i1 = (OOC_INT32)privateRecords;
      i1 = ADT_Dictionary__DictionaryDesc_HasKey((ADT_Dictionary__Dictionary)i1, (Object__Object)i0);
      
l25:
      if (!i1) goto l79;
l27_loop:
      i1 = (OOC_INT32)privateRecords;
      ADT_Dictionary__DictionaryDesc_Delete((ADT_Dictionary__Dictionary)i1, (Object__Object)i0);
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer((_type_guard(i0, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 52158)))), &_td_OOC_SymbolTable__RecordDesc, 52158)), 52165))+40);
      type = (OOC_SymbolTable__Type)i0;
      i1 = i0!=(OOC_INT32)0;
      if (i1) goto l30;
      i1=0u;
      goto l32;
l30:
      i1 = (OOC_INT32)privateRecords;
      i1 = ADT_Dictionary__DictionaryDesc_HasKey((ADT_Dictionary__Dictionary)i1, (Object__Object)i0);
      
l32:
      if (i1) goto l27_loop;
      goto l79;
l39:
      i1 = *(OOC_UINT8*)((_check_pointer(i0, 51532))+56);
      if (!i1) goto l79;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 51574))+48);
      i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 51574))+48);
      i1 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 51579)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i2);
      type = (OOC_SymbolTable__Type)i1;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlagsDirect((OOC_SymbolTable__Item)i0, (OOC_SymbolTable__Item)i1);
      i0 = (OOC_INT32)type;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 51656)))), &_td_OOC_SymbolTable__RecordDesc);
      if (i1) goto l44;
      i1=0u;
      goto l46;
l44:
      i1 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 51683)))), &_td_OOC_SymbolTable__RecordDesc, 51683)), 51690))+38);
      i1 = !i1;
      
l46:
      if (i1) goto l52;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 51729)))), &_td_OOC_SymbolTable__ArrayDesc);
      if (i1) goto l50;
      i0=0u;
      goto l54;
l50:
      i0 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 51755)))), &_td_OOC_SymbolTable__ArrayDesc, 51755)), 51761))+41);
      i0 = !i0;
      
      goto l54;
l52:
      i0=1u;
l54:
      if (!i0) goto l79;
      i0 = (OOC_INT32)item;
      *(OOC_UINT8*)((_check_pointer(i0, 51799))+64) = 0u;
      goto l79;
l59:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 51238))+40);
      i1 = i1!=(OOC_INT32)0;
      if (i1) goto l62;
      i1=0u;
      goto l64;
l62:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 51273))+40);
      i1 = OOC_SymbolTable_TypeRules__IsRecord((OOC_SymbolTable__Type)i1);
      
l64:
      if (!i1) goto l79;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 51313))+40);
      i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 51313))+40);
      i1 = (OOC_INT32)OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 51322)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i2);
      type = (OOC_SymbolTable__Type)i1;
      i1 = *(OOC_UINT8*)((_check_pointer((_type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 51358)))), &_td_OOC_SymbolTable__RecordDesc, 51358)), 51365))+59);
      if (!i1) goto l79;
      *(OOC_UINT8*)((_check_pointer(i0, 51410))+59) = 1u;
      goto l79;
l71:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 51053))+40);
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 51063)))), &_td_OOC_SymbolTable__RecordDesc);
      if (i1) goto l74;
      i1=0u;
      goto l76;
l74:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 51098))+40);
      i1 = *(OOC_UINT8*)((_check_pointer((_type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 51112)))), &_td_OOC_SymbolTable__RecordDesc, 51112)), 51119))+38);
      i1 = !i1;
      
l76:
      if (!i1) goto l79;
      *(OOC_UINT8*)((_check_pointer(i0, 51155))+49) = 1u;
l79:
      i0 = (OOC_INT32)item;
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 52394))+8);
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT32)0;
      if (!i1) goto l88;
      i1 = (OOC_INT32)errList;
      
l82_loop:
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags((OOC_SymbolTable__Item)i0, (OOC_Error__List)i1);
      i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 52505));
      ptr = (OOC_SymbolTable__Item)i0;
      i2 = i0!=(OOC_INT32)0;
      if (i2) goto l82_loop;
l88:
      return;
      ;
    }

    
    OOC_INT32 OOC_SymbolTable_CreateNamespace__CreateNamespace_LinkFileSections(OOC_SymbolTable__LinkDirective ld) {
      register OOC_INT32 i0,i1;

      i0 = (OOC_INT32)ld;
      i1 = i0==(OOC_INT32)0;
      if (i1) goto l7;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 52712)))), &_td_OOC_SymbolTable__LinkFileDesc);
      if (i1) goto l5;
      i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 52825));
      i0 = OOC_SymbolTable_CreateNamespace__CreateNamespace_LinkFileSections((OOC_SymbolTable__LinkDirective)i0);
      return i0;
      goto l8;
l5:
      i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 52766));
      i0 = OOC_SymbolTable_CreateNamespace__CreateNamespace_LinkFileSections((OOC_SymbolTable__LinkDirective)i0);
      return (i0+1);
      goto l8;
l7:
      return 0;
l8:
      _failed_function(52583); return 0;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars(OOC_SymbolTable__Item item) {
      register OOC_INT32 i0,i1;
      OOC_SymbolTable__Item ptr;
      auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate(OOC_SymbolTable__Type type, OOC_SymbolTable__Type srcCodeType);
        
        void OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate(OOC_SymbolTable__Type type, OOC_SymbolTable__Type srcCodeType) {
          register OOC_INT32 i0,i1,i2,i3,i4,i5,i6;
          OOC_SymbolTable__TypeVarArray tv;
          OOC_INT32 i;
          OOC_SymbolTable__Item ptr;
          auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_MergePars(OOC_SymbolTable__Type type, OOC_SymbolTable__TypeVarArray typeVars);
          auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_Merge(OOC_SymbolTable__Type type, OOC_SymbolTable__Type baseType);
          auto void OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_MergeVarDecl(OOC_SymbolTable__Type type, OOC_SymbolTable__VarDecl varDecl);
            
            void OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_MergePars(OOC_SymbolTable__Type type, OOC_SymbolTable__TypeVarArray typeVars) {
              register OOC_INT32 i0,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10;
              OOC_SymbolTable__TypePars tp;
              OOC_SymbolTable__TypeVarArray oldVars;
              OOC_INT32 _new;
              OOC_INT32 i;
              OOC_INT32 j;
              OOC_SymbolTable__TypeVarArray tv;

              i0 = (OOC_INT32)type;
              i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 53518))+28);
              i1 = i1==(OOC_INT32)0;
              if (i1) goto l52;
              i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 53802))+28);
              i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 53811))+20);
              oldVars = (OOC_SymbolTable__TypeVarArray)i1;
              _new = 0;
              i = 0;
              i2 = (OOC_INT32)typeVars;
              i3 = OOC_ARRAY_LENGTH((_check_pointer(i2, 53897)), 0);
              i3 = 0!=i3;
              if (i3) goto l5;
              i3=0;
              goto l32;
l5:
              i3=0;i4=0;
l6_loop:
              j = 0;
              i5 = OOC_ARRAY_LENGTH((_check_pointer(i1, 53962)), 0);
              i5 = 0!=i5;
              if (i5) goto l9;
              i5=0u;
              goto l11;
l9:
              i5 = _check_pointer(i1, 53976);
              i6 = OOC_ARRAY_LENGTH(i5, 0);
              i7 = _check_pointer(i2, 53990);
              i8 = OOC_ARRAY_LENGTH(i7, 0);
              i5 = (OOC_INT32)*(OOC_INT32*)(i5+(_check_index(0, i6, OOC_UINT32, 53976))*4);
              i6 = (OOC_INT32)*(OOC_INT32*)(i7+(_check_index(i3, i8, OOC_UINT32, 53990))*4);
              i5 = i5!=i6;
              
l11:
              if (i5) goto l13;
              i5=0;
              goto l23;
l13:
              i5=0;
l14_loop:
              i5 = i5+1;
              j = i5;
              i6 = OOC_ARRAY_LENGTH((_check_pointer(i1, 53962)), 0);
              i6 = i5!=i6;
              if (i6) goto l17;
              i6=0u;
              goto l19;
l17:
              i6 = _check_pointer(i1, 53976);
              i7 = OOC_ARRAY_LENGTH(i6, 0);
              i8 = _check_pointer(i2, 53990);
              i9 = OOC_ARRAY_LENGTH(i8, 0);
              i6 = (OOC_INT32)*(OOC_INT32*)(i6+(_check_index(i5, i7, OOC_UINT32, 53976))*4);
              i7 = (OOC_INT32)*(OOC_INT32*)(i8+(_check_index(i3, i9, OOC_UINT32, 53990))*4);
              i6 = i6!=i7;
              
l19:
              if (i6) goto l14_loop;
l23:
              i6 = OOC_ARRAY_LENGTH((_check_pointer(i1, 54074)), 0);
              i5 = i5==i6;
              if (!i5) goto l27;
              i5 = _check_pointer(i2, 54140);
              i6 = OOC_ARRAY_LENGTH(i5, 0);
              i7 = _check_pointer(i2, 54157);
              i8 = OOC_ARRAY_LENGTH(i7, 0);
              i7 = (OOC_INT32)*(OOC_INT32*)(i7+(_check_index(i3, i8, OOC_UINT32, 54157))*4);
              *(OOC_INT32*)(i5+(_check_index(i4, i6, OOC_UINT32, 54140))*4) = i7;
              i4 = i4+1;
              _new = i4;
              
l27:
              i3 = i3+1;
              i = i3;
              i5 = OOC_ARRAY_LENGTH((_check_pointer(i2, 53897)), 0);
              i5 = i3!=i5;
              if (i5) goto l6_loop;
l31:
              i3=i4;
l32:
              i4 = i3!=0;
              if (!i4) goto l53;
              i4 = OOC_ARRAY_LENGTH((_check_pointer(i1, 54310)), 0);
              i4 = (OOC_INT32)RT0__NewObject(_td_OOC_SymbolTable__TypeVarArray.baseTypes[0], (i4+i3));
              tv = (OOC_SymbolTable__TypeVarArray)i4;
              i = 0;
              i5 = OOC_ARRAY_LENGTH((_check_pointer(i1, 54358)), 0);
              i6 = 0<i5;
              if (!i6) goto l42;
              i6=0;
l37_loop:
              i7 = _check_pointer(i4, 54384);
              i8 = OOC_ARRAY_LENGTH(i7, 0);
              i9 = _check_pointer(i1, 54398);
              i10 = OOC_ARRAY_LENGTH(i9, 0);
              i9 = (OOC_INT32)*(OOC_INT32*)(i9+(_check_index(i6, i10, OOC_UINT32, 54398))*4);
              *(OOC_INT32*)(i7+(_check_index(i6, i8, OOC_UINT32, 54384))*4) = i9;
              i6 = i6+1;
              i = i6;
              i7 = i6<i5;
              if (i7) goto l37_loop;
l42:
              i = 0;
              i5 = 0<i3;
              if (!i5) goto l50;
              i5=0;
l45_loop:
              i6 = _check_pointer(i4, 54477);
              i7 = OOC_ARRAY_LENGTH((_check_pointer(i1, 54489)), 0);
              i8 = OOC_ARRAY_LENGTH(i6, 0);
              i9 = _check_pointer(i2, 54506);
              i10 = OOC_ARRAY_LENGTH(i9, 0);
              i9 = (OOC_INT32)*(OOC_INT32*)(i9+(_check_index(i5, i10, OOC_UINT32, 54506))*4);
              *(OOC_INT32*)(i6+(_check_index((i7+i5), i8, OOC_UINT32, 54477))*4) = i9;
              i5 = i5+1;
              i = i5;
              i6 = i5<i3;
              if (i6) goto l45_loop;
l50:
              i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 54548))+28);
              *(OOC_INT32*)((_check_pointer(i0, 54557))+20) = i4;
              goto l53;
l52:
              i1 = (OOC_INT32)RT0__NewObject(_td_OOC_SymbolTable__TypePars.baseTypes[0]);
              tp = (OOC_SymbolTable__TypePars)i1;
              i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 53624))+4);
              OOC_SymbolTable__InitTypePars((OOC_SymbolTable__TypePars)i1, (OOC_SymbolTable__Item)i2);
              i2 = (OOC_INT32)typeVars;
              *(OOC_INT32*)((_check_pointer(i1, 53648))+20) = i2;
              OOC_TBCALL(((OOC_INT32)OOC_TBPROC_ADR(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 53685)))), OOC_SymbolTable__TypeDesc_SetTypePars)),OOC_SymbolTable__TypeDesc_SetTypePars)((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__TypePars)i1);
l53:
              return;
              ;
            }

            
            void OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_Merge(OOC_SymbolTable__Type type, OOC_SymbolTable__Type baseType) {
              register OOC_INT32 i0,i1;

              i0 = (OOC_INT32)baseType;
              i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 54713))+28);
              i1 = i1!=(OOC_INT32)0;
              if (!i1) goto l4;
              i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 54771))+28);
              i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 54780))+20);
              i1 = (OOC_INT32)type;
              OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_MergePars((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__TypeVarArray)i0);
l4:
              return;
              ;
            }

            
            void OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_MergeVarDecl(OOC_SymbolTable__Type type, OOC_SymbolTable__VarDecl varDecl) {
              register OOC_INT32 i0,i1,i2;

              i0 = (OOC_INT32)varDecl;
              i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 54948))+52);
              i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 54934))+48);
              OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Type)i1);
              i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 54992))+48);
              i1 = (OOC_INT32)type;
              OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_Merge((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
              return;
              ;
            }


          i0 = (OOC_INT32)type;
          i1 = i0!=(OOC_INT32)0;
          if (i1) goto l3;
          i1=0u;
          goto l9;
l3:
          i1 = (OOC_INT32)srcCodeType;
          i1 = i0==i1;
          if (i1) goto l6;
          i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 55102)))), &_td_OOC_SymbolTable__TypeVarDesc);
          
          goto l9;
l6:
          i1=1u;
l9:
          if (!i1) goto l74;
          i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 55275)))), &_td_OOC_SymbolTable__TypeVarDesc);
          if (i1) goto l69;
          i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 55470)))), &_td_OOC_SymbolTable__PredefTypeDesc);
          if (i1) goto l74;
          i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 55532)))), &_td_OOC_SymbolTable__PointerDesc);
          if (i1) goto l66;
          i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 55666)))), &_td_OOC_SymbolTable__FormalParsDesc);
          if (i1) goto l56;
          i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 56027)))), &_td_OOC_SymbolTable__ArrayDesc);
          if (i1) goto l54;
          i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 56168)))), &_td_OOC_SymbolTable__RecordDesc);
          if (i1) goto l38;
          i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 56689)))), &_td_OOC_SymbolTable__QualTypeDesc);
          if (i1) goto l28;
          i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 57003)))), &_td_OOC_SymbolTable__TypeNameDesc);
          if (i1) goto l74;
          _failed_with(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 56997)))), 56997);
          goto l74;
l28:
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 56820))+48);
          i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 56830)), 0);
          i = 0;
          i1 = 0<i0;
          if (!i1) goto l74;
          i1=0;
l31_loop:
          i2 = (OOC_INT32)type;
          i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 56890))+48);
          i3 = _check_pointer(i3, 56900);
          i4 = OOC_ARRAY_LENGTH(i3, 0);
          i5 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 56866))+48);
          i5 = _check_pointer(i5, 56876);
          i6 = OOC_ARRAY_LENGTH(i5, 0);
          i3 = (OOC_INT32)*(OOC_INT32*)((i3+(_check_index(i1, i4, OOC_UINT32, 56900))*8)+4);
          i4 = (OOC_INT32)*(OOC_INT32*)(i5+(_check_index(i1, i6, OOC_UINT32, 56876))*8);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate((OOC_SymbolTable__Type)i4, (OOC_SymbolTable__Type)i3);
          i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 56948))+48);
          i3 = _check_pointer(i3, 56958);
          i4 = OOC_ARRAY_LENGTH(i3, 0);
          i1 = (OOC_INT32)*(OOC_INT32*)(i3+(_check_index(i1, i4, OOC_UINT32, 56958))*8);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_Merge((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Type)i1);
          i1 = i;
          i1 = i1+1;
          i = i1;
          i2 = i1<i0;
          if (i2) goto l31_loop;
          goto l74;
l38:
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 56204))+40);
          i1 = i1!=(OOC_INT32)0;
          if (!i1) goto l41;
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 56269))+44);
          i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 56254))+40);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Type)i1);
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 56318))+40);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_Merge((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
l41:
          i0 = (OOC_INT32)type;
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 56370))+8);
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT32)0;
          if (!i1) goto l74;
l44_loop:
          i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 56439)))), &_td_OOC_SymbolTable__FieldDeclDesc);
          if (!i1) goto l47;
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 56497))+52);
          i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 56487))+48);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Type)i1);
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 56543))+48);
          i1 = (OOC_INT32)type;
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_Merge((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
l47:
          i0 = (OOC_INT32)ptr;
          i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 56642));
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT32)0;
          if (i1) goto l44_loop;
          goto l74;
l54:
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 56086))+48);
          i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 56068))+44);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Type)i1);
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 56136))+44);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_Merge((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
          goto l74;
l56:
          i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 55916))+52);
          i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 55923)), 0);
          i = 0;
          i1 = 0<i0;
          if (!i1) goto l74;
          i1=0;
l59_loop:
          i2 = (OOC_INT32)type;
          i3 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i2, 55968))+52);
          i3 = _check_pointer(i3, 55975);
          i4 = OOC_ARRAY_LENGTH(i3, 0);
          i1 = (OOC_INT32)*(OOC_INT32*)(i3+(_check_index(i1, i4, OOC_UINT32, 55975))*4);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_MergeVarDecl((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__VarDecl)i1);
          i1 = i;
          i1 = i1+1;
          i = i1;
          i2 = i1<i0;
          if (i2) goto l59_loop;
          goto l74;
l66:
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 55590))+44);
          i2 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 55575))+40);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Type)i1);
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 55637))+40);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_Merge((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
          goto l74;
l69:
          i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 55312))+28);
          i1 = i1==(OOC_INT32)0;
          if (!i1) goto l74;
          i1 = (OOC_INT32)RT0__NewObject(_td_OOC_SymbolTable__TypeVarArray.baseTypes[0], 1);
          tv = (OOC_SymbolTable__TypeVarArray)i1;
          i2 = _check_pointer(i1, 55376);
          i3 = OOC_ARRAY_LENGTH(i2, 0);
          *(OOC_INT32*)(i2+(_check_index(0, i3, OOC_UINT8, 55376))*4) = i0;
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_MergePars((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__TypeVarArray)i1);
l74:
          return;
          ;
        }


      i0 = (OOC_INT32)item;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 57125)))), &_td_OOC_SymbolTable__TypeDeclDesc);
      if (i1) goto l9;
      i1 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i0, 57203)))), &_td_OOC_SymbolTable__ProcDeclDesc);
      if (!i1) goto l10;
      i1 = OOC_SymbolTable__ProcDeclDesc_IsTypeBound((OOC_SymbolTable__ProcDecl)i0);
      if (!i1) goto l10;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 57297))+64);
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 57280))+64);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
      goto l10;
l9:
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 57176))+52);
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 57165))+48);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
l10:
      i0 = (OOC_INT32)item;
      i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 57425))+8);
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT32)0;
      if (!i1) goto l18;
l13_loop:
      OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars((OOC_SymbolTable__Item)i0);
      i0 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i0, 57516));
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT32)0;
      if (i1) goto l13_loop;
l18:
      return;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_PatchQualType(OOC_SymbolTable__QualType qualType) {
      register OOC_INT32 i0,i1,i2,i3,i4,i5,i6,i7;
      OOC_SymbolTable__TypeVarArray params;
      OOC_INT32 i;

      i0 = (OOC_INT32)qualType;
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 57711))+40);
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 57720))+28);
      i1 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i1, 57729))+20);
      params = (OOC_SymbolTable__TypeVarArray)i1;
      i2 = OOC_ARRAY_LENGTH((_check_pointer(i1, 57785)), 0);
      *(OOC_INT32*)((_check_pointer(i0, 57763))+48) = ((OOC_INT32)RT0__NewObject(_td_OOC_SymbolTable__TypeRefArray.baseTypes[0], i2));
      i = 0;
      i2 = OOC_ARRAY_LENGTH((_check_pointer(i1, 57820)), 0);
      i3 = 0<i2;
      if (!i3) goto l8;
      i3 = (OOC_INT32)&_td_OOC_SymbolTable__TypeRef;
      i4=0;
l3_loop:
      i5 = _check_pointer(i1, 57881);
      i6 = OOC_ARRAY_LENGTH(i5, 0);
      i5 = (OOC_INT32)*(OOC_INT32*)(i5+(_check_index(i4, i6, OOC_UINT32, 57881))*4);
      i6 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 57860))+48);
      i6 = OOC_ARRAY_LENGTH((_check_pointer(i6, 57870)), 0);
      i6 = _check_index(i4, i6, OOC_UINT32, 57870);
      i6 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 57860))+48);
      i6 = _check_pointer(i6, 57870);
      i7 = OOC_ARRAY_LENGTH(i6, 0);
      i5 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i5, 57884))+40);
      OOC_SymbolTable__InitTypeRef((void*)(i6+(_check_index(i4, i7, OOC_UINT32, 57870))*8), (RT0__Struct)i3, (OOC_SymbolTable__Type)i5);
      i4 = i4+1;
      i = i4;
      i5 = i4<i2;
      if (i5) goto l3_loop;
l8:
      return;
      ;
    }


  i0 = (OOC_INT32)errList;
  _assert((i0!=(OOC_INT32)0), 127, 57942);
  i0 = (OOC_INT32)root;
  i1 = *(OOC_INT8*)((_check_pointer(i0, 57980))+52);
  switch (i1) {
  case 3:
  case 2:
    i0 = (OOC_INT32)*(OOC_INT32*)((_check_pointer(i0, 58059))+64);
    i0 = OOC_SymbolTable_CreateNamespace__CreateNamespace_LinkFileSections((OOC_SymbolTable__LinkDirective)i0);
    i0 = i0>1;
    if (!i0) goto l7;
    i0 = (OOC_INT32)errList;
    i1 = (OOC_INT32)root;
    OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrDecl(25, (OOC_SymbolTable__Declaration)i1, (OOC_Error__List)i0);
    goto l7;
  default:
    goto l7;
  }
l7:
  i0 = (OOC_INT32)uses;
  i1 = (OOC_INT32)root;
  i2 = i0!=(OOC_INT32)0;
  if (!i2) goto l10;
  i2 = (OOC_INT32)errList;
  OOC_SymbolTable_Uses__UsesDesc_StartModule((OOC_SymbolTable_Uses__Uses)i0, (OOC_SymbolTable__Module)i1, (OOC_Error__List)i2);
l10:
  OOC_SymbolTable_CreateNamespace__CreateNamespace_ImportAllModules((OOC_SymbolTable__Module)i1);
  i0 = (OOC_INT32)errList;
  i0 = OOC_Error__ListDesc_NoErrors((OOC_Error__List)i0);
  i0 = !i0;
  if (!i0) goto l13;
  return;
l13:
  i0 = (OOC_INT32)ADT_Dictionary__New();
  privateRecords = (ADT_Dictionary__Dictionary)i0;
  i0 = (OOC_INT32)root;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace((OOC_SymbolTable__Item)i0);
  i0 = (OOC_INT32)errList;
  i1 = (OOC_INT32)root;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckLocalUniqueness((OOC_SymbolTable__Item)i1, (OOC_Error__List)i0);
  i0 = (OOC_INT32)OOC_SymbolTable_CreateNamespace__predefModule;
  i1 = (OOC_INT32)errList;
  i2 = (OOC_INT32)root;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_ConnectNamespaces((OOC_SymbolTable__Item)i2, (OOC_SymbolTable__Module)i0, (OOC_Error__List)i1);
  i0 = (OOC_INT32)ADT_ArrayList__New(4);
  unpatchedQualTypes = (ADT_ArrayList__ArrayList)i0;
  i1 = (OOC_INT32)errList;
  i2 = (OOC_INT32)root;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames((OOC_SymbolTable__Item)i2, (OOC_SymbolTable__Item)(OOC_INT32)0, (ADT_ArrayList__ArrayList)i0, (OOC_Error__List)i1);
  i0 = (OOC_INT32)unpatchedQualTypes;
  i = 0;
  i0 = *(OOC_INT32*)((_check_pointer(i0, 60185))+4);
  i1 = 0<i0;
  if (!i1) goto l21;
  i1=0;
l16_loop:
  i2 = (OOC_INT32)unpatchedQualTypes;
  i2 = (OOC_INT32)*(OOC_INT32*)(_check_pointer(i2, 60234));
  i2 = _check_pointer(i2, 60240);
  i3 = OOC_ARRAY_LENGTH(i2, 0);
  i1 = (OOC_INT32)*(OOC_INT32*)(i2+(_check_index(i1, i3, OOC_UINT32, 60240))*4);
  OOC_SymbolTable_CreateNamespace__CreateNamespace_PatchQualType((OOC_SymbolTable__QualType)(_type_guard(i1, ((OOC_INT32)OOC_TYPE_TAG((_check_pointer(i1, 60248)))), &_td_OOC_SymbolTable__QualTypeDesc, 60248)));
  i1 = i;
  i1 = i1+1;
  i = i1;
  i2 = i1<i0;
  if (i2) goto l16_loop;
l21:
  i0 = (OOC_INT32)ADT_Dictionary__New();
  visited = (ADT_Dictionary__Dictionary)i0;
  i0 = (OOC_INT32)errList;
  i1 = (OOC_INT32)root;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags((OOC_SymbolTable__Item)i1, (OOC_Error__List)i0);
  i0 = (OOC_INT32)errList;
  i1 = (OOC_INT32)root;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions((OOC_SymbolTable__Item)i1, (OOC_Error__List)i0);
  i0 = (OOC_INT32)errList;
  i1 = (OOC_INT32)root;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_InsertTypeBoundProcs((OOC_SymbolTable__Module)i1, (OOC_Error__List)i0);
  i0 = (OOC_INT32)errList;
  i1 = OOC_Error__ListDesc_NoErrors((OOC_Error__List)i0);
  if (!i1) goto l24;
  i1 = (OOC_INT32)root;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveForwardDecl((OOC_SymbolTable__Item)i1, (OOC_Error__List)i0);
l24:
  i0 = (OOC_INT32)root;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars((OOC_SymbolTable__Item)i0);
  i0 = (OOC_INT32)errList;
  i1 = OOC_Error__ListDesc_NoErrors((OOC_Error__List)i0);
  if (!i1) goto l27;
  i1 = (OOC_INT32)root;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckExtendedRecords((OOC_SymbolTable__Item)i1, (OOC_Error__List)i0);
l27:
  i0 = (OOC_INT32)errList;
  i1 = (OOC_INT32)root;
  OOC_Doc_ResolveRef__Resolve((OOC_SymbolTable__Module)i1, (OOC_Error__List)i0);
  i2 = (OOC_INT32)uses;
  i3 = i2!=(OOC_INT32)0;
  if (i3) goto l30;
  i0=0u;
  goto l32;
l30:
  i0 = OOC_Error__ListDesc_NoErrors((OOC_Error__List)i0);
  
l32:
  if (!i0) goto l34;
  OOC_SymbolTable_Uses__UsesDesc_RegisterSymTab((OOC_SymbolTable_Uses__Uses)i2, (OOC_SymbolTable__Module)i1);
l34:
  return;
  ;
}

void OOC_SymbolTable_CreateNamespace__Init(void) {
  register OOC_INT32 i0,i1,i2;
  volatile OOC_SymbolTable_Builder__Builder stb;
  volatile OOC_SymbolTable__Module predef;
  volatile OOC_SymbolTable__Module system;
  jmp_buf _target0;
  Exception__Context _context0;

  OOC_SymbolTable_CreateNamespace__predefModule = (OOC_SymbolTable__Module)(OOC_INT32)0;
  OOC_SymbolTable_CreateNamespace__systemModule = (OOC_SymbolTable__Module)(OOC_INT32)0;
  i0 = (OOC_INT32)OOC_SymbolTable_Builder__New();
  stb = (OOC_SymbolTable_Builder__Builder)i0;
  i1 = (OOC_INT32)OOC_SymbolTable_Predef__CreatePredef((OOC_SymbolTable_Builder__Builder)i0, (void*)(OOC_INT32)&OOC_SymbolTable_CreateNamespace__exception);
  predef = (OOC_SymbolTable__Module)i1;
  i0 = (OOC_INT32)OOC_SymbolTable_Predef__CreateSYSTEM((OOC_SymbolTable_Builder__Builder)i0);
  system = (OOC_SymbolTable__Module)i0;
  {
    Exception__PushContext(&_context0, &_target0);
    if (!setjmp(_target0)) goto l6;
    Exception__PopContext(1);
    i0 = OOC_TYPE_TEST(((OOC_INT32)OOC_TYPE_TAG(((OOC_INT32)Exception__Current()))), &_td_IO__ErrorDesc);
    if (i0) goto l5;
    Exception__ActivateContext();
l5:
    Exception__Clear();
    goto l7;
l6:
    i2 = (OOC_INT32)OOC_Error__NewList((Object__String)((OOC_INT32)_c0));
    OOC_SymbolTable_CreateNamespace__CreateNamespace((OOC_SymbolTable__Module)i1, (OOC_SymbolTable_Uses__Uses)(OOC_INT32)0, (OOC_Error__List)i2);
    i1 = (OOC_INT32)OOC_Error__NewList((Object__String)((OOC_INT32)_c1));
    OOC_SymbolTable_CreateNamespace__CreateNamespace((OOC_SymbolTable__Module)i0, (OOC_SymbolTable_Uses__Uses)(OOC_INT32)0, (OOC_Error__List)i1);
    Exception__PopContext(1);
l7:;
  }
  i0 = (OOC_INT32)predef;
  OOC_SymbolTable_CreateNamespace__predefModule = (OOC_SymbolTable__Module)i0;
  i0 = (OOC_INT32)system;
  OOC_SymbolTable_CreateNamespace__systemModule = (OOC_SymbolTable__Module)i0;
  return;
  ;
}

void OOC_OOC_SymbolTable_CreateNamespace_init(void) {
  register OOC_INT32 i0;
  _c0 = Object__NewLatin1Region((OOC_CHAR8*)"", 1, 0, 0);
  _c1 = Object__NewLatin1Region((OOC_CHAR8*)"", 1, 0, 0);

  i0 = (OOC_INT32)RT0__NewObject(_td_OOC_SymbolTable_CreateNamespace__ErrorContext.baseTypes[0]);
  OOC_SymbolTable_CreateNamespace__createNamespaceContext = (OOC_SymbolTable_CreateNamespace__ErrorContext)i0;
  OOC_Error__InitContext((OOC_Error__Context)i0, (OOC_CHAR8*)"OOC:SymbolTable:CreateNamespace", 32);
  OOC_SymbolTable_CreateNamespace__Init();
  return;
  ;
}

void OOC_OOC_SymbolTable_CreateNamespace_destroy(void) {
}

/* --- */
