#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_INT64 i0,i1;
  OOC_CHAR16 t[128];

  i0 = (OOC_INT64)msg;
  i1 = *(OOC_INT32*)((_check_pointer(i0, 2695))+16);
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  case 21:
    _copy_16((const void*)((OOC_CHAR16[]){67,97,110,110,111,116,32,99,114,101,97,116,101,32,97,110,32,105,110,115,116,97,110,99,101,32,97,110,32,97,98,115,116,114,97,99,116,32,116,121,112,101,0}),(void*)(OOC_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  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_INT64)t,128);
    goto l36;
  default:
    _failed_case(i1, 2687);
    goto l36;
  }
l36:
  i1 = (OOC_INT64)context;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 5261)))), OOC_Error__ContextDesc_BaseTemplate)),OOC_Error__ContextDesc_BaseTemplate)((OOC_Error__Context)i1, (Msg__Msg)i0, (void*)(OOC_INT64)t, 128, (void*)(OOC_INT64)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_INT64 i0,i1,i2,i3,i4,i5;
  OOC_SymbolTable__Declaration m;

  i0 = (OOC_INT64)ns;
  i1 = (OOC_INT64)contextOfUse;
  i2 = (OOC_INT64)module;
  i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5558)))), 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_INT64)uses;
  i5 = i3==(OOC_INT64)0;
  if (i5) goto l3;
  i5 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 5622)))), &_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_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 5721)))), &_td_OOC_SymbolTable__ImportDesc, 5721)), 5728))+96);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5743))+88);
  ns = (OOC_SymbolTable__Namespace)i0;
  
  goto l8;
l7:
  return (OOC_SymbolTable__Declaration)(OOC_INT64)0;
  
l8:
  i2 = (OOC_INT64)ident;
  i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5771)))), 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_INT64 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_INT64 i0,i1,i2;
      OOC_INT32 i;

      i0 = (OOC_INT64)pos;
      i1 = *(OOC_INT32*)(_check_pointer(i0, 7047));
      i = i1;
      i2 = i1<0;
      if (!i2) goto l4;
      i = 0;
      i1=0;
l4:
      i2 = (OOC_INT64)err;
      OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 7111)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i2, "pos", 4, i1);
      i1 = *(OOC_INT32*)((_check_pointer(i0, 7174))+4);
      OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 7147)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i2, "line", 5, i1);
      i0 = *(OOC_INT32*)((_check_pointer(i0, 7221))+8);
      OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 7192)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i2, "column", 7, i0);
      return;
      ;
    }

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

      i0 = code;
      i1 = i0==1;
      if (i1) goto l3;
      i1 = (OOC_INT64)tname;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 7674))+40);
      
      goto l4;
l3:
      i1 = (OOC_INT64)tname;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 7635))+80);
      
l4:
      i2 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__createNamespaceContext;
      i0 = (OOC_INT64)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_INT64)errList;
      i1 = (OOC_INT64)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_INT64 i0,i1;

      i0 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__createNamespaceContext;
      i1 = code;
      i0 = (OOC_INT64)OOC_Error__New((OOC_Error__Context)i0, i1);
      lastError = (Msg__Msg)i0;
      i1 = (OOC_INT64)type;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 7998))+40);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_SetErrPos((Msg__Msg)i0, (OOC_SymbolTable__Position)i1);
      i0 = (OOC_INT64)errList;
      i1 = (OOC_INT64)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_INT64 i0,i1;

      i0 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__createNamespaceContext;
      i1 = code;
      i0 = (OOC_INT64)OOC_Error__New((OOC_Error__Context)i0, i1);
      lastError = (Msg__Msg)i0;
      i1 = (OOC_INT64)decl;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 8250))+40);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_SetErrPos((Msg__Msg)i0, (OOC_SymbolTable__Position)i1);
      i0 = (OOC_INT64)errList;
      i1 = (OOC_INT64)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_INT64 i0,i1,i2;
      OOC_SymbolTable__Item ptr;

      i0 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__systemModule;
      i1 = (OOC_INT64)root;
      i2 = (OOC_INT64)errList;
      OOC_SymbolTable_ImportModules__ImportModules((OOC_SymbolTable__Module)i0, (OOC_SymbolTable__Module)i1, (OOC_Error__List)i2);
      i0 = (OOC_INT64)errList;
      i0 = OOC_Error__ListDesc_NoErrors((OOC_Error__List)i0);
      if (!i0) goto l17;
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 8533))+16);
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT64)0;
      if (!i1) goto l17;
l5_loop:
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 8595)))), &_td_OOC_SymbolTable__ImportDesc);
      if (!i1) goto l11;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8630))+96);
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 8646))+88);
      i1 = i1==(OOC_INT64)0;
      if (!i1) goto l11;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8883))+96);
      i2 = (OOC_INT64)errList;
      OOC_SymbolTable_CreateNamespace__CreateNamespace((OOC_SymbolTable__Module)i1, (OOC_SymbolTable_Uses__Uses)(OOC_INT64)0, (OOC_Error__List)i2);
l11:
      i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 8982));
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT64)0;
      if (i1) goto l5_loop;
l17:
      return;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace(OOC_SymbolTable__Item item) {
      register OOC_INT64 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_INT64 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_INT64 i0,i1;

              i0 = (OOC_INT64)x;
              i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 9988)))), &_td_OOC_SymbolTable__ProcDeclDesc);
              if (i1) goto l19;
              i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10077)))), &_td_OOC_SymbolTable__TypeDeclDesc);
              if (i1) goto l13;
              i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10460)))), &_td_OOC_SymbolTable__VarDeclDesc);
              if (i1) goto l7;
              return (OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10726)))), &_td_OOC_SymbolTable__DeclarationDesc));
              goto l24;
l7:
              i0 = *(OOC_UINT8*)((_check_pointer(i0, 10646))+104);
              i0 = !i0;
              if (i0) goto l10;
              i0 = (OOC_INT64)item;
              i0 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10669)))), &_td_OOC_SymbolTable__FormalParsDesc));
              
              goto l11;
l10:
              i0=1u;
l11:
              return i0;
              goto l24;
l13:
              i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 10112))+88);
              i0 = i0==(OOC_INT64)0;
              if (i0) goto l16;
              return 1u;
              goto l24;
l16:
              i0 = (OOC_INT64)item;
              return (OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10366)))), &_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, 10047))+89);
              
              goto l23;
l22:
              i0=1u;
l23:
              return (!i0);
l24:
              _failed_function(9920); return 0;
              ;
            }

            
            void OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble_Quicksort(OOC_SymbolTable__DeclarationArray da, OOC_INT32 l, OOC_INT32 r) {
              register OOC_INT64 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_INT64)da;
              i4 = _check_pointer(i3, 11048);
              i5 = OOC_ARRAY_LENGTH(i4, 0);
              i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i1, i5, OOC_UINT32, 11048))*8);
              i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 11051))+40);
              i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 11057))+16);
              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, 11130);
              i7 = OOC_ARRAY_LENGTH(i6, 0);
              i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i2, i7, OOC_UINT32, 11130))*8);
              i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i6, 11133))+40);
              i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i6, 11139))+16);
              i6 = (
              _cmp8((const void*)(_check_pointer(i6, 11144)),(const void*)(_check_pointer(i4, 11150))))>=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, 11203);
              i7 = OOC_ARRAY_LENGTH(i6, 0);
              i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i5, i7, OOC_UINT32, 11203))*8);
              i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i6, 11206))+40);
              i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i6, 11212))+16);
              i6 = (
              _cmp8((const void*)(_check_pointer(i6, 11217)),(const void*)(_check_pointer(i4, 11223))))<=0;
              
              goto l18;
l16:
              i6=1u;
l18:
              if (!i6) goto l13_loop;
l21:
              i6 = i2>=i5;
              if (i6) goto l25;
              i6 = _check_pointer(i3, 11289);
              i7 = OOC_ARRAY_LENGTH(i6, 0);
              i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i2, i7, OOC_UINT32, 11289))*8);
              t = (OOC_SymbolTable__Declaration)i6;
              i7 = _check_pointer(i3, 11296);
              i8 = OOC_ARRAY_LENGTH(i7, 0);
              i9 = _check_pointer(i3, 11305);
              i10 = OOC_ARRAY_LENGTH(i9, 0);
              i9 = (OOC_INT64)*(OOC_INT64*)(i9+(_check_index(i5, i10, OOC_UINT32, 11305))*8);
              *(OOC_INT64*)(i7+(_check_index(i2, i8, OOC_UINT32, 11296))*8) = i9;
              i7 = _check_pointer(i3, 11312);
              i8 = OOC_ARRAY_LENGTH(i7, 0);
              *(OOC_INT64*)(i7+(_check_index(i5, i8, OOC_UINT32, 11312))*8) = i6;
              
              goto l3_loop;
l25:
              i4 = _check_pointer(i3, 11357);
              i5 = OOC_ARRAY_LENGTH(i4, 0);
              i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i2, i5, OOC_UINT32, 11357))*8);
              t = (OOC_SymbolTable__Declaration)i4;
              i5 = _check_pointer(i3, 11364);
              i6 = OOC_ARRAY_LENGTH(i5, 0);
              i7 = _check_pointer(i3, 11373);
              i8 = OOC_ARRAY_LENGTH(i7, 0);
              i7 = (OOC_INT64)*(OOC_INT64*)(i7+(_check_index(i1, i8, OOC_UINT32, 11373))*8);
              *(OOC_INT64*)(i5+(_check_index(i2, i6, OOC_UINT32, 11364))*8) = i7;
              i5 = _check_pointer(i3, 11380);
              i6 = OOC_ARRAY_LENGTH(i5, 0);
              *(OOC_INT64*)(i5+(_check_index(i1, i6, OOC_UINT32, 11380))*8) = 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_INT64)item;
          i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 11601))+16);
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT64)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_INT64)ptr;
          i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 11738));
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT64)0;
          if (i1) goto l3_loop;
l11:
          i0 = (OOC_INT64)item;
          i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11781)))), &_td_OOC_SymbolTable__ProcDeclDesc);
          if (!i1) goto l25;
          i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12106)))), &_td_OOC_SymbolTable__ProcDeclDesc, 12106)), 12115))+112);
          i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 12127))+16);
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT64)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_INT64)ptr;
          i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 12274));
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT64)0;
          if (i1) goto l16_loop;
l25:
          i0 = c;
          da = (OOC_SymbolTable__DeclarationArray)((OOC_INT64)RT0__NewObject(_td_OOC_SymbolTable__DeclarationArray.baseTypes[0], i0));
          c = 0;
          i0 = (OOC_INT64)item;
          i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 12430))+16);
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT64)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_INT64)da;
          i0 = _check_pointer(i0, 12526);
          i1 = OOC_ARRAY_LENGTH(i0, 0);
          i2 = c;
          i3 = (OOC_INT64)ptr;
          *(OOC_INT64*)(i0+(_check_index(i2, i1, OOC_UINT32, 12526))*8) = (_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 12541)))), &_td_OOC_SymbolTable__DeclarationDesc, 12541));
          c = (i2+1);
l31:
          i0 = (OOC_INT64)ptr;
          i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 12610));
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT64)0;
          if (i1) goto l28_loop;
l36:
          i0 = (OOC_INT64)item;
          i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12653)))), &_td_OOC_SymbolTable__ProcDeclDesc);
          if (!i1) goto l50;
          i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12732)))), &_td_OOC_SymbolTable__ProcDeclDesc, 12732)), 12741))+112);
          i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 12753))+16);
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT64)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_INT64)da;
          i0 = _check_pointer(i0, 12855);
          i1 = OOC_ARRAY_LENGTH(i0, 0);
          i2 = c;
          i3 = (OOC_INT64)ptr;
          *(OOC_INT64*)(i0+(_check_index(i2, i1, OOC_UINT32, 12855))*8) = (_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 12870)))), &_td_OOC_SymbolTable__DeclarationDesc, 12870));
          c = (i2+1);
l44:
          i0 = (OOC_INT64)ptr;
          i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 12945));
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT64)0;
          if (i1) goto l41_loop;
l50:
          i0 = c;
          i1 = (OOC_INT64)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_INT64)da;
            i0 = (OOC_INT64)OOC_SymbolTable_Namespace__NewNested((OOC_SymbolTable__DeclarationArray)i1, i0);
            return (OOC_SymbolTable__Namespace)i0;
            goto l55;
          case 1:
            i0 = c;
            i1 = (OOC_INT64)da;
            i0 = (OOC_INT64)OOC_SymbolTable_Namespace__NewExtended((OOC_SymbolTable__DeclarationArray)i1, i0);
            return (OOC_SymbolTable__Namespace)i0;
            goto l55;
          default:
            _failed_case(i0, 13052);
            goto l55;
          }
l55:
          _failed_function(9756); return 0;
          ;
        }


      i0 = (OOC_INT64)item;
      i1 = i0!=(OOC_INT64)0;
      if (!i1) goto l30;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 13286))+16);
      ptr = (OOC_SymbolTable__Item)i1;
      i2 = i1!=(OOC_INT64)0;
      if (!i2) goto l10;
l5_loop:
      OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace((OOC_SymbolTable__Item)i1);
      i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 13385));
      ptr = (OOC_SymbolTable__Item)i1;
      i2 = i1!=(OOC_INT64)0;
      if (i2) goto l5_loop;
l10:
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13429)))), &_td_OOC_SymbolTable__ModuleDesc);
      if (i1) goto l28;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13523)))), &_td_OOC_SymbolTable__ProcDeclDesc);
      if (i1) goto l26;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13619)))), &_td_OOC_SymbolTable__RecordDesc);
      if (i1) goto l24;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13757)))), &_td_OOC_SymbolTable__TypeParsDesc);
      if (i1) goto l22;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13854)))), &_td_OOC_SymbolTable__FormalParsDesc);
      if (!i1) goto l30;
      i1 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble((OOC_SymbolTable__Item)i0, 0);
      OOC_SymbolTable__FormalParsDesc_SetNamespace((OOC_SymbolTable__FormalPars)i0, (OOC_SymbolTable__Namespace)i1);
      goto l30;
l22:
      i1 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble((OOC_SymbolTable__Item)i0, 0);
      OOC_SymbolTable__TypeParsDesc_SetNamespace((OOC_SymbolTable__TypePars)i0, (OOC_SymbolTable__Namespace)i1);
      goto l30;
l24:
      i1 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble((OOC_SymbolTable__Item)i0, 1);
      OOC_SymbolTable__RecordDesc_SetNamespace((OOC_SymbolTable__Record)i0, (OOC_SymbolTable__Namespace)i1);
      i0 = (OOC_INT64)privateRecords;
      i1 = (OOC_INT64)item;
      ADT_Dictionary__DictionaryDesc_Set((ADT_Dictionary__Dictionary)i0, (Object__Object)i1, (Object__Object)(OOC_INT64)0);
      goto l30;
l26:
      i1 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble((OOC_SymbolTable__Item)i0, 0);
      OOC_SymbolTable__ProcDeclDesc_SetNamespace((OOC_SymbolTable__ProcDecl)i0, (OOC_SymbolTable__Namespace)i1);
      goto l30;
l28:
      i1 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace_Assemble((OOC_SymbolTable__Item)i0, 0);
      OOC_SymbolTable__ModuleDesc_SetNamespace((OOC_SymbolTable__Module)i0, (OOC_SymbolTable__Namespace)i1);
l30:
      return;
      ;
    }

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

      i0 = (OOC_INT64)item;
      i1 = i0!=(OOC_INT64)0;
      if (!i1) goto l14;
      i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 14521)))), OOC_SymbolTable__ItemDesc_Namespace)),OOC_SymbolTable__ItemDesc_Namespace)((OOC_SymbolTable__Item)i0);
      ns0 = (OOC_SymbolTable__Namespace)i1;
      i2 = i1!=(OOC_INT64)0;
      if (!i2) goto l5;
      i2 = (OOC_INT64)errList;
      OOC_SymbolTable_Namespace__NamespaceDesc_CheckLocalUniqueness((OOC_SymbolTable_Namespace__Namespace)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 14588)))), &_td_OOC_SymbolTable_Namespace__NamespaceDesc, 14588)), (OOC_Error__List)i2);
l5:
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 14713))+16);
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT64)0;
      if (!i1) goto l14;
      i1 = (OOC_INT64)errList;
      
l8_loop:
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckLocalUniqueness((OOC_SymbolTable__Item)i0, (OOC_Error__List)i1);
      i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 14824));
      ptr = (OOC_SymbolTable__Item)i0;
      i2 = i0!=(OOC_INT64)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_INT64 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_INT64 i0,i1;

          i0 = (OOC_INT64)parent;
          i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15624)))), &_td_OOC_SymbolTable__ModuleDesc);
          if (i1) goto l6;
          i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15761)))), &_td_OOC_SymbolTable__ProcDeclDesc);
          if (!i1) goto l7;
          i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15844)))), &_td_OOC_SymbolTable__ProcDeclDesc, 15844)), 15853))+104);
          i1 = (OOC_INT64)ns;
          OOC_SymbolTable_Namespace__NestedDesc_SetEnclosingNamespace((OOC_SymbolTable_Namespace__Nested)i1, (OOC_SymbolTable_Namespace__Namespace)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15867)))), &_td_OOC_SymbolTable_Namespace__NamespaceDesc, 15867)));
          goto l7;
l6:
          i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15705)))), &_td_OOC_SymbolTable__ModuleDesc, 15705)), 15712))+88);
          i1 = (OOC_INT64)ns;
          OOC_SymbolTable_Namespace__NestedDesc_SetEnclosingNamespace((OOC_SymbolTable_Namespace__Nested)i1, (OOC_SymbolTable_Namespace__Namespace)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15726)))), &_td_OOC_SymbolTable_Namespace__NamespaceDesc, 15726)));
l7:
          return;
          ;
        }


      i0 = (OOC_INT64)item;
      i1 = i0!=(OOC_INT64)0;
      if (!i1) goto l37;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15981)))), &_td_OOC_SymbolTable__ModuleDesc);
      if (i1) goto l24;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16181)))), &_td_OOC_SymbolTable__ProcDeclDesc);
      if (i1) goto l22;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16328)))), &_td_OOC_SymbolTable__TypeParsDesc);
      if (i1) goto l20;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16431)))), &_td_OOC_SymbolTable__FormalParsDesc);
      if (!i1) goto l28;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16469))+8);
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 16477)))), &_td_OOC_SymbolTable__ProcDeclDesc);
      if (i1) goto l13;
      i1=0u;
      goto l15;
l13:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16514))+8);
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 16526)))), &_td_OOC_SymbolTable__ProcDeclDesc, 16526)), 16535))+112);
      i1 = i1==i0;
      
l15:
      if (i1) goto l17;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16722))+120);
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16749))+8);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ConnectNamespaces_SetEnclosingParent((OOC_SymbolTable_Namespace__Nested)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 16736)))), &_td_OOC_SymbolTable_Namespace__NestedDesc, 16736)), (OOC_SymbolTable__Item)i0);
      goto l28;
l17:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16595))+120);
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16622))+8);
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16629))+8);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ConnectNamespaces_SetEnclosingParent((OOC_SymbolTable_Namespace__Nested)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 16609)))), &_td_OOC_SymbolTable_Namespace__NestedDesc, 16609)), (OOC_SymbolTable__Item)i0);
      goto l28;
l20:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16379))+48);
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16406))+8);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ConnectNamespaces_SetEnclosingParent((OOC_SymbolTable_Namespace__Nested)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 16393)))), &_td_OOC_SymbolTable_Namespace__NestedDesc, 16393)), (OOC_SymbolTable__Item)i0);
      goto l28;
l22:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16213))+104);
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16276))+112);
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16287))+120);
      OOC_SymbolTable_Namespace__NestedDesc_SetEnclosingNamespace((OOC_SymbolTable_Namespace__Nested)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 16227)))), &_td_OOC_SymbolTable_Namespace__NestedDesc, 16227)), (OOC_SymbolTable_Namespace__Namespace)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16301)))), &_td_OOC_SymbolTable_Namespace__NamespaceDesc, 16301)));
      goto l28;
l24:
      i1 = (OOC_INT64)predefModule;
      i2 = i1!=(OOC_INT64)0;
      if (!i2) goto l28;
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16052))+88);
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 16126))+88);
      OOC_SymbolTable_Namespace__NestedDesc_SetEnclosingNamespace((OOC_SymbolTable_Namespace__Nested)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16067)))), &_td_OOC_SymbolTable_Namespace__NestedDesc, 16067)), (OOC_SymbolTable_Namespace__Namespace)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 16141)))), &_td_OOC_SymbolTable_Namespace__NamespaceDesc, 16141)));
l28:
      i0 = (OOC_INT64)item;
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16920))+16);
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT64)0;
      if (!i1) goto l37;
      i1 = (OOC_INT64)errList;
      i2 = (OOC_INT64)predefModule;
      
l31_loop:
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ConnectNamespaces((OOC_SymbolTable__Item)i0, (OOC_SymbolTable__Module)i2, (OOC_Error__List)i1);
      i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 17042));
      ptr = (OOC_SymbolTable__Item)i0;
      i3 = i0!=(OOC_INT64)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_INT64 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_INT64 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_INT64)typeName;
          i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 18843)))), &_td_OOC_SymbolTable__TypeNameDesc);
          if (i1) goto l7;
          i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 22095)))), &_td_OOC_SymbolTable__QualTypeDesc);
          if (i1) goto l5;
          return (OOC_SymbolTable__Type)i0;
          goto l78;
l5:
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 22166))+72);
          i2 = (OOC_INT64)errList;
          i3 = extendedSearch;
          i4 = (OOC_INT64)contextOfUse;
          i1 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i4, i3, 0u, (OOC_Error__List)i2);
          *(OOC_INT64*)((_check_pointer(i0, 22131))+72) = i1;
          return (OOC_SymbolTable__Type)i0;
          goto l78;
l7:
          i1 = (OOC_INT64)contextOfUse;
          i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 18889)))), OOC_SymbolTable__ItemDesc_Namespace)),OOC_SymbolTable__ItemDesc_Namespace)((OOC_SymbolTable__Item)i1);
          ns = (OOC_SymbolTable__Namespace)i2;
          i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 18926))+72);
          i3 = i3!=(OOC_INT64)0;
          if (!i3) goto l23;
          i3 = OOC_SymbolTable__TypeNameDesc_IsPredefReference((OOC_SymbolTable__TypeName)i0);
          if (i3) goto l21;
          i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 19177))+72);
          i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 19143)))), 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_INT64)*(OOC_INT64*)((_check_pointer(i0, 19239))+72);
          i5 = (OOC_INT64)uses;
          OOC_SymbolTable_Uses__Mark((OOC_SymbolTable__Declaration)i3, (OOC_SymbolTable_Uses__Uses)i5, (OOC_SymbolTable__Name)i4);
          i4 = i3==(OOC_INT64)0;
          if (i4) goto l19;
          i4 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 19393)))), &_td_OOC_SymbolTable__ImportDesc));
          if (i4) goto l17;
          i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 19538)))), &_td_OOC_SymbolTable__ImportDesc, 19538)), 19545))+96);
          i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 19561))+88);
          ns = (OOC_SymbolTable__Namespace)i2;
          _assert((i2!=(OOC_INT64)0), 127, 19583);
          
          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_INT64)OOC_SymbolTable_CreateNamespace__predefModule;
          i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 19028))+88);
          ns = (OOC_SymbolTable__Namespace)i2;
          
l23:
          i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 19705))+80);
          i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 19671)))), 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_INT64)0;
          if (i4) goto l26;
          i4=0u;
          goto l28;
l26:
          i4 = extendedSearch;
          
l28:
          if (i4) goto l30;
          i2=i3;
          goto l39;
l30:
          i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 19831))+80);
          i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 19792)))), 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_INT64)0;
          if (i4) goto l33;
          i4=0u;
          goto l35;
l33:
          i4 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 19891)))), &_td_OOC_SymbolTable__TypeParsDesc);
          
l35:
          if (i4) goto l37;
          i2=i3;
          goto l39;
l37:
          i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 20127)))), &_td_OOC_SymbolTable_Namespace__NestedDesc, 20127)), 20134))+16);
          i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 20127)))), &_td_OOC_SymbolTable_Namespace__NestedDesc, 20127)), 20134))+16);
          i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 20199))+80);
          i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 20143)))), 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_INT64)0;
          if (i3) goto l76;
          i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 20391))+72);
          i3 = i3==(OOC_INT64)0;
          if (i3) goto l44;
          i3=0u;
          goto l46;
l44:
          i3 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 20429)))), &_td_OOC_SymbolTable__TypeDeclDesc);
          
l46:
          if (i3) goto l48;
          i3=0u;
          goto l50;
l48:
          i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 20453))+8);
          i4 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__predefModule;
          i3 = i3==i4;
          
l50:
          if (!i3) goto l52;
          OOC_SymbolTable__TypeNameDesc_MarkAsPredefReference((OOC_SymbolTable__TypeName)i0);
l52:
          i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 20817))+80);
          i4 = (OOC_INT64)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_INT64)OOC_TYPE_TAG((_check_pointer(i2, 20883)))), &_td_OOC_SymbolTable__RedirectDesc);
          if (!i3) goto l59;
          i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 20952)))), OOC_SymbolTable__ItemDesc_Namespace)),OOC_SymbolTable__ItemDesc_Namespace)((OOC_SymbolTable__Item)i1);
          i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 21033))+88);
          i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 21051))+96);
          i5 = (OOC_INT64)uses;
          i2 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__ResolveQualident((OOC_SymbolTable__Namespace)i3, (OOC_SymbolTable__Item)i1, (OOC_SymbolTable_Uses__Uses)i5, (OOC_SymbolTable__Name)i4, (OOC_SymbolTable__Name)i2);
          item = (OOC_SymbolTable__Declaration)i2;
          i3 = i2==(OOC_INT64)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_INT64)OOC_TYPE_TAG((_check_pointer(i2, 21265)))), &_td_OOC_SymbolTable__TypeDeclDesc));
          if (i3) goto l74;
          i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 21528)))), &_td_OOC_SymbolTable__TypeDeclDesc, 21528)), 21537))+88);
          i2 = (OOC_INT64)errList;
          i3 = extendedSearch;
          i4 = addQualTypeDefaults;
          i0 = (OOC_INT64)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_INT64)*(OOC_INT64*)((_check_pointer(i0, 21736))+56);
          i1 = i1!=(OOC_INT64)0;
          
l66:
          if (i1) goto l68;
          i1=0u;
          goto l70;
l68:
          i1 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 21779)))), &_td_OOC_SymbolTable__TypeVarDesc));
          
l70:
          if (i1) goto l72;
          return (OOC_SymbolTable__Type)i0;
          goto l78;
l72:
          i1 = (OOC_INT64)RT0__NewObject(_td_OOC_SymbolTable__QualType.baseTypes[0]);
          qt = (OOC_SymbolTable__QualType)i1;
          i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 21871))+40);
          OOC_SymbolTable__InitQualType((OOC_SymbolTable__QualType)i1, (OOC_SymbolTable__Item)(OOC_INT64)0, (OOC_SymbolTable__Position)i2, (OOC_SymbolTable__Type)i0, (OOC_SymbolTable__TypeRefArray)(OOC_INT64)0);
          i0 = (OOC_INT64)unpatchedQualTypes;
          OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 21928)))), 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(17875); return 0;
          ;
        }

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

          c = 0;
          i0 = (OOC_INT64)item;
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 22719))+16);
          ptr = (OOC_SymbolTable__Item)i1;
          i2 = i1!=(OOC_INT64)0;
          if (i2) goto l3;
          i1=0;
          goto l21;
l3:
          i2=0;
l4_loop:
          i3 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 22780)))), &_td_OOC_SymbolTable__VarDeclDesc);
          if (i3) goto l7;
          i3=0u;
          goto l9;
l7:
          i3 = *(OOC_UINT8*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 22820)))), &_td_OOC_SymbolTable__VarDeclDesc, 22820)), 22828))+104);
          
l9:
          if (i3) goto l11;
          i3=0u;
          goto l13;
l11:
          i3 = *(OOC_UINT8*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 22865)))), &_td_OOC_SymbolTable__VarDeclDesc, 22865)), 22873))+105);
          i3 = !i3;
          
l13:
          if (!i3) goto l16;
          i2 = i2+1;
          c = i2;
          
l16:
          i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 22945));
          ptr = (OOC_SymbolTable__Item)i1;
          i3 = i1!=(OOC_INT64)0;
          if (i3) goto l4_loop;
l20:
          i1=i2;
l21:
          *(OOC_INT64*)((_check_pointer(i0, 22995))+96) = ((OOC_INT64)RT0__NewObject(_td_OOC_SymbolTable__VarDeclArray.baseTypes[0], i1));
          c = 0;
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 23043))+16);
          ptr = (OOC_SymbolTable__Item)i1;
          i2 = i1!=(OOC_INT64)0;
          if (!i2) goto l41;
          i2=0;
l24_loop:
          i3 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 23104)))), &_td_OOC_SymbolTable__VarDeclDesc);
          if (i3) goto l27;
          i3=0u;
          goto l29;
l27:
          i3 = *(OOC_UINT8*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 23143)))), &_td_OOC_SymbolTable__VarDeclDesc, 23143)), 23151))+104);
          
l29:
          if (i3) goto l31;
          i3=0u;
          goto l33;
l31:
          i3 = *(OOC_UINT8*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 23188)))), &_td_OOC_SymbolTable__VarDeclDesc, 23188)), 23196))+105);
          i3 = !i3;
          
l33:
          if (!i3) goto l36;
          i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 23229))+96);
          i3 = _check_pointer(i3, 23236);
          i4 = OOC_ARRAY_LENGTH(i3, 0);
          *(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 23236))*8) = (_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 23251)))), &_td_OOC_SymbolTable__VarDeclDesc, 23251));
          i2 = i2+1;
          c = i2;
          
l36:
          i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 23316));
          ptr = (OOC_SymbolTable__Item)i1;
          i3 = i1!=(OOC_INT64)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_INT64 i0,i1,i2,i3,i4,i5;
          OOC_SymbolTable__Record _class;
          OOC_SymbolTable__Item ptr;
          OOC_INT32 count;

          i0 = (OOC_INT64)receiver;
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 23622))+88);
          i2 = (OOC_INT64)contextOfUse;
          i3 = (OOC_INT64)errList;
          i1 = (OOC_INT64)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);
          i1 = (OOC_INT64)procDecl;
          i2 = (OOC_INT64)OOC_SymbolTable__ProcDeclDesc_Class((OOC_SymbolTable__ProcDecl)i1);
          _class = (OOC_SymbolTable__Record)i2;
          i3 = i2==(OOC_INT64)0;
          if (!i3) goto l3;
          return;
l3:
          i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 23891))+112);
          i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 23920))+56);
          i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 23891))+112);
          OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 23902)))), OOC_SymbolTable__TypeDesc_SetTypePars)),OOC_SymbolTable__TypeDesc_SetTypePars)((OOC_SymbolTable__Type)i5, (OOC_SymbolTable__TypePars)i4);
          i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 24015))+56);
          i3 = i3==(OOC_INT64)0;
          if (i3) goto l29;
          count = 0;
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24821))+112);
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24832))+16);
          ptr = (OOC_SymbolTable__Item)i1;
          i3 = i1!=(OOC_INT64)0;
          if (i3) goto l8;
          i1=0;
          goto l21;
l8:
          i3=0;
l9_loop:
          i4 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 24897)))), &_td_OOC_SymbolTable__TypeDeclDesc);
          if (!i4) goto l16;
          i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24936))+88);
          i4 = i4==(OOC_INT64)0;
          if (!i4) goto l15;
          i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 25148))+56);
          i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 25157))+40);
          i4 = _check_pointer(i4, 25164);
          i5 = OOC_ARRAY_LENGTH(i4, 0);
          i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 25164))*8);
          *(OOC_INT64*)((_check_pointer(i1, 25134))+88) = i4;
          i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25211))+88);
          *(OOC_INT64*)((_check_pointer(i1, 25192))+96) = i4;
l15:
          i3 = i3+1;
          count = i3;
          
l16:
          i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 25346));
          ptr = (OOC_SymbolTable__Item)i1;
          i4 = i1!=(OOC_INT64)0;
          if (i4) goto l9_loop;
l20:
          i1=i3;
l21:
          i3 = *(OOC_UINT8*)((_check_pointer(i0, 25407))+106);
          i3 = !i3;
          if (i3) goto l24;
          i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 25455))+56);
          i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 25464))+40);
          i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 25471)), 0);
          i1 = i1!=i3;
          
          goto l26;
l24:
          i1=1u;
l26:
          if (!i1) goto l47;
          i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 25527))+96);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(32, (OOC_SymbolTable__Type)i0);
          i0 = (OOC_INT64)lastError;
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 25595))+56);
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25604))+40);
          i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 25611)), 0);
          OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 25563)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i0, "count", 6, i1);
          goto l47;
l29:
          i2 = *(OOC_UINT8*)((_check_pointer(i0, 24058))+106);
          if (!i2) goto l47;
          i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 24130))+96);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(33, (OOC_SymbolTable__Type)i2);
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24361))+112);
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24372))+16);
          ptr = (OOC_SymbolTable__Item)i1;
          i2 = i1!=(OOC_INT64)0;
          if (!i2) goto l47;
l34_loop:
          i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 24441)))), &_td_OOC_SymbolTable__TypeDeclDesc);
          if (!i2) goto l40;
          i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24482))+88);
          i2 = i2==(OOC_INT64)0;
          if (!i2) goto l40;
          i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 24538))+88);
          *(OOC_INT64*)((_check_pointer(i1, 24521))+88) = i2;
          i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 24590))+96);
          *(OOC_INT64*)((_check_pointer(i1, 24566))+96) = i2;
l40:
          i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 24716));
          ptr = (OOC_SymbolTable__Item)i1;
          i2 = i1!=(OOC_INT64)0;
          if (i2) goto l34_loop;
l47:
          return;
          ;
        }


      i0 = (OOC_INT64)item;
      i1 = i0!=(OOC_INT64)0;
      if (!i1) goto l125;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 25730)))), &_td_OOC_SymbolTable__TypeDeclDesc);
      if (i1) goto l83;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 26258)))), &_td_OOC_SymbolTable__VarDeclDesc);
      if (i1) goto l78;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 26477)))), &_td_OOC_SymbolTable__FieldDeclDesc);
      if (i1) goto l76;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 26648)))), &_td_OOC_SymbolTable__PointerDesc);
      if (i1) goto l74;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 26832)))), &_td_OOC_SymbolTable__FormalParsDesc);
      if (i1) goto l58;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 27331)))), &_td_OOC_SymbolTable__ArrayDesc);
      if (i1) goto l56;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 27519)))), &_td_OOC_SymbolTable__RecordDesc);
      if (i1) goto l51;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 27753)))), &_td_OOC_SymbolTable__QualTypeDesc);
      if (i1) goto l41;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 28158)))), &_td_OOC_SymbolTable__TypeVarDesc);
      if (i1) goto l39;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 28431)))), &_td_OOC_SymbolTable__ModuleDesc);
      if (i1) goto l37;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 28492)))), &_td_OOC_SymbolTable__ProcDeclDesc);
      if (i1) goto l28;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 28708)))), &_td_OOC_SymbolTable__TypeParsDesc);
      if (!i1) goto l92;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 28747))+48);
      _assert((i1!=(OOC_INT64)0), 127, 28736);
      contextOfUse = (OOC_SymbolTable__Item)i0;
      goto l92;
l28:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 28528))+112);
      i1 = i1!=(OOC_INT64)0;
      if (i1) goto l31;
      i1=0u;
      goto l33;
l31:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 28554))+112);
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 28565))+72);
      i1 = i1!=(OOC_INT64)0;
      
l33:
      if (!i1) goto l35;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 28625))+112);
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 28636))+72);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_ResolveReceiver((OOC_SymbolTable__ProcDecl)i0, (OOC_SymbolTable__VarDecl)i1);
l35:
      i0 = (OOC_INT64)item;
      contextOfUse = (OOC_SymbolTable__Item)i0;
      goto l92;
l37:
      contextOfUse = (OOC_SymbolTable__Item)i0;
      goto l92;
l39:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 28217))+72);
      i2 = (OOC_INT64)errList;
      i3 = (OOC_INT64)contextOfUse;
      i1 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i3, 1u, 1u, (OOC_Error__List)i2);
      *(OOC_INT64*)((_check_pointer(i0, 28189))+72) = i1;
      goto l92;
l41:
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 27945))+88);
      i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 27955)), 0);
      i = 0;
      i1 = 0<i0;
      if (!i1) goto l92;
      i1=0;
l44_loop:
      i2 = (OOC_INT64)item;
      i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 27979))+88);
      i3 = _check_pointer(i3, 27989);
      i4 = OOC_ARRAY_LENGTH(i3, 0);
      i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 28035))+88);
      i2 = _check_pointer(i2, 28045);
      i5 = OOC_ARRAY_LENGTH(i2, 0);
      i2 = (OOC_INT64)*(OOC_INT64*)((i2+((_check_index(i1, i5, OOC_UINT32, 28045))*16))+8);
      i5 = (OOC_INT64)contextOfUse;
      i6 = (OOC_INT64)errList;
      i2 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Item)i5, 1u, 1u, (OOC_Error__List)i6);
      i5 = i;
      *(OOC_INT64*)(i3+((_check_index(i1, i4, OOC_UINT32, 27989))*16)) = i2;
      i1 = i5+1;
      i = i1;
      i2 = i1<i0;
      if (i2) goto l44_loop;
      goto l92;
l51:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 27553))+72);
      i1 = i1!=(OOC_INT64)0;
      if (!i1) goto l92;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 27624))+72);
      i2 = (OOC_INT64)errList;
      i3 = (OOC_INT64)contextOfUse;
      i1 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i3, 0u, 1u, (OOC_Error__List)i2);
      *(OOC_INT64*)((_check_pointer(i0, 27592))+72) = i1;
      goto l92;
l56:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 27396))+80);
      i2 = (OOC_INT64)errList;
      i3 = (OOC_INT64)contextOfUse;
      i1 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i3, 0u, 1u, (OOC_Error__List)i2);
      *(OOC_INT64*)((_check_pointer(i0, 27360))+80) = i1;
      goto l92;
l58:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 26870))+80);
      i1 = i1!=(OOC_INT64)0;
      if (!i1) goto l61;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 26946))+80);
      i2 = (OOC_INT64)errList;
      i3 = (OOC_INT64)contextOfUse;
      i1 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i3, 0u, 1u, (OOC_Error__List)i2);
      *(OOC_INT64*)((_check_pointer(i0, 26911))+80) = i1;
l61:
      i0 = (OOC_INT64)item;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 27076))+112);
      i1 = i1!=(OOC_INT64)0;
      if (!i1) goto l92;
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 27130))+112);
      i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 27137)), 0);
      i = 0;
      i1 = 0<i0;
      if (!i1) goto l92;
      i1=0;
l66_loop:
      i2 = (OOC_INT64)item;
      i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 27163))+112);
      i3 = _check_pointer(i3, 27170);
      i4 = OOC_ARRAY_LENGTH(i3, 0);
      i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i1, i4, OOC_UINT32, 27170))*8);
      i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 27219))+112);
      i2 = _check_pointer(i2, 27226);
      i4 = OOC_ARRAY_LENGTH(i2, 0);
      i1 = (OOC_INT64)*(OOC_INT64*)(i2+(_check_index(i1, i4, OOC_UINT32, 27226))*8);
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 27229))+40);
      i2 = (OOC_INT64)contextOfUse;
      i4 = (OOC_INT64)errList;
      i1 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i2, 0u, 0u, (OOC_Error__List)i4);
      i2 = i;
      *(OOC_INT64*)((_check_pointer(i3, 27173))+40) = i1;
      i1 = i2+1;
      i = i1;
      i2 = i1<i0;
      if (i2) goto l66_loop;
      goto l92;
l74:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 26712))+72);
      i2 = (OOC_INT64)errList;
      i3 = (OOC_INT64)contextOfUse;
      i1 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i3, 1u, 1u, (OOC_Error__List)i2);
      *(OOC_INT64*)((_check_pointer(i0, 26679))+72) = i1;
      goto l92;
l76:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 26539))+88);
      i2 = (OOC_INT64)errList;
      i3 = (OOC_INT64)contextOfUse;
      i1 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i3, 0u, 1u, (OOC_Error__List)i2);
      *(OOC_INT64*)((_check_pointer(i0, 26510))+88) = i1;
      goto l92;
l78:
      i1 = *(OOC_UINT8*)((_check_pointer(i0, 26293))+105);
      i1 = !i1;
      if (!i1) goto l92;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 26353))+88);
      i2 = (OOC_INT64)errList;
      i3 = (OOC_INT64)contextOfUse;
      i1 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i3, 0u, 1u, (OOC_Error__List)i2);
      OOC_SymbolTable__VarDeclDesc_SetType((OOC_SymbolTable__VarDecl)i0, (OOC_SymbolTable__Type)i1);
      goto l92;
l83:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 25766))+88);
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25771))+56);
      i1 = i1!=(OOC_INT64)0;
      if (i1) goto l86;
      i1=0u;
      goto l88;
l86:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 25795))+88);
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25800))+56);
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25809))+48);
      i1 = i1!=(OOC_INT64)0;
      
l88:
      if (i1) goto l90;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 26135))+88);
      i2 = (OOC_INT64)errList;
      i3 = (OOC_INT64)contextOfUse;
      i1 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Item)i3, 0u, 1u, (OOC_Error__List)i2);
      *(OOC_INT64*)((_check_pointer(i0, 26108))+88) = i1;
      goto l92;
l90:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 25853))+88);
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25858))+56);
      typePars = (OOC_SymbolTable__TypePars)i1;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 25923))+88);
      i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 25912))+88);
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25928))+56);
      i3 = (OOC_INT64)errList;
      i1 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_GetTypeByName((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Item)i1, 0u, 1u, (OOC_Error__List)i3);
      *(OOC_INT64*)((_check_pointer(i0, 25885))+88) = i1;
      i0 = (OOC_INT64)item;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 26017))+88);
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 26017))+88);
      i2 = (OOC_INT64)typePars;
      OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 26022)))), OOC_SymbolTable__TypeDesc_SetTypePars)),OOC_SymbolTable__TypeDesc_SetTypePars)((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__TypePars)i2);
l92:
      typeDeclCount = 0;
      i0 = (OOC_INT64)item;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 28949))+16);
      ptr = (OOC_SymbolTable__Item)i1;
      i2 = i1!=(OOC_INT64)0;
      if (i2) goto l95;
      i1=0;
      goto l105;
l95:
      i2 = (OOC_INT64)unpatchedQualTypes;
      i3 = (OOC_INT64)errList;
      i4 = (OOC_INT64)contextOfUse;
      i5=0;
l96_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_INT64)OOC_TYPE_TAG((_check_pointer(i1, 29088)))), &_td_OOC_SymbolTable__TypeDeclDesc);
      if (!i6) goto l100;
      i5 = i5+1;
      typeDeclCount = i5;
      
l100:
      i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 29177));
      ptr = (OOC_SymbolTable__Item)i1;
      i6 = i1!=(OOC_INT64)0;
      if (i6) goto l96_loop;
l104:
      i1=i5;
l105:
      i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 29295)))), &_td_OOC_SymbolTable__TypeParsDesc);
      if (i2) goto l111;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 29755)))), &_td_OOC_SymbolTable__FormalParsDesc);
      if (!i1) goto l125;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames_CollectFormalPars((OOC_SymbolTable__FormalPars)i0);
      goto l125;
l111:
      *(OOC_INT64*)((_check_pointer(i0, 29385))+40) = ((OOC_INT64)RT0__NewObject(_td_OOC_SymbolTable__TypeVarArray.baseTypes[0], i1));
      typeDeclCount = 0;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 29461))+16);
      ptr = (OOC_SymbolTable__Item)i1;
      i2 = i1!=(OOC_INT64)0;
      if (!i2) goto l125;
      i2=0;
l114_loop:
      i3 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 29526)))), &_td_OOC_SymbolTable__TypeDeclDesc);
      if (!i3) goto l118;
      i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 29566))+40);
      i3 = _check_pointer(i3, 29573);
      i4 = OOC_ARRAY_LENGTH(i3, 0);
      i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 29600)))), &_td_OOC_SymbolTable__TypeDeclDesc, 29600)), 29609))+88);
      *(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 29573))*8) = (_type_guard(i5, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i5, 29619)))), &_td_OOC_SymbolTable__TypeVarDesc, 29619));
      i2 = i2+1;
      typeDeclCount = i2;
      
l118:
      i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 29702));
      ptr = (OOC_SymbolTable__Item)i1;
      i3 = i1!=(OOC_INT64)0;
      if (i3) goto l114_loop;
l125:
      return;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions(OOC_SymbolTable__Item item, OOC_Error__List errList) {
      register OOC_INT64 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_INT64 i0,i1;

          i0 = (OOC_INT64)type;
          i1 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 30316)))), &_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_INT64)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_INT64 i0;

          i0 = (OOC_INT64)type;
          i0 = OOC_SymbolTable_TypeRules__VariableInstance((OOC_SymbolTable__Type)i0);
          i0 = !i0;
          if (!i0) goto l4;
          i0 = (OOC_INT64)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_INT64 i0,i1;
          OOC_SymbolTable__Item ptr;

          i0 = (OOC_INT64)typePars;
          i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 30783))+16);
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT64)0;
          if (!i1) goto l14;
l3_loop:
          i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 30844)))), &_td_OOC_SymbolTable__TypeDeclDesc);
          if (!i1) goto l9;
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 30901))+88);
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 30911)))), &_td_OOC_SymbolTable__TypeVarDesc, 30911)), 30919))+72);
          i1 = OOC_SymbolTable_TypeRules__IsValidTypeBound((OOC_SymbolTable__Type)i1);
          i1 = !i1;
          if (!i1) goto l9;
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 30975))+96);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(27, (OOC_SymbolTable__Type)i1);
l9:
          i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 31082));
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT64)0;
          if (i1) goto l3_loop;
l14:
          return;
          ;
        }


      i0 = (OOC_INT64)item;
      i1 = i0!=(OOC_INT64)0;
      if (!i1) goto l184;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 31192)))), &_td_OOC_SymbolTable__VarDeclDesc);
      if (i1) goto l130;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 32077)))), &_td_OOC_SymbolTable__FieldDeclDesc);
      if (i1) goto l128;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 32223)))), &_td_OOC_SymbolTable__ProcDeclDesc);
      if (i1) goto l109;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 32654)))), &_td_OOC_SymbolTable__PointerDesc);
      if (i1) goto l100;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 32890)))), &_td_OOC_SymbolTable__FormalParsDesc);
      if (i1) goto l69;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 33437)))), &_td_OOC_SymbolTable__ArrayDesc);
      if (i1) goto l60;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 33770)))), &_td_OOC_SymbolTable__RecordDesc);
      if (i1) goto l47;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 34342)))), &_td_OOC_SymbolTable__QualTypeDesc);
      if (!i1) goto l168;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 34386))+72);
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 34395))+56);
      typePars = (OOC_SymbolTable__TypePars)i1;
      i2 = i1==(OOC_INT64)0;
      if (i2) goto l44;
      i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 34532))+40);
      i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 34552))+88);
      i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 34539)), 0);
      i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 34562)), 0);
      i2 = i2<i3;
      if (i2) goto l42;
      i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 34709))+40);
      i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 34729))+88);
      i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 34739)), 0);
      i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 34716)), 0);
      i2 = i2>i3;
      if (i2) goto l40;
      i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 34860))+40);
      i = 0;
      i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 34867)), 0);
      i3 = 0<i2;
      if (!i3) goto l168;
      i3=0;
l27_loop:
      i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 34901))+88);
      i4 = _check_pointer(i4, 34911);
      i5 = OOC_ARRAY_LENGTH(i4, 0);
      i4 = (OOC_INT64)*(OOC_INT64*)(i4+((_check_index(i3, i5, OOC_UINT32, 34911))*16));
      type = (OOC_SymbolTable__Type)i4;
      i5 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 34944)))), &_td_OOC_SymbolTable__TypeVarDesc);
      if (!i5) goto l31;
      i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i4, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 34998)))), &_td_OOC_SymbolTable__TypeVarDesc, 34998)), 35006))+72);
      type = (OOC_SymbolTable__Type)i4;
      
l31:
      i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 35082))+40);
      i5 = _check_pointer(i5, 35089);
      i6 = OOC_ARRAY_LENGTH(i5, 0);
      i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i3, i6, OOC_UINT32, 35089))*8);
      i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 35092))+72);
      i4 = OOC_SymbolTable_TypeRules__IsExtensionOf((OOC_SymbolTable__Type)i4, (OOC_SymbolTable__Type)i5);
      i4 = !i4;
      if (!i4) goto l34;
      i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 35154))+88);
      i4 = _check_pointer(i4, 35164);
      i5 = OOC_ARRAY_LENGTH(i4, 0);
      i4 = (OOC_INT64)*(OOC_INT64*)((i4+((_check_index(i3, i5, OOC_UINT32, 35164))*16))+8);
      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 l168;
l40:
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 34788))+80);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(29, (OOC_SymbolTable__Type)i0);
      goto l168;
l42:
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 34632))+88);
      i0 = _check_pointer(i0, 34642);
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 34655))+40);
      i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 34662)), 0);
      i2 = OOC_ARRAY_LENGTH(i0, 0);
      i0 = (OOC_INT64)*(OOC_INT64*)((i0+((_check_index(i1, i2, OOC_UINT32, 34642))*16))+8);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(30, (OOC_SymbolTable__Type)i0);
      goto l168;
l44:
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 34484))+80);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(28, (OOC_SymbolTable__Type)i0);
      goto l168;
l47:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33804))+72);
      i1 = i1!=(OOC_INT64)0;
      if (!i1) goto l168;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33850))+72);
      type = (OOC_SymbolTable__Type)i1;
      i2 = OOC_SymbolTable_TypeRules__IsValidRecordBaseType((OOC_SymbolTable__Type)i1);
      if (i2) goto l56;
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 34097))+80);
      type = (OOC_SymbolTable__Type)i0;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 34138)))), &_td_OOC_SymbolTable__QualTypeDesc);
      if (!i1) goto l55;
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 34193)))), &_td_OOC_SymbolTable__QualTypeDesc, 34193)), 34202))+80);
      type = (OOC_SymbolTable__Type)i0;
      
l55:
      OOC_SymbolTable_CreateNamespace__CreateNamespace_Err(3, (OOC_SymbolTable__TypeName)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 34286)))), &_td_OOC_SymbolTable__TypeNameDesc, 34286)));
      goto l168;
l56:
      i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 33936)))), OOC_SymbolTable__ItemDesc_Namespace)),OOC_SymbolTable__ItemDesc_Namespace)((OOC_SymbolTable__Item)i1);
      ns = (OOC_SymbolTable__Namespace)i1;
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33968))+96);
      OOC_SymbolTable_Namespace__ExtendedDesc_SetBaseNamespace((OOC_SymbolTable_Namespace__Extended)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 33982)))), &_td_OOC_SymbolTable_Namespace__ExtendedDesc, 33982)), (OOC_SymbolTable_Namespace__Namespace)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 34041)))), &_td_OOC_SymbolTable_Namespace__NamespaceDesc, 34041)));
      goto l168;
l60:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33474))+80);
      type = (OOC_SymbolTable__Type)i1;
      i2 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 33509)))), &_td_OOC_SymbolTable__TypeNameDesc));
      if (i2) goto l63;
      i1=0u;
      goto l65;
l63:
      i2 = *(OOC_UINT8*)((_check_pointer(i0, 33580))+72);
      i1 = OOC_SymbolTable_TypeRules__IsValidArrayElementType((OOC_SymbolTable__Type)i1, i2);
      i1 = !i1;
      
l65:
      if (!i1) goto l67;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33650))+88);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(8, (OOC_SymbolTable__Type)i1);
l67:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33715))+80);
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33733))+88);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions_CheckInstance((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
      goto l168;
l69:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 32932))+80);
      type = (OOC_SymbolTable__Type)i1;
      i2 = i1!=(OOC_INT64)0;
      if (i2) goto l72;
      i2=0u;
      goto l74;
l72:
      i2 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 32981)))), &_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_INT64)*(OOC_INT64*)((_check_pointer(i0, 33091))+88);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(6, (OOC_SymbolTable__Type)i1);
l80:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33145))+112);
      i1 = i1!=(OOC_INT64)0;
      if (!i1) goto l168;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33199))+112);
      i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 33206)), 0);
      i = 0;
      i2 = 0<i1;
      if (!i2) goto l168;
      i2 = (OOC_INT64)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_INT64)*(OOC_INT64*)((_check_pointer(i0, 33272))+112);
      i4 = _check_pointer(i4, 33279);
      i5 = OOC_ARRAY_LENGTH(i4, 0);
      i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 33279))*8);
      i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 33282))+40);
      i4 = OOC_SymbolTable_TypeRules__IsException((OOC_SymbolTable__Type)i4);
      i4 = !i4;
      
l90:
      if (!i4) goto l92;
      i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33336))+112);
      i4 = _check_pointer(i4, 33343);
      i5 = OOC_ARRAY_LENGTH(i4, 0);
      i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 33343))*8);
      i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 33346))+48);
      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 l168;
l100:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 32693))+72);
      type = (OOC_SymbolTable__Type)i1;
      i2 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 32725)))), &_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 l168;
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 32832))+80);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(7, (OOC_SymbolTable__Type)i0);
      goto l168;
l109:
      i1 = OOC_SymbolTable__ProcDeclDesc_IsTypeBound((OOC_SymbolTable__ProcDecl)i0);
      if (i1) goto l112;
      i1=0u;
      goto l114;
l112:
      i1 = *(OOC_UINT8*)((_check_pointer(i0, 32279))+90);
      
l114:
      if (!i1) goto l168;
      i1 = (OOC_INT64)OOC_SymbolTable__ProcDeclDesc_Class((OOC_SymbolTable__ProcDecl)i0);
      record = (OOC_SymbolTable__Record)i1;
      i2 = i1!=(OOC_INT64)0;
      if (i2) goto l118;
      i1=0u;
      goto l120;
l118:
      i1 = *(OOC_UINT8*)((_check_pointer(i1, 32371))+105);
      i1 = !i1;
      
l120:
      if (!i1) goto l122;
      i1 = (OOC_INT64)errList;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrDecl(22, (OOC_SymbolTable__Declaration)i0, (OOC_Error__List)i1);
l122:
      i1 = *(OOC_INT8*)((_check_pointer(i0, 32494))+52);
      i1 = i1==0;
      if (!i1) goto l168;
      i1 = (OOC_INT64)errList;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrDecl(23, (OOC_SymbolTable__Declaration)i0, (OOC_Error__List)i1);
      goto l168;
l128:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 32126))+88);
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 32138))+96);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions_CheckOpenArray((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
      i0 = (OOC_INT64)item;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 32182))+88);
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 32193))+96);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions_CheckInstance((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
      goto l168;
l130:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31231))+88);
      type = (OOC_SymbolTable__Type)i1;
      i2 = *(OOC_UINT8*)((_check_pointer(i0, 31256))+104);
      if (i2) goto l133;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31480))+88);
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31492))+96);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions_CheckOpenArray((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
      i0 = (OOC_INT64)item;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31538))+88);
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31549))+96);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions_CheckInstance((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
      goto l141;
l133:
      i2 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 31297)))), &_td_OOC_SymbolTable__TypeNameDesc));
      if (i2) goto l136;
      i1=0u;
      goto l138;
l136:
      i1 = OOC_SymbolTable_TypeRules__IsValidParameterType((OOC_SymbolTable__Type)i1);
      i1 = !i1;
      
l138:
      if (!i1) goto l141;
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31402))+96);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(4, (OOC_SymbolTable__Type)i0);
l141:
      i0 = (OOC_INT64)item;
      i1 = *(OOC_UINT8*)((_check_pointer(i0, 31596))+105);
      if (i1) goto l144;
      i1=0u;
      goto l146;
l144:
      i1 = (OOC_INT64)type;
      i1 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 31618)))), &_td_OOC_SymbolTable__TypeNameDesc));
      
l146:
      if (!i1) goto l168;
      i1 = (OOC_INT64)type;
      i2 = OOC_SymbolTable_TypeRules__IsValidReceiverType((OOC_SymbolTable__Type)i1);
      i2 = !i2;
      if (i2) goto l165;
      i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 31778)))), &_td_OOC_SymbolTable__RecordDesc);
      if (i2) goto l152;
      i2=0u;
      goto l154;
l152:
      i2 = *(OOC_UINT8*)((_check_pointer(i0, 31800))+107);
      i2 = !i2;
      
l154:
      if (i2) goto l163;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 31911)))), &_td_OOC_SymbolTable__PointerDesc);
      if (i1) goto l158;
      i1=0u;
      goto l160;
l158:
      i1 = *(OOC_UINT8*)((_check_pointer(i0, 31933))+107);
      
l160:
      if (!i1) goto l168;
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 32006))+96);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(11, (OOC_SymbolTable__Type)i0);
      goto l168;
l163:
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31872))+96);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(10, (OOC_SymbolTable__Type)i0);
      goto l168;
l165:
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31739))+96);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(5, (OOC_SymbolTable__Type)i0);
l168:
      i0 = (OOC_INT64)item;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 35315)))), &_td_OOC_SymbolTable__TypeDesc);
      if (i1) goto l171;
      i1=0u;
      goto l173;
l171:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 35340)))), &_td_OOC_SymbolTable__TypeDesc, 35340)), 35345))+56);
      i1 = i1!=(OOC_INT64)0;
      
l173:
      if (!i1) goto l175;
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 35400)))), &_td_OOC_SymbolTable__TypeDesc, 35400)), 35405))+56);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions_CheckTypePars((OOC_SymbolTable__TypePars)i0);
l175:
      i0 = (OOC_INT64)item;
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 35500))+16);
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT64)0;
      if (!i1) goto l184;
      i1 = (OOC_INT64)errList;
      
l178_loop:
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions((OOC_SymbolTable__Item)i0, (OOC_Error__List)i1);
      i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 35612));
      ptr = (OOC_SymbolTable__Item)i0;
      i2 = i0!=(OOC_INT64)0;
      if (i2) goto l178_loop;
l184:
      return;
      ;
    }

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

      i0 = (OOC_INT64)root;
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 35919))+16);
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT64)0;
      if (!i1) goto l32;
      i1 = (OOC_INT64)errList;
      
l3_loop:
      i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 35977)))), &_td_OOC_SymbolTable__ProcDeclDesc);
      if (!i2) goto l27;
      i2 = OOC_SymbolTable__ProcDeclDesc_IsTypeBound((OOC_SymbolTable__ProcDecl)i0);
      if (i2) goto l8;
      i2=0u;
      goto l10;
l8:
      i2 = *(OOC_UINT8*)((_check_pointer(i0, 36032))+89);
      i2 = !i2;
      
l10:
      if (!i2) goto l27;
      i2 = (OOC_INT64)OOC_SymbolTable__ProcDeclDesc_Class((OOC_SymbolTable__ProcDecl)i0);
      record = (OOC_SymbolTable__Record)i2;
      i3 = i2!=(OOC_INT64)0;
      if (!i3) goto l27;
      i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 36143))+96);
      OOC_SymbolTable_Namespace__ExtendedDesc_InsertTBProc((OOC_SymbolTable_Namespace__Extended)(_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 36158)))), &_td_OOC_SymbolTable_Namespace__ExtendedDesc, 36158)), (OOC_SymbolTable__ProcDecl)i0, (OOC_Error__List)i1);
      i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 36219))+40);
      i3 = *(OOC_INT32*)(_check_pointer(i3, 36224));
      i3 = i3>=0;
      if (i3) goto l16;
      i2=0u;
      goto l22;
l16:
      i3 = *(OOC_INT8*)((_check_pointer(i0, 36296))+52);
      i3 = i3==0;
      if (i3) goto l19;
      i3 = (OOC_INT64)privateRecords;
      i2 = ADT_Dictionary__DictionaryDesc_HasKey((ADT_Dictionary__Dictionary)i3, (Object__Object)i2);
      
      goto l22;
l19:
      i2=1u;
l22:
      if (!i2) goto l27;
      *(OOC_UINT8*)((_check_pointer(i0, 36746))+91) = 1u;
l27:
      i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 36862));
      ptr = (OOC_SymbolTable__Item)i0;
      i2 = i0!=(OOC_INT64)0;
      if (i2) goto l3_loop;
l32:
      return;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveForwardDecl(OOC_SymbolTable__Item item, OOC_Error__List errList) {
      register OOC_INT64 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_INT64)item;
      i1 = i0!=(OOC_INT64)0;
      if (!i1) goto l45;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 37317)))), &_td_OOC_SymbolTable__ProcDeclDesc);
      if (i1) goto l5;
      i1=0u;
      goto l7;
l5:
      i1 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 37345)))), &_td_OOC_SymbolTable__ProcDeclDesc, 37345)), 37354))+89);
      
l7:
      if (!i1) goto l36;
      i1 = _type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 37405)))), &_td_OOC_SymbolTable__ProcDeclDesc, 37405);
      forward = (OOC_SymbolTable__ProcDecl)i1;
      i2 = OOC_SymbolTable__ProcDeclDesc_IsTypeBound((OOC_SymbolTable__ProcDecl)i1);
      if (i2) goto l11;
      i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 37660))+8);
      i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 37660))+8);
      i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 37668)))), OOC_SymbolTable__ItemDesc_Namespace)),OOC_SymbolTable__ItemDesc_Namespace)((OOC_SymbolTable__Item)i3);
      ns = (OOC_SymbolTable__Namespace)i2;
      i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 37728))+8);
      i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 37745))+40);
      i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 37704)))), OOC_SymbolTable__NamespaceDesc_IdentifyLocal)),OOC_SymbolTable__NamespaceDesc_IdentifyLocal)((OOC_SymbolTable__Namespace)i2, (OOC_SymbolTable__Item)i3, (OOC_SymbolTable__Name)i4, 1u);
      def = (OOC_SymbolTable__Declaration)i2;
      
      goto l12;
l11:
      i2 = (OOC_INT64)OOC_SymbolTable__ProcDeclDesc_Class((OOC_SymbolTable__ProcDecl)i1);
      _class = (OOC_SymbolTable__Record)i2;
      i2 = (OOC_INT64)OOC_SymbolTable__RecordDesc_Namespace((OOC_SymbolTable__Record)i2);
      ns = (OOC_SymbolTable__Namespace)i2;
      i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 37589))+8);
      i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 37606))+40);
      i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 37565)))), OOC_SymbolTable__NamespaceDesc_IdentifyLocal)),OOC_SymbolTable__NamespaceDesc_IdentifyLocal)((OOC_SymbolTable__Namespace)i2, (OOC_SymbolTable__Item)i3, (OOC_SymbolTable__Name)i4, 1u);
      def = (OOC_SymbolTable__Declaration)i2;
      
l12:
      i3 = i2==(OOC_INT64)0;
      if (i3) goto l34;
      i3 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 37899)))), &_td_OOC_SymbolTable__ProcDeclDesc));
      if (i3) goto l32;
      i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 38017))+40);
      i4 = *(OOC_INT32*)((_check_pointer(i2, 37998))+48);
      i3 = *(OOC_INT32*)(_check_pointer(i3, 38023));
      i3 = i4<i3;
      if (i3) goto l27;
      i3 = *(OOC_INT32*)((_check_pointer(i2, 38203))+48);
      i4 = *(OOC_INT32*)((_check_pointer(i1, 38226))+48);
      i3 = i3<i4;
      if (i3) goto l25;
      i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 38356))+112);
      i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 38419)))), &_td_OOC_SymbolTable__ProcDeclDesc, 38419)), 38428))+112);
      i3 = OOC_SymbolTable_TypeRules__IsValidForwardDecl((OOC_SymbolTable__FormalPars)i3, (OOC_SymbolTable__FormalPars)i4);
      i3 = !i3;
      if (i3) goto l23;
      OOC_SymbolTable__ProcDeclDesc_RegisterForwardDecl((OOC_SymbolTable__ProcDecl)(_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 38543)))), &_td_OOC_SymbolTable__ProcDeclDesc, 38543)), (OOC_SymbolTable__ProcDecl)i1);
      goto l36;
l23:
      i2 = (OOC_INT64)errList;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrDecl(16, (OOC_SymbolTable__Declaration)i1, (OOC_Error__List)i2);
      goto l36;
l25:
      i2 = (OOC_INT64)errList;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrDecl(15, (OOC_SymbolTable__Declaration)i1, (OOC_Error__List)i2);
      goto l36;
l27:
      i2 = *(OOC_INT32*)((_check_pointer(i2, 38054))+48);
      i2 = i2>=0;
      if (!i2) goto l36;
      i2 = (OOC_INT64)errList;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrDecl(14, (OOC_SymbolTable__Declaration)i1, (OOC_Error__List)i2);
      goto l36;
l32:
      i2 = (OOC_INT64)errList;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrDecl(13, (OOC_SymbolTable__Declaration)i1, (OOC_Error__List)i2);
      goto l36;
l34:
      i2 = (OOC_INT64)errList;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrDecl(12, (OOC_SymbolTable__Declaration)i1, (OOC_Error__List)i2);
l36:
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 38639))+16);
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT64)0;
      if (!i1) goto l45;
      i1 = (OOC_INT64)errList;
      
l39_loop:
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveForwardDecl((OOC_SymbolTable__Item)i0, (OOC_Error__List)i1);
      i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 38748));
      ptr = (OOC_SymbolTable__Item)i0;
      i2 = i0!=(OOC_INT64)0;
      if (i2) goto l39_loop;
l45:
      return;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckExtendedRecords(OOC_SymbolTable__Item item, OOC_Error__List errList) {
      register OOC_INT64 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_INT64 i0,i1,i2,i3,i4,i5;
          OOC_INT32 i;
          OOC_SymbolTable__ProcDecl proc;

          i0 = (OOC_INT64)record;
          i1 = *(OOC_INT32*)((_check_pointer(i0, 39266))+88);
          i1 = i1==(-1);
          if (!i1) goto l29;
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 39311))+72);
          i1 = i1==(OOC_INT64)0;
          if (i1) goto l5;
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 39354))+72);
          i1 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 39365)))), &_td_OOC_SymbolTable__RecordDesc));
          
          goto l7;
l5:
          i1=1u;
l7:
          if (i1) goto l9;
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 39468))+72);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckExtendedRecords_CheckRecord((OOC_SymbolTable__Record)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 39483)))), &_td_OOC_SymbolTable__RecordDesc, 39483)));
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 39534))+72);
          i1 = *(OOC_INT32*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 39549)))), &_td_OOC_SymbolTable__RecordDesc, 39549)), 39556))+88);
          *(OOC_INT32*)((_check_pointer(i0, 39511))+88) = i1;
          goto l10;
l9:
          *(OOC_INT32*)((_check_pointer(i0, 39403))+88) = 0;
l10:
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 39601))+96);
          i2 = (OOC_INT64)uses;
          i3 = (OOC_INT64)errList;
          OOC_SymbolTable_Namespace__ExtendedDesc_CheckRestrictions((OOC_SymbolTable_Namespace__Extended)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 39615)))), &_td_OOC_SymbolTable_Namespace__ExtendedDesc, 39615)), (OOC_SymbolTable__Record)i0, (OOC_SymbolTable_Uses__Uses)i2, (OOC_Error__List)i3);
          i1 = (OOC_INT64)errList;
          i1 = OOC_Error__ListDesc_NoErrors((OOC_Error__List)i1);
          if (i1) goto l13;
          i1=0u;
          goto l15;
l13:
          i1 = *(OOC_UINT8*)((_check_pointer(i0, 39769))+105);
          i1 = !i1;
          
l15:
          if (!i1) goto l29;
          i = 0;
          i1 = *(OOC_INT32*)((_check_pointer(i0, 40086))+88);
          i2 = 0<i1;
          if (!i2) goto l29;
          i2=0;
l19_loop:
          i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 40132))+96);
          i3 = (OOC_INT64)OOC_SymbolTable_Namespace__ExtendedDesc_GetTBProcByIndex((OOC_SymbolTable_Namespace__Extended)(_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 40146)))), &_td_OOC_SymbolTable_Namespace__ExtendedDesc, 40146)), i2);
          proc = (OOC_SymbolTable__ProcDecl)i3;
          i4 = *(OOC_UINT8*)((_check_pointer(i3, 40199))+90);
          if (!i4) goto l22;
          OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrType(24, (OOC_SymbolTable__Type)i0);
          i4 = (OOC_INT64)lastError;
          i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 40386))+40);
          i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 40391))+16);
          i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 40386))+40);
          i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 40391))+16);
          i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 40395)), 0);
          i3 = (OOC_INT64)Msg__GetStringPtr((void*)(_check_pointer(i5, 40395)), i3);
          OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 40298)))), Msg__MsgDesc_SetStringAttrib)),Msg__MsgDesc_SetStringAttrib)((Msg__Msg)i4, "name", 5, (Msg__StringPtr)i3);
l22:
          i2 = i2+1;
          i = i2;
          i3 = i2<i1;
          if (i3) goto l19_loop;
l29:
          return;
          ;
        }


      i0 = (OOC_INT64)item;
      i1 = i0!=(OOC_INT64)0;
      if (!i1) goto l14;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 40545)))), &_td_OOC_SymbolTable__RecordDesc);
      if (!i1) goto l5;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckExtendedRecords_CheckRecord((OOC_SymbolTable__Record)i0);
l5:
      i0 = (OOC_INT64)item;
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 40685))+16);
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT64)0;
      if (!i1) goto l14;
      i1 = (OOC_INT64)errList;
      
l8_loop:
      OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckExtendedRecords((OOC_SymbolTable__Item)i0, (OOC_Error__List)i1);
      i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 40796));
      ptr = (OOC_SymbolTable__Item)i0;
      i2 = i0!=(OOC_INT64)0;
      if (i2) goto l8_loop;
l14:
      return;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags(OOC_SymbolTable__Item item, OOC_Error__List errList) {
      register OOC_INT64 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_INT64 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_INT64 i0,i1,i2;

              i0 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__createNamespaceContext;
              i1 = code;
              i0 = (OOC_INT64)OOC_Error__New((OOC_Error__Context)i0, i1);
              lastError = (Msg__Msg)i0;
              i1 = (OOC_INT64)flag;
              i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 41426))+16);
              i2 = *(OOC_INT32*)(_check_pointer(i2, 41430));
              OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 41399)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i0, "pos", 4, i2);
              i0 = (OOC_INT64)lastError;
              i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 41484))+16);
              i2 = *(OOC_INT32*)((_check_pointer(i2, 41488))+4);
              OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 41456)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i0, "line", 5, i2);
              i0 = (OOC_INT64)lastError;
              i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 41545))+16);
              i1 = *(OOC_INT32*)((_check_pointer(i1, 41549))+8);
              OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 41515)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i0, "column", 7, i1);
              i0 = (OOC_INT64)errList;
              i1 = (OOC_INT64)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_INT64 i0,i1;

              i0 = *flagAttribute;
              i1 = newValue;
              i0 = i0!=i1;
              if (i0) goto l3;
              i0 = (OOC_INT64)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_INT64 i0;

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


          i0 = (OOC_INT64)visited;
          i1 = (OOC_INT64)item;
          i0 = ADT_Dictionary__DictionaryDesc_HasKey((ADT_Dictionary__Dictionary)i0, (Object__Object)i1);
          i0 = !i0;
          if (!i0) goto l133;
          i0 = (OOC_INT64)visited;
          ADT_Dictionary__DictionaryDesc_Set((ADT_Dictionary__Dictionary)i0, (Object__Object)i1, (Object__Object)(OOC_INT64)0);
          i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 42301))+32);
          flag = (OOC_SymbolTable__Flag)i0;
          i1 = i0!=(OOC_INT64)0;
          if (!i1) goto l133;
l5_loop:
          i1 = (OOC_INT64)item;
          i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 42365)))), &_td_OOC_SymbolTable__ModuleDesc);
          if (i2) goto l121;
          i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 42697)))), &_td_OOC_SymbolTable__ProcDeclDesc);
          if (i2) goto l114;
          i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 43024)))), &_td_OOC_SymbolTable__ConstDeclDesc);
          if (i2) goto l108;
          i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 43284)))), &_td_OOC_SymbolTable__VarDeclDesc);
          if (i2) goto l80;
          i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 44307)))), &_td_OOC_SymbolTable__FieldDeclDesc);
          if (i2) goto l74;
          i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 44567)))), &_td_OOC_SymbolTable__TypeDeclDesc);
          if (i2) goto l68;
          i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 44826)))), &_td_OOC_SymbolTable__RecordDesc);
          if (i2) goto l54;
          i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 45735)))), &_td_OOC_SymbolTable__ArrayDesc);
          if (i2) goto l38;
          i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 46376)))), &_td_OOC_SymbolTable__PointerDesc);
          if (i2) goto l32;
          i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 46625)))), &_td_OOC_SymbolTable__FormalParsDesc);
          if (i2) goto l26;
          OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
          goto l127;
l26:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 46668))+8);
          switch (i2) {
          case 9:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 46737))+105), 1u);
            goto l127;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l127;
          }
l32:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 46416))+8);
          switch (i2) {
          case 5:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 46484))+88), 1u);
            goto l127;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l127;
          }
l38:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 45773))+8);
          switch (i2) {
          case 3:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 45846))+70), 0u);
            goto l127;
          case 2:
            i2 = *(OOC_UINT8*)((_check_pointer(i1, 45932))+72);
            i2 = !i2;
            if (i2) goto l44;
            i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 45990))+80);
            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, 46118))+73), 0u);
            goto l127;
l48:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l127;
          case 8:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 46225))+74), 1u);
            goto l127;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l127;
          }
l54:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 44865))+8);
          switch (i2) {
          case 1:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 44934))+105), 1u);
            goto l127;
          case 3:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 45020))+70), 0u);
            goto l127;
          case 4:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 45111))+106), 0u);
            goto l127;
          case 12:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 45198))+106), 1u);
            goto l127;
          case 7:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 45279))+104), 1u);
            goto l127;
          case 13:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetAlign((void*)((_check_pointer(i1, 45357))+108), 1);
            goto l127;
          case 14:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetAlign((void*)((_check_pointer(i1, 45435))+108), 2);
            goto l127;
          case 15:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetAlign((void*)((_check_pointer(i1, 45513))+108), 4);
            goto l127;
          case 16:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetAlign((void*)((_check_pointer(i1, 45591))+108), 8);
            goto l127;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l127;
          }
l68:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 44608))+8);
          switch (i2) {
          case 10:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 44679))+64), 1u);
            goto l127;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l127;
          }
l74:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 44349))+8);
          switch (i2) {
          case 10:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 44420))+64), 1u);
            goto l127;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l127;
          }
l80:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 43324))+8);
          switch (i2) {
          case 0:
            i2 = *(OOC_UINT8*)((_check_pointer(i1, 43387))+104);
            i2 = !i2;
            if (i2) goto l85;
            i2 = *(OOC_UINT8*)((_check_pointer(i1, 43426))+107);
            
            goto l87;
l85:
            i2=1u;
l87:
            if (i2) goto l93;
            i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 43467))+88);
            i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 43473)))), &_td_OOC_SymbolTable__ArrayDesc);
            if (i2) goto l91;
            i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 43516))+88);
            i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 43522)))), &_td_OOC_SymbolTable__RecordDesc);
            
            goto l92;
l91:
            i2=1u;
l92:
            i2 = !i2;
            
            goto l95;
l93:
            i2=1u;
l95:
            if (i2) goto l97;
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 43768))+109), 0u);
            i0 = (OOC_INT64)item;
            *(OOC_UINT8*)((_check_pointer(i0, 43813))+110) = 1u;
            goto l127;
l97:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l127;
          case 6:
            i2 = *(OOC_UINT8*)((_check_pointer(i1, 43914))+108);
            i2 = !i2;
            if (i2) goto l102;
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 44048))+111), 1u);
            goto l127;
l102:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l127;
          case 10:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 44160))+64), 1u);
            goto l127;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l127;
          }
l108:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 43066))+8);
          switch (i2) {
          case 10:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 43137))+64), 1u);
            goto l127;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l127;
          }
l114:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 42738))+8);
          switch (i2) {
          case 1:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 42807))+90), 1u);
            goto l127;
          case 10:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 42891))+64), 1u);
            goto l127;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l127;
          }
l121:
          i2 = *(OOC_INT16*)((_check_pointer(i0, 42404))+8);
          switch (i2) {
          case 11:
            goto l127;
          case 10:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_SetFlag((void*)((_check_pointer(i1, 42550))+64), 1u);
            goto l127;
          default:
            OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags_InvalidFlag((OOC_SymbolTable__Flag)i0, 19);
            goto l127;
          }
l127:
          i0 = (OOC_INT64)flag;
          i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 46976));
          flag = (OOC_SymbolTable__Flag)i0;
          i1 = i0!=(OOC_INT64)0;
          if (i1) goto l5_loop;
l133:
          return;
          ;
        }

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

          i0 = (OOC_INT64)referrer;
          i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 47132)))), OOC_SymbolTable__ItemDesc_Module)),OOC_SymbolTable__ItemDesc_Module)((OOC_SymbolTable__Item)i0);
          i1 = (OOC_INT64)item;
          i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 47148)))), 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_INT64 i0,i1,i2;
          OOC_SymbolTable__Item parentItem;

          i0 = (OOC_INT64)fpars;
          i1 = *(OOC_INT8*)((_check_pointer(i0, 47576))+106);
          i1 = i1==0;
          if (!i1) goto l12;
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 47644))+8);
          parentItem = (OOC_SymbolTable__Item)i1;
          i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 47681))+8);
          i2 = i2!=(OOC_INT64)0;
          if (!i2) goto l11;
l6_loop:
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 47737))+8);
          parentItem = (OOC_SymbolTable__Item)i1;
          i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 47681))+8);
          i2 = i2!=(OOC_INT64)0;
          if (i2) goto l6_loop;
l11:
          i1 = *(OOC_INT8*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 47808)))), &_td_OOC_SymbolTable__ModuleDesc, 47808)), 47815))+112);
          *(OOC_INT8*)((_check_pointer(i0, 47780))+106) = i1;
l12:
          return;
          ;
        }


      i0 = (OOC_INT64)item;
      i1 = i0!=(OOC_INT64)0;
      if (!i1) goto l74;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlags((OOC_SymbolTable__Item)i0);
      i0 = (OOC_INT64)item;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 47971)))), &_td_OOC_SymbolTable__PointerDesc);
      if (i1) goto l57;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 48157)))), &_td_OOC_SymbolTable__VarDeclDesc);
      if (i1) goto l37;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 48521)))), &_td_OOC_SymbolTable__TypeDeclDesc);
      if (i1) goto l12;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 48871)))), &_td_OOC_SymbolTable__FormalParsDesc);
      if (!i1) goto l65;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveCallingConvention((OOC_SymbolTable__FormalPars)i0);
      goto l65;
l12:
      i1 = *(OOC_INT8*)((_check_pointer(i0, 48557))+52);
      i1 = i1!=0;
      if (i1) goto l15;
      i1=0u;
      goto l17;
l15:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 48612))+88);
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 48618)))), &_td_OOC_SymbolTable__RecordDesc);
      
l17:
      if (!i1) goto l65;
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 48662))+88);
      type = (OOC_SymbolTable__Type)i0;
      i1 = i0!=(OOC_INT64)0;
      if (i1) goto l21;
      i1=0u;
      goto l23;
l21:
      i1 = (OOC_INT64)privateRecords;
      i1 = ADT_Dictionary__DictionaryDesc_HasKey((ADT_Dictionary__Dictionary)i1, (Object__Object)i0);
      
l23:
      if (!i1) goto l65;
l25_loop:
      i1 = (OOC_INT64)privateRecords;
      ADT_Dictionary__DictionaryDesc_Delete((ADT_Dictionary__Dictionary)i1, (Object__Object)i0);
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 48807)))), &_td_OOC_SymbolTable__RecordDesc, 48807)), 48814))+72);
      type = (OOC_SymbolTable__Type)i0;
      i1 = i0!=(OOC_INT64)0;
      if (i1) goto l28;
      i1=0u;
      goto l30;
l28:
      i1 = (OOC_INT64)privateRecords;
      i1 = ADT_Dictionary__DictionaryDesc_HasKey((ADT_Dictionary__Dictionary)i1, (Object__Object)i0);
      
l30:
      if (i1) goto l25_loop;
      goto l65;
l37:
      i1 = *(OOC_UINT8*)((_check_pointer(i0, 48191))+104);
      if (!i1) goto l65;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 48233))+88);
      type = (OOC_SymbolTable__Type)i1;
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags_ResolveFlagsDirect((OOC_SymbolTable__Item)i0, (OOC_SymbolTable__Item)i1);
      i0 = (OOC_INT64)type;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 48305)))), &_td_OOC_SymbolTable__RecordDesc);
      if (i1) goto l42;
      i1=0u;
      goto l44;
l42:
      i1 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 48332)))), &_td_OOC_SymbolTable__RecordDesc, 48332)), 48339))+70);
      i1 = !i1;
      
l44:
      if (i1) goto l50;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 48378)))), &_td_OOC_SymbolTable__ArrayDesc);
      if (i1) goto l48;
      i0=0u;
      goto l52;
l48:
      i0 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 48404)))), &_td_OOC_SymbolTable__ArrayDesc, 48404)), 48410))+73);
      i0 = !i0;
      
      goto l52;
l50:
      i0=1u;
l52:
      if (!i0) goto l65;
      i0 = (OOC_INT64)item;
      *(OOC_UINT8*)((_check_pointer(i0, 48448))+112) = 0u;
      goto l65;
l57:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 48006))+72);
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 48016)))), &_td_OOC_SymbolTable__RecordDesc);
      if (i1) goto l60;
      i1=0u;
      goto l62;
l60:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 48051))+72);
      i1 = *(OOC_UINT8*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 48065)))), &_td_OOC_SymbolTable__RecordDesc, 48065)), 48072))+70);
      i1 = !i1;
      
l62:
      if (!i1) goto l65;
      *(OOC_UINT8*)((_check_pointer(i0, 48108))+89) = 1u;
l65:
      i0 = (OOC_INT64)item;
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 49043))+16);
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT64)0;
      if (!i1) goto l74;
      i1 = (OOC_INT64)errList;
      
l68_loop:
      OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags((OOC_SymbolTable__Item)i0, (OOC_Error__List)i1);
      i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 49154));
      ptr = (OOC_SymbolTable__Item)i0;
      i2 = i0!=(OOC_INT64)0;
      if (i2) goto l68_loop;
l74:
      return;
      ;
    }

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

      i0 = (OOC_INT64)ld;
      i1 = i0==(OOC_INT64)0;
      if (i1) goto l7;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 49361)))), &_td_OOC_SymbolTable__LinkFileDesc);
      if (i1) goto l5;
      i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 49474));
      i0 = OOC_SymbolTable_CreateNamespace__CreateNamespace_LinkFileSections((OOC_SymbolTable__LinkDirective)i0);
      return i0;
      goto l8;
l5:
      i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 49415));
      i0 = OOC_SymbolTable_CreateNamespace__CreateNamespace_LinkFileSections((OOC_SymbolTable__LinkDirective)i0);
      return (i0+1);
      goto l8;
l7:
      return 0;
l8:
      _failed_function(49232); return 0;
      ;
    }

    
    void OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars(OOC_SymbolTable__Item item) {
      register OOC_INT64 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_INT64 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_INT64 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_INT64)type;
              i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 50167))+56);
              i1 = i1==(OOC_INT64)0;
              if (i1) goto l52;
              i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 50451))+56);
              i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 50460))+40);
              oldVars = (OOC_SymbolTable__TypeVarArray)i1;
              _new = 0;
              i = 0;
              i2 = (OOC_INT64)typeVars;
              i3 = OOC_ARRAY_LENGTH((_check_pointer(i2, 50546)), 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, 50611)), 0);
              i5 = 0!=i5;
              if (i5) goto l9;
              i5=0u;
              goto l11;
l9:
              i5 = _check_pointer(i1, 50625);
              i6 = OOC_ARRAY_LENGTH(i5, 0);
              i7 = _check_pointer(i2, 50639);
              i8 = OOC_ARRAY_LENGTH(i7, 0);
              i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(0, i6, OOC_UINT32, 50625))*8);
              i6 = (OOC_INT64)*(OOC_INT64*)(i7+(_check_index(i3, i8, OOC_UINT32, 50639))*8);
              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, 50611)), 0);
              i6 = i5!=i6;
              if (i6) goto l17;
              i6=0u;
              goto l19;
l17:
              i6 = _check_pointer(i1, 50625);
              i7 = OOC_ARRAY_LENGTH(i6, 0);
              i8 = _check_pointer(i2, 50639);
              i9 = OOC_ARRAY_LENGTH(i8, 0);
              i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i5, i7, OOC_UINT32, 50625))*8);
              i7 = (OOC_INT64)*(OOC_INT64*)(i8+(_check_index(i3, i9, OOC_UINT32, 50639))*8);
              i6 = i6!=i7;
              
l19:
              if (i6) goto l14_loop;
l23:
              i6 = OOC_ARRAY_LENGTH((_check_pointer(i1, 50723)), 0);
              i5 = i5==i6;
              if (!i5) goto l27;
              i5 = _check_pointer(i2, 50789);
              i6 = OOC_ARRAY_LENGTH(i5, 0);
              i7 = _check_pointer(i2, 50806);
              i8 = OOC_ARRAY_LENGTH(i7, 0);
              i7 = (OOC_INT64)*(OOC_INT64*)(i7+(_check_index(i3, i8, OOC_UINT32, 50806))*8);
              *(OOC_INT64*)(i5+(_check_index(i4, i6, OOC_UINT32, 50789))*8) = i7;
              i4 = i4+1;
              _new = i4;
              
l27:
              i3 = i3+1;
              i = i3;
              i5 = OOC_ARRAY_LENGTH((_check_pointer(i2, 50546)), 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, 50959)), 0);
              i4 = (OOC_INT64)RT0__NewObject(_td_OOC_SymbolTable__TypeVarArray.baseTypes[0], (i4+i3));
              tv = (OOC_SymbolTable__TypeVarArray)i4;
              i = 0;
              i5 = OOC_ARRAY_LENGTH((_check_pointer(i1, 51007)), 0);
              i6 = 0<i5;
              if (!i6) goto l42;
              i6=0;
l37_loop:
              i7 = _check_pointer(i4, 51033);
              i8 = OOC_ARRAY_LENGTH(i7, 0);
              i9 = _check_pointer(i1, 51047);
              i10 = OOC_ARRAY_LENGTH(i9, 0);
              i9 = (OOC_INT64)*(OOC_INT64*)(i9+(_check_index(i6, i10, OOC_UINT32, 51047))*8);
              *(OOC_INT64*)(i7+(_check_index(i6, i8, OOC_UINT32, 51033))*8) = 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, 51126);
              i7 = OOC_ARRAY_LENGTH((_check_pointer(i1, 51138)), 0);
              i8 = OOC_ARRAY_LENGTH(i6, 0);
              i9 = _check_pointer(i2, 51155);
              i10 = OOC_ARRAY_LENGTH(i9, 0);
              i9 = (OOC_INT64)*(OOC_INT64*)(i9+(_check_index(i5, i10, OOC_UINT32, 51155))*8);
              *(OOC_INT64*)(i6+(_check_index((i7+i5), i8, OOC_UINT32, 51126))*8) = i9;
              i5 = i5+1;
              i = i5;
              i6 = i5<i3;
              if (i6) goto l45_loop;
l50:
              i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 51197))+56);
              *(OOC_INT64*)((_check_pointer(i0, 51206))+40) = i4;
              goto l53;
l52:
              i1 = (OOC_INT64)RT0__NewObject(_td_OOC_SymbolTable__TypePars.baseTypes[0]);
              tp = (OOC_SymbolTable__TypePars)i1;
              i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 50273))+8);
              OOC_SymbolTable__InitTypePars((OOC_SymbolTable__TypePars)i1, (OOC_SymbolTable__Item)i2);
              i2 = (OOC_INT64)typeVars;
              *(OOC_INT64*)((_check_pointer(i1, 50297))+40) = i2;
              OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 50334)))), 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_INT64 i0,i1;

              i0 = (OOC_INT64)baseType;
              i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 51362))+56);
              i1 = i1!=(OOC_INT64)0;
              if (!i1) goto l4;
              i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 51420))+56);
              i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 51429))+40);
              i1 = (OOC_INT64)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_INT64 i0,i1,i2;

              i0 = (OOC_INT64)varDecl;
              i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 51583))+88);
              i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 51597))+96);
              OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i2);
              i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 51641))+88);
              i1 = (OOC_INT64)type;
              OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_Merge((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
              return;
              ;
            }


          i0 = (OOC_INT64)type;
          i1 = i0!=(OOC_INT64)0;
          if (i1) goto l3;
          i1=0u;
          goto l9;
l3:
          i1 = (OOC_INT64)srcCodeType;
          i1 = i0==i1;
          if (i1) goto l6;
          i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 51751)))), &_td_OOC_SymbolTable__TypeVarDesc);
          
          goto l9;
l6:
          i1=1u;
l9:
          if (!i1) goto l74;
          i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 51924)))), &_td_OOC_SymbolTable__TypeVarDesc);
          if (i1) goto l69;
          i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 52119)))), &_td_OOC_SymbolTable__PredefTypeDesc);
          if (i1) goto l74;
          i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 52181)))), &_td_OOC_SymbolTable__PointerDesc);
          if (i1) goto l66;
          i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 52315)))), &_td_OOC_SymbolTable__FormalParsDesc);
          if (i1) goto l56;
          i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 52676)))), &_td_OOC_SymbolTable__ArrayDesc);
          if (i1) goto l54;
          i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 52817)))), &_td_OOC_SymbolTable__RecordDesc);
          if (i1) goto l38;
          i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 53338)))), &_td_OOC_SymbolTable__QualTypeDesc);
          if (i1) goto l28;
          i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 53652)))), &_td_OOC_SymbolTable__TypeNameDesc);
          if (i1) goto l74;
          _failed_with(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 53646)))), 53646);
          goto l74;
l28:
          i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53469))+88);
          i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 53479)), 0);
          i = 0;
          i1 = 0<i0;
          if (!i1) goto l74;
          i1=0;
l31_loop:
          i2 = (OOC_INT64)type;
          i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 53515))+88);
          i3 = _check_pointer(i3, 53525);
          i4 = OOC_ARRAY_LENGTH(i3, 0);
          i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 53539))+88);
          i5 = _check_pointer(i5, 53549);
          i6 = OOC_ARRAY_LENGTH(i5, 0);
          i5 = (OOC_INT64)*(OOC_INT64*)((i5+((_check_index(i1, i6, OOC_UINT32, 53549))*16))+8);
          i3 = (OOC_INT64)*(OOC_INT64*)(i3+((_check_index(i1, i4, OOC_UINT32, 53525))*16));
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate((OOC_SymbolTable__Type)i3, (OOC_SymbolTable__Type)i5);
          i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 53597))+88);
          i3 = _check_pointer(i3, 53607);
          i4 = OOC_ARRAY_LENGTH(i3, 0);
          i1 = (OOC_INT64)*(OOC_INT64*)(i3+((_check_index(i1, i4, OOC_UINT32, 53607))*16));
          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_INT64)*(OOC_INT64*)((_check_pointer(i0, 52853))+72);
          i1 = i1!=(OOC_INT64)0;
          if (!i1) goto l41;
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 52918))+80);
          i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 52903))+72);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Type)i1);
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 52967))+72);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_Merge((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
l41:
          i0 = (OOC_INT64)type;
          i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53019))+16);
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT64)0;
          if (!i1) goto l74;
l44_loop:
          i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 53088)))), &_td_OOC_SymbolTable__FieldDeclDesc);
          if (!i1) goto l47;
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53136))+88);
          i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53146))+96);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i2);
          i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53192))+88);
          i1 = (OOC_INT64)type;
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_Merge((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
l47:
          i0 = (OOC_INT64)ptr;
          i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 53291));
          ptr = (OOC_SymbolTable__Item)i0;
          i1 = i0!=(OOC_INT64)0;
          if (i1) goto l44_loop;
          goto l74;
l54:
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 52717))+80);
          i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 52735))+88);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i2);
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 52785))+80);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_Merge((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
          goto l74;
l56:
          i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 52565))+96);
          i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 52572)), 0);
          i = 0;
          i1 = 0<i0;
          if (!i1) goto l74;
          i1=0;
l59_loop:
          i2 = (OOC_INT64)type;
          i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 52617))+96);
          i3 = _check_pointer(i3, 52624);
          i4 = OOC_ARRAY_LENGTH(i3, 0);
          i1 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i1, i4, OOC_UINT32, 52624))*8);
          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_INT64)*(OOC_INT64*)((_check_pointer(i0, 52224))+72);
          i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 52239))+80);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i2);
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 52286))+72);
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_Merge((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
          goto l74;
l69:
          i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 51961))+56);
          i1 = i1==(OOC_INT64)0;
          if (!i1) goto l74;
          i1 = (OOC_INT64)RT0__NewObject(_td_OOC_SymbolTable__TypeVarArray.baseTypes[0], 1);
          tv = (OOC_SymbolTable__TypeVarArray)i1;
          i2 = _check_pointer(i1, 52025);
          i3 = OOC_ARRAY_LENGTH(i2, 0);
          *(OOC_INT64*)(i2+(_check_index(0, i3, OOC_UINT8, 52025))*8) = i0;
          OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate_MergePars((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__TypeVarArray)i1);
l74:
          return;
          ;
        }


      i0 = (OOC_INT64)item;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 53774)))), &_td_OOC_SymbolTable__TypeDeclDesc);
      if (i1) goto l9;
      i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 53852)))), &_td_OOC_SymbolTable__ProcDeclDesc);
      if (!i1) goto l10;
      i1 = OOC_SymbolTable__ProcDeclDesc_IsTypeBound((OOC_SymbolTable__ProcDecl)i0);
      if (!i1) goto l10;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53929))+112);
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53946))+112);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
      goto l10;
l9:
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53814))+88);
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53825))+96);
      OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars_Propagate((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
l10:
      i0 = (OOC_INT64)item;
      i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 54074))+16);
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT64)0;
      if (!i1) goto l18;
l13_loop:
      OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars((OOC_SymbolTable__Item)i0);
      i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 54165));
      ptr = (OOC_SymbolTable__Item)i0;
      i1 = i0!=(OOC_INT64)0;
      if (i1) goto l13_loop;
l18:
      return;
      ;
    }

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

      i0 = (OOC_INT64)qualType;
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 54360))+72);
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 54369))+56);
      i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 54378))+40);
      params = (OOC_SymbolTable__TypeVarArray)i1;
      i2 = OOC_ARRAY_LENGTH((_check_pointer(i1, 54434)), 0);
      *(OOC_INT64*)((_check_pointer(i0, 54412))+88) = ((OOC_INT64)RT0__NewObject(_td_OOC_SymbolTable__TypeRefArray.baseTypes[0], i2));
      i = 0;
      i2 = OOC_ARRAY_LENGTH((_check_pointer(i1, 54469)), 0);
      i3 = 0<i2;
      if (!i3) goto l8;
      i3 = (OOC_INT64)&_td_OOC_SymbolTable__TypeRef;
      i4=0;
l3_loop:
      i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 54509))+88);
      i5 = _check_pointer(i5, 54519);
      i6 = OOC_ARRAY_LENGTH(i5, 0);
      i7 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 54509))+88);
      i7 = OOC_ARRAY_LENGTH((_check_pointer(i7, 54519)), 0);
      i7 = _check_index(i4, i7, OOC_UINT32, 54519);
      i7 = _check_pointer(i1, 54530);
      i8 = OOC_ARRAY_LENGTH(i7, 0);
      i7 = (OOC_INT64)*(OOC_INT64*)(i7+(_check_index(i4, i8, OOC_UINT32, 54530))*8);
      i7 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i7, 54533))+72);
      OOC_SymbolTable__InitTypeRef((void*)(i5+((_check_index(i4, i6, OOC_UINT32, 54519))*16)), (RT0__Struct)i3, (OOC_SymbolTable__Type)i7);
      i4 = i4+1;
      i = i4;
      i5 = i4<i2;
      if (i5) goto l3_loop;
l8:
      return;
      ;
    }


  i0 = (OOC_INT64)errList;
  _assert((i0!=(OOC_INT64)0), 127, 54591);
  i0 = (OOC_INT64)root;
  i1 = *(OOC_INT8*)((_check_pointer(i0, 54629))+96);
  switch (i1) {
  case 3:
  case 2:
    i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 54708))+120);
    i0 = OOC_SymbolTable_CreateNamespace__CreateNamespace_LinkFileSections((OOC_SymbolTable__LinkDirective)i0);
    i0 = i0>1;
    if (!i0) goto l7;
    i0 = (OOC_INT64)errList;
    i1 = (OOC_INT64)root;
    OOC_SymbolTable_CreateNamespace__CreateNamespace_ErrDecl(25, (OOC_SymbolTable__Declaration)i1, (OOC_Error__List)i0);
    goto l7;
  default:
    goto l7;
  }
l7:
  i0 = (OOC_INT64)uses;
  i1 = (OOC_INT64)root;
  i2 = i0!=(OOC_INT64)0;
  if (!i2) goto l10;
  i2 = (OOC_INT64)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_INT64)errList;
  i0 = OOC_Error__ListDesc_NoErrors((OOC_Error__List)i0);
  i0 = !i0;
  if (!i0) goto l13;
  return;
l13:
  i0 = (OOC_INT64)ADT_Dictionary__New();
  privateRecords = (ADT_Dictionary__Dictionary)i0;
  i0 = (OOC_INT64)root;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_PopulateNamespace((OOC_SymbolTable__Item)i0);
  i0 = (OOC_INT64)root;
  i1 = (OOC_INT64)errList;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckLocalUniqueness((OOC_SymbolTable__Item)i0, (OOC_Error__List)i1);
  i0 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__predefModule;
  i1 = (OOC_INT64)root;
  i2 = (OOC_INT64)errList;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_ConnectNamespaces((OOC_SymbolTable__Item)i1, (OOC_SymbolTable__Module)i0, (OOC_Error__List)i2);
  i0 = (OOC_INT64)ADT_ArrayList__New(4);
  unpatchedQualTypes = (ADT_ArrayList__ArrayList)i0;
  i1 = (OOC_INT64)root;
  i2 = (OOC_INT64)errList;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveTypeNames((OOC_SymbolTable__Item)i1, (OOC_SymbolTable__Item)(OOC_INT64)0, (ADT_ArrayList__ArrayList)i0, (OOC_Error__List)i2);
  i0 = (OOC_INT64)unpatchedQualTypes;
  i = 0;
  i0 = *(OOC_INT32*)((_check_pointer(i0, 56834))+8);
  i1 = 0<i0;
  if (!i1) goto l21;
  i1=0;
l16_loop:
  i2 = (OOC_INT64)unpatchedQualTypes;
  i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 56883));
  i2 = _check_pointer(i2, 56889);
  i3 = OOC_ARRAY_LENGTH(i2, 0);
  i1 = (OOC_INT64)*(OOC_INT64*)(i2+(_check_index(i1, i3, OOC_UINT32, 56889))*8);
  OOC_SymbolTable_CreateNamespace__CreateNamespace_PatchQualType((OOC_SymbolTable__QualType)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 56897)))), &_td_OOC_SymbolTable__QualTypeDesc, 56897)));
  i1 = i;
  i1 = i1+1;
  i = i1;
  i2 = i1<i0;
  if (i2) goto l16_loop;
l21:
  i0 = (OOC_INT64)ADT_Dictionary__New();
  visited = (ADT_Dictionary__Dictionary)i0;
  i0 = (OOC_INT64)root;
  i1 = (OOC_INT64)errList;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveModifierFlags((OOC_SymbolTable__Item)i0, (OOC_Error__List)i1);
  i0 = (OOC_INT64)root;
  i1 = (OOC_INT64)errList;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckTypeRestrictions((OOC_SymbolTable__Item)i0, (OOC_Error__List)i1);
  i0 = (OOC_INT64)root;
  i1 = (OOC_INT64)errList;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_InsertTypeBoundProcs((OOC_SymbolTable__Module)i0, (OOC_Error__List)i1);
  i0 = (OOC_INT64)errList;
  i1 = OOC_Error__ListDesc_NoErrors((OOC_Error__List)i0);
  if (!i1) goto l24;
  i1 = (OOC_INT64)root;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_ResolveForwardDecl((OOC_SymbolTable__Item)i1, (OOC_Error__List)i0);
l24:
  i0 = (OOC_INT64)root;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_PropagateTypeVars((OOC_SymbolTable__Item)i0);
  i0 = (OOC_INT64)errList;
  i1 = OOC_Error__ListDesc_NoErrors((OOC_Error__List)i0);
  if (!i1) goto l27;
  i1 = (OOC_INT64)root;
  OOC_SymbolTable_CreateNamespace__CreateNamespace_CheckExtendedRecords((OOC_SymbolTable__Item)i1, (OOC_Error__List)i0);
l27:
  i0 = (OOC_INT64)root;
  i1 = (OOC_INT64)errList;
  OOC_Doc_ResolveRef__Resolve((OOC_SymbolTable__Module)i0, (OOC_Error__List)i1);
  i2 = (OOC_INT64)uses;
  i3 = i2!=(OOC_INT64)0;
  if (i3) goto l30;
  i1=0u;
  goto l32;
l30:
  i1 = OOC_Error__ListDesc_NoErrors((OOC_Error__List)i1);
  
l32:
  if (!i1) goto l34;
  OOC_SymbolTable_Uses__UsesDesc_RegisterSymTab((OOC_SymbolTable_Uses__Uses)i2, (OOC_SymbolTable__Module)i0);
l34:
  return;
  ;
}

void OOC_SymbolTable_CreateNamespace__Init(void) {
  register OOC_INT64 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_INT64)0;
  OOC_SymbolTable_CreateNamespace__systemModule = (OOC_SymbolTable__Module)(OOC_INT64)0;
  i0 = (OOC_INT64)OOC_SymbolTable_Builder__New();
  stb = (OOC_SymbolTable_Builder__Builder)i0;
  i1 = (OOC_INT64)OOC_SymbolTable_Predef__CreatePredef((OOC_SymbolTable_Builder__Builder)i0, (void*)(OOC_INT64)&OOC_SymbolTable_CreateNamespace__exception);
  predef = (OOC_SymbolTable__Module)i1;
  i0 = (OOC_INT64)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_INT64)OOC_TYPE_TAG(((OOC_INT64)Exception__Current()))), &_td_IO__ErrorDesc);
    if (i0) goto l5;
    Exception__ActivateContext();
l5:
    Exception__Clear();
    goto l7;
l6:
    i2 = (OOC_INT64)OOC_Error__NewList((Object__String)((OOC_INT64)_c0));
    OOC_SymbolTable_CreateNamespace__CreateNamespace((OOC_SymbolTable__Module)i1, (OOC_SymbolTable_Uses__Uses)(OOC_INT64)0, (OOC_Error__List)i2);
    i1 = (OOC_INT64)OOC_Error__NewList((Object__String)((OOC_INT64)_c1));
    OOC_SymbolTable_CreateNamespace__CreateNamespace((OOC_SymbolTable__Module)i0, (OOC_SymbolTable_Uses__Uses)(OOC_INT64)0, (OOC_Error__List)i1);
    Exception__PopContext(1);
l7:;
  }
  i0 = (OOC_INT64)predef;
  OOC_SymbolTable_CreateNamespace__predefModule = (OOC_SymbolTable__Module)i0;
  i0 = (OOC_INT64)system;
  OOC_SymbolTable_CreateNamespace__systemModule = (OOC_SymbolTable__Module)i0;
  return;
  ;
}

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

  i0 = (OOC_INT64)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:SymbolTable:CreateNamespace", 32);
  OOC_SymbolTable_CreateNamespace__Init();
  return;
  ;
}

/* --- */
