bmx-ng / bcc

A next-generation bcc parser for BlitzMax
zlib License
33 stars 12 forks source link

Generics in modules/import multiple layers #594

Closed thareh closed 9 months ago

thareh commented 2 years ago

It seems that using generic types in a multiple "layer" of modules can cause compile errors.

test.mod/test1.mod/test1.bmx

SuperStrict

Module test.test1

Framework BRL.Blitz
Import BRL.Collections

Local list:TLinkedList<String> = New TLinkedList<String>()

test.mod/test2.mod/test2.bmx

SuperStrict

Module test.test2

Framework BRL.Blitz
Import test.test1

Local arr:TArrayList<String> = New TArrayList<String>

test.bmx

Framework BRL.Blitz
Import BRL.StandardIO
Import test.test2

Local map:TTreeMap<String, String> = New TTreeMap<String, String>()

Perhaps I should gather all the bugs related to generics in a single place for your convenience @woollybah?

Generics is such a useful & powerful feature and it works really well aside from a few bugs, so I'd be really really swell if you would take a look at it sometime in the near future! 😊

Thanks! -- Thareh

Environment

GWRon commented 2 years ago

I would suggest to:

This way it becomes apparent, what might be better tackled in one big change/update.

Do not create a "all issues in one"-report as you then have to leave it open until all issues are ironed out.

That "all in one thing" is something Brucey could do in a Pull Request... Creating a custom branch ("fix_generics") and in the Pull Request to the master/main branch an issue/discussion is automatically linked to it. There you can maintain a list of issues (checkbox style) which your PR is planned to solve. With commits to that branch you then step by step fulfill the check list. People can peek already what each commit will change, can discuss issues they see in the current state (of the branch...). Then when eg Brucey think he is done with it, people could review the PR, eg. cross-check the referenced issues (top post of the PR contains then eg some "closes hashkey numberx"). Afterwards Brucey could simply merge the PR and voila...properly worked on multiple issue resolves.

thareh commented 2 years ago

Ah, I see! Thanks for the input @GWRon 😊

thareh commented 1 year ago

The error message I get is the following:

D:/Code/BlitzMax/Temp/Generics/.bmx/Test.bmx.console.release.win32.x64.c: In function '__m_Test_TTreeMapSS_Keys':
D:/Code/BlitzMax/Temp/Generics/.bmx/Test.bmx.console.release.win32.x64.c:423:139: error: 'test_test2_ICollectionS_ifc' undeclared (first use in this function); did you mean 'test_test1_ICollectionS_ifc'?
  return (struct test_test2_ICollectionS_obj*)((struct test_test2_ICollectionS_obj*)bbInterfaceDowncast((BBObject*)bbt_list,(BBInterface*)&test_test2_ICollectionS_ifc));
                                                                                                                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                                                                                                           test_test1_ICollectionS_ifc
D:/Code/BlitzMax/Temp/Generics/.bmx/Test.bmx.console.release.win32.x64.c:423:139: note: each undeclared identifier is reported only once for each function it appears in
D:/Code/BlitzMax/Temp/Generics/.bmx/Test.bmx.console.release.win32.x64.c: In function '__m_Test_TTreeMapSS_Values':
D:/Code/BlitzMax/Temp/Generics/.bmx/Test.bmx.console.release.win32.x64.c:434:139: error: 'test_test2_ICollectionS_ifc' undeclared (first use in this function); did you mean 'test_test1_ICollectionS_ifc'?
  return (struct test_test2_ICollectionS_obj*)((struct test_test2_ICollectionS_obj*)bbInterfaceDowncast((BBObject*)bbt_list,(BBInterface*)&test_test2_ICollectionS_ifc));
                                                                                                                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                                                                                                           test_test1_ICollectionS_ifc

Thanks.

thareh commented 1 year ago

Any chance you could take a look at this any time soon @woollybah? I have modules that are using the generic types from BRL.Collections, and if I use said modules and try to use another generic type from BRL.Collections it doesn't work :(

HurryStarfish commented 1 year ago

Unfortunately, I don't think generics in BlitzMax are in a usable state as of right now. There are major issues of various kinds (type system, parsing, translation...), which, at least to my knowledge, would be very hard to fix given the way the compiler is currently written and the type system is designed. That may be the reason there hasn't really been any progress on the matter.

thareh commented 1 year ago

Ah okey, I see - that's too bad. I've used generics quite extensively lately and I think it's working quite well actually, this is the only major issue I've found. But perhaps you're right... It's such an awesome feature though! :) Thanks for your reply @HurryStarfish and have a good evening.

thareh commented 1 year ago

Seems something has gone even more wrong with this now, I have this type TDoubleMap which is a nested TTreeMap and the TDoubleMap module won't compile at all now which it used to do. Perhaps it's the updated MinGW that caused this?

In file included from D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:1:
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1656:6: error: conflicting types for '_bbbrl_collections_TArrayListIterator_New_TTArrayList'; have 'void(struct bbbrl_collections_TArrayListIterator_obj *, struct _m_untitled2_TArrayListTTTreeMap_obj *)'
 1656 | void _bbbrl_collections_TArrayListIterator_New_TTArrayList(struct bbbrl_collections_TArrayListIterator_obj* o,struct _m_untitled2_TArrayListTTTreeMap_obj* bbt_list4);
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1509:6: note: previous declaration of '_bbbrl_collections_TArrayListIterator_New_TTArrayList' with type 'void(struct bbbrl_collections_TArrayListIterator_obj *, struct _m_untitled2_TArrayListS_obj *)'
 1509 | void _bbbrl_collections_TArrayListIterator_New_TTArrayList(struct bbbrl_collections_TArrayListIterator_obj* o,struct _m_untitled2_TArrayListS_obj* bbt_list2);
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1657:50: error: conflicting types for '_bbbrl_collections_TArrayListIterator_New_TTArrayList_ObjectNew'; have 'struct bbbrl_collections_TArrayListIterator_obj *(BBClass *, struct _m_untitled2_TArrayListTTTreeMap_obj *)'
 1657 | struct bbbrl_collections_TArrayListIterator_obj* _bbbrl_collections_TArrayListIterator_New_TTArrayList_ObjectNew(BBClass * clas,struct _m_untitled2_TArrayListTTTreeMap_obj* bbt_list4);
      |                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1510:50: note: previous declaration of '_bbbrl_collections_TArrayListIterator_New_TTArrayList_ObjectNew' with type 'struct bbbrl_collections_TArrayListIterator_obj *(BBClass *, struct _m_untitled2_TArrayListS_obj *)'
 1510 | struct bbbrl_collections_TArrayListIterator_obj* _bbbrl_collections_TArrayListIterator_New_TTArrayList_ObjectNew(BBClass * clas,struct _m_untitled2_TArrayListS_obj* bbt_list2);
      |                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1659:47: error: conflicting types for 'bbbrl_collections_TArrayListIterator_Current_m'; have 'struct _m_untitled2_TTreeMapSS_obj * (*)(struct bbbrl_collections_TArrayListIterator_obj *)'
 1659 | typedef struct _m_untitled2_TTreeMapSS_obj* (*bbbrl_collections_TArrayListIterator_Current_m)(struct bbbrl_collections_TArrayListIterator_obj*);
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1512:20: note: previous declaration of 'bbbrl_collections_TArrayListIterator_Current_m' with type 'bbbrl_collections_TArrayListIterator_Current_m' {aka 'BBString * (*)(struct bbbrl_collections_TArrayListIterator_obj *)'}
 1512 | typedef BBSTRING (*bbbrl_collections_TArrayListIterator_Current_m)(struct bbbrl_collections_TArrayListIterator_obj*);
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1660:37: error: conflicting types for '_bbbrl_collections_TArrayListIterator_Current'; have 'struct _m_untitled2_TTreeMapSS_obj *(struct bbbrl_collections_TArrayListIterator_obj *)'
 1660 | struct _m_untitled2_TTreeMapSS_obj* _bbbrl_collections_TArrayListIterator_Current(struct bbbrl_collections_TArrayListIterator_obj*);
      |                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1513:10: note: previous declaration of '_bbbrl_collections_TArrayListIterator_Current' with type 'BBString *(struct bbbrl_collections_TArrayListIterator_obj *)'
 1513 | BBSTRING _bbbrl_collections_TArrayListIterator_Current(struct bbbrl_collections_TArrayListIterator_obj*);
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1663:8: error: redefinition of 'struct BBClass_bbbrl_collections_TArrayListIterator'
 1663 | struct BBClass_bbbrl_collections_TArrayListIterator {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1516:8: note: originally defined here
 1516 | struct BBClass_bbbrl_collections_TArrayListIterator {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1682:8: error: redefinition of 'struct bbbrl_collections_TArrayListIterator_obj'
 1682 | struct bbbrl_collections_TArrayListIterator_obj {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1535:8: note: originally defined here
 1535 | struct bbbrl_collections_TArrayListIterator_obj {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1687:60: error: conflicting types for 'bbbrl_collections_TArrayListIterator'; have 'struct BBClass_bbbrl_collections_TArrayListIterator'
 1687 | extern struct BBClass_bbbrl_collections_TArrayListIterator bbbrl_collections_TArrayListIterator;
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1540:60: note: previous declaration of 'bbbrl_collections_TArrayListIterator' with type 'struct BBClass_bbbrl_collections_TArrayListIterator'
 1540 | extern struct BBClass_bbbrl_collections_TArrayListIterator bbbrl_collections_TArrayListIterator;
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1734:8: error: redefinition of 'struct BBClass_bbbrl_collections_TArraySort'
 1734 | struct BBClass_bbbrl_collections_TArraySort {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1558:8: note: originally defined here
 1558 | struct BBClass_bbbrl_collections_TArraySort {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1759:8: error: redefinition of 'struct bbbrl_collections_TArraySort_obj'
 1759 | struct bbbrl_collections_TArraySort_obj {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1583:8: note: originally defined here
 1583 | struct bbbrl_collections_TArraySort_obj {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1762:52: error: conflicting types for 'bbbrl_collections_TArraySort'; have 'struct BBClass_bbbrl_collections_TArraySort'
 1762 | extern struct BBClass_bbbrl_collections_TArraySort bbbrl_collections_TArraySort;
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1586:52: note: previous declaration of 'bbbrl_collections_TArraySort' with type 'struct BBClass_bbbrl_collections_TArraySort'
 1586 | extern struct BBClass_bbbrl_collections_TArraySort bbbrl_collections_TArraySort;
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1763:6: error: conflicting types for '_bbbrl_collections_TComparatorArraySort_New_TIComparator'; have 'void(struct bbbrl_collections_TComparatorArraySort_obj *, struct bbbrl_blitz_IComparator_obj *)'
 1763 | void _bbbrl_collections_TComparatorArraySort_New_TIComparator(struct bbbrl_collections_TComparatorArraySort_obj* o,struct bbbrl_blitz_IComparator_obj* bbt_comparator4);
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1587:6: note: previous declaration of '_bbbrl_collections_TComparatorArraySort_New_TIComparator' with type 'void(struct bbbrl_collections_TComparatorArraySort_obj *, struct _m_untitled2_IComparatorS_obj *)'
 1587 | void _bbbrl_collections_TComparatorArraySort_New_TIComparator(struct bbbrl_collections_TComparatorArraySort_obj* o,struct _m_untitled2_IComparatorS_obj* bbt_comparator3);
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1764:52: error: conflicting types for '_bbbrl_collections_TComparatorArraySort_New_TIComparator_ObjectNew'; have 'struct bbbrl_collections_TComparatorArraySort_obj *(BBClass *, struct bbbrl_blitz_IComparator_obj *)'
 1764 | struct bbbrl_collections_TComparatorArraySort_obj* _bbbrl_collections_TComparatorArraySort_New_TIComparator_ObjectNew(BBClass * clas,struct bbbrl_blitz_IComparator_obj* bbt_comparator4);
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1588:52: note: previous declaration of '_bbbrl_collections_TComparatorArraySort_New_TIComparator_ObjectNew' with type 'struct bbbrl_collections_TComparatorArraySort_obj *(BBClass *, struct _m_untitled2_IComparatorS_obj *)'
 1588 | struct bbbrl_collections_TComparatorArraySort_obj* _bbbrl_collections_TComparatorArraySort_New_TIComparator_ObjectNew(BBClass * clas,struct _m_untitled2_IComparatorS_obj* bbt_comparator3);
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1768:8: error: redefinition of 'struct BBClass_bbbrl_collections_TComparatorArraySort'
 1768 | struct BBClass_bbbrl_collections_TComparatorArraySort {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1592:8: note: originally defined here
 1592 | struct BBClass_bbbrl_collections_TComparatorArraySort {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1793:8: error: redefinition of 'struct bbbrl_collections_TComparatorArraySort_obj'
 1793 | struct bbbrl_collections_TComparatorArraySort_obj {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1617:8: note: originally defined here
 1617 | struct bbbrl_collections_TComparatorArraySort_obj {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1797:62: error: conflicting types for 'bbbrl_collections_TComparatorArraySort'; have 'struct BBClass_bbbrl_collections_TComparatorArraySort'
 1797 | extern struct BBClass_bbbrl_collections_TComparatorArraySort bbbrl_collections_TComparatorArraySort;
      |                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1621:62: note: previous declaration of 'bbbrl_collections_TComparatorArraySort' with type 'struct BBClass_bbbrl_collections_TComparatorArraySort'
 1621 | extern struct BBClass_bbbrl_collections_TComparatorArraySort bbbrl_collections_TComparatorArraySort;
      |                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c: In function '__m_untitled2_TArrayListS_Sort_TIComparator':
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:2781:55: error: 'struct BBClass_bbbrl_collections_TComparatorArraySort' has no member named 'm_Sort_aSiii'
 2781 |                 bbbrl_collections_TComparatorArraySort.m_Sort_aSiii((struct bbbrl_collections_TArraySort_obj*)(_bbbrl_collections_TComparatorArraySort_New_TIComparator_ObjectNew((struct bbbrl_collections_TComparatorArraySort_obj*)&bbbrl_collections_TComparatorArraySort,(struct _m_untitled2_IComparatorS_obj*)bbt_comparator)),o->__m_untitled2_tarraylists_data ,0,(o->__m_untitled2_tarraylists_size -1),bbt_depth);
      |                                                       ^
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:2783:45: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_Sort_aSiii'
 2783 |                 bbbrl_collections_TArraySort.m_Sort_aSiii((struct bbbrl_collections_TArraySort_obj*)((struct bbbrl_collections_TArraySort_obj*)bbObjectAtomicNew((BBClass *)&bbbrl_collections_TArraySort)),o->__m_untitled2_tarraylists_data ,0,(o->__m_untitled2_tarraylists_size -1),bbt_depth);
      |                                             ^
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c: At top level:
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5234:6: error: conflicting types for '_bbbrl_collections_TArrayListIterator_New_TTArrayList'; have 'void(struct bbbrl_collections_TArrayListIterator_obj *, struct _m_untitled2_TArrayListS_obj *)'
 5234 | void _bbbrl_collections_TArrayListIterator_New_TTArrayList(struct bbbrl_collections_TArrayListIterator_obj* o,struct _m_untitled2_TArrayListS_obj* bbt_list2) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1509:6: note: previous declaration of '_bbbrl_collections_TArrayListIterator_New_TTArrayList' with type 'void(struct bbbrl_collections_TArrayListIterator_obj *, struct _m_untitled2_TArrayListS_obj *)'
 1509 | void _bbbrl_collections_TArrayListIterator_New_TTArrayList(struct bbbrl_collections_TArrayListIterator_obj* o,struct _m_untitled2_TArrayListS_obj* bbt_list2);
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5241:50: error: conflicting types for '_bbbrl_collections_TArrayListIterator_New_TTArrayList_ObjectNew'; have 'struct bbbrl_collections_TArrayListIterator_obj *(BBClass *, struct _m_untitled2_TArrayListS_obj *)'
 5241 | struct bbbrl_collections_TArrayListIterator_obj* _bbbrl_collections_TArrayListIterator_New_TTArrayList_ObjectNew(BBClass * clas,struct _m_untitled2_TArrayListS_obj* bbt_list2) {
      |                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1510:50: note: previous declaration of '_bbbrl_collections_TArrayListIterator_New_TTArrayList_ObjectNew' with type 'struct bbbrl_collections_TArrayListIterator_obj *(BBClass *, struct _m_untitled2_TArrayListS_obj *)'
 1510 | struct bbbrl_collections_TArrayListIterator_obj* _bbbrl_collections_TArrayListIterator_New_TTArrayList_ObjectNew(BBClass * clas,struct _m_untitled2_TArrayListS_obj* bbt_list2);
      |                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5246:6: error: conflicting types for '_bbbrl_collections_TArrayListIterator_New'; have 'void(struct bbbrl_collections_TArrayListIterator_obj *)'
 5246 | void _bbbrl_collections_TArrayListIterator_New(struct bbbrl_collections_TArrayListIterator_obj* o) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1658:6: note: previous declaration of '_bbbrl_collections_TArrayListIterator_New' with type 'void(struct bbbrl_collections_TArrayListIterator_obj *)'
 1658 | void _bbbrl_collections_TArrayListIterator_New(struct bbbrl_collections_TArrayListIterator_obj* o);
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5252:10: error: conflicting types for '_bbbrl_collections_TArrayListIterator_Current'; have 'BBString *(struct bbbrl_collections_TArrayListIterator_obj *)'
 5252 | BBSTRING _bbbrl_collections_TArrayListIterator_Current(struct bbbrl_collections_TArrayListIterator_obj* o){
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1513:10: note: previous declaration of '_bbbrl_collections_TArrayListIterator_Current' with type 'BBString *(struct bbbrl_collections_TArrayListIterator_obj *)'
 1513 | BBSTRING _bbbrl_collections_TArrayListIterator_Current(struct bbbrl_collections_TArrayListIterator_obj*);
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5255:7: error: conflicting types for '_bbbrl_collections_TArrayListIterator_MoveNext'; have 'BBINT(struct bbbrl_collections_TArrayListIterator_obj *)' {aka 'int(struct bbbrl_collections_TArrayListIterator_obj *)'}
 5255 | BBINT _bbbrl_collections_TArrayListIterator_MoveNext(struct bbbrl_collections_TArrayListIterator_obj* o){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1662:7: note: previous declaration of '_bbbrl_collections_TArrayListIterator_MoveNext' with type 'BBINT(struct bbbrl_collections_TArrayListIterator_obj *)' {aka 'int(struct bbbrl_collections_TArrayListIterator_obj *)'}
 1662 | BBINT _bbbrl_collections_TArrayListIterator_MoveNext(struct bbbrl_collections_TArrayListIterator_obj*);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c: In function '_bbbrl_collections_TArrayListIterator_MoveNext':
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5257:113: error: 'struct _m_untitled2_TArrayListTTTreeMap_obj' has no member named '__m_untitled2_tarraylists_size'; did you mean '__m_untitled2_tarraylisttttreemap_size'?
 5257 |         return (o->_bbbrl_collections_tarraylistiterator_index <o->_bbbrl_collections_tarraylistiterator_list ->__m_untitled2_tarraylists_size );
      |                                                                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                                                                                 __m_untitled2_tarraylisttttreemap_size
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c: At top level:
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5325:53: error: conflicting types for 'bbbrl_collections_TArrayListIterator'; have 'struct BBClass_bbbrl_collections_TArrayListIterator'
 5325 | struct BBClass_bbbrl_collections_TArrayListIterator bbbrl_collections_TArrayListIterator={
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1540:60: note: previous declaration of 'bbbrl_collections_TArrayListIterator' with type 'struct BBClass_bbbrl_collections_TArrayListIterator'
 1540 | extern struct BBClass_bbbrl_collections_TArrayListIterator bbbrl_collections_TArrayListIterator;
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5344:6: error: conflicting types for '_bbbrl_collections_TArraySort_New'; have 'void(struct bbbrl_collections_TArraySort_obj *)'
 5344 | void _bbbrl_collections_TArraySort_New(struct bbbrl_collections_TArraySort_obj* o) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1717:6: note: previous declaration of '_bbbrl_collections_TArraySort_New' with type 'void(struct bbbrl_collections_TArraySort_obj *)'
 1717 | void _bbbrl_collections_TArraySort_New(struct bbbrl_collections_TArraySort_obj* o);
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5348:7: error: conflicting types for '_bbbrl_collections_TArraySort_DoCompare_SS'; have 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBString *, BBString *)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBString *, BBString *)'}
 5348 | BBINT _bbbrl_collections_TArraySort_DoCompare_SS(struct bbbrl_collections_TArraySort_obj* o,BBSTRING bbt_a,BBSTRING bbt_b){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1543:7: note: previous declaration of '_bbbrl_collections_TArraySort_DoCompare_SS' with type 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBString *, BBString *)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBString *, BBString *)'}
 1543 | BBINT _bbbrl_collections_TArraySort_DoCompare_SS(struct bbbrl_collections_TArraySort_obj*,BBSTRING,BBSTRING);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5351:7: error: conflicting types for '_bbbrl_collections_TArraySort_Sort_aSiii'; have 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int,  int)'}
 5351 | BBINT _bbbrl_collections_TArraySort_Sort_aSiii(struct bbbrl_collections_TArraySort_obj* o,BBARRAY bbt_array,BBINT bbt_low,BBINT bbt_high,BBINT bbt_depthLimit){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1545:7: note: previous declaration of '_bbbrl_collections_TArraySort_Sort_aSiii' with type 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int,  int)'}
 1545 | BBINT _bbbrl_collections_TArraySort_Sort_aSiii(struct bbbrl_collections_TArraySort_obj*,BBARRAY,BBINT,BBINT,BBINT);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c: In function '_bbbrl_collections_TArraySort_Sort_aSiii':
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5359:86: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_SwapIfGreater_aSii'; did you mean 'm_SwapIfGreater_aTTTreeMapii'?
 5359 |                                 ((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_SwapIfGreater_aSii((struct bbbrl_collections_TArraySort_obj*)o,bbt_array,bbt_low,bbt_high);
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
      |                                                                                      m_SwapIfGreater_aTTTreeMapii
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5363:86: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_SwapIfGreater_aSii'; did you mean 'm_SwapIfGreater_aTTTreeMapii'?
 5363 |                                 ((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_SwapIfGreater_aSii((struct bbbrl_collections_TArraySort_obj*)o,bbt_array,bbt_low,(bbt_high-1));
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
      |                                                                                      m_SwapIfGreater_aTTTreeMapii
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5364:86: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_SwapIfGreater_aSii'; did you mean 'm_SwapIfGreater_aTTTreeMapii'?
 5364 |                                 ((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_SwapIfGreater_aSii((struct bbbrl_collections_TArraySort_obj*)o,bbt_array,bbt_low,bbt_high);
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
      |                                                                                      m_SwapIfGreater_aTTTreeMapii
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5365:86: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_SwapIfGreater_aSii'; did you mean 'm_SwapIfGreater_aTTTreeMapii'?
 5365 |                                 ((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_SwapIfGreater_aSii((struct bbbrl_collections_TArraySort_obj*)o,bbt_array,(bbt_high-1),bbt_high);
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
      |                                                                                      m_SwapIfGreater_aTTTreeMapii
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5368:78: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_InsertionSort_aSii'; did you mean 'm_InsertionSort_aTTTreeMapii'?
 5368 |                         ((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_InsertionSort_aSii((struct bbbrl_collections_TArraySort_obj*)o,bbt_array,bbt_low,bbt_high);
      |                                                                              ^~~~~~~~~~~~~~~~~~~~
      |                                                                              m_InsertionSort_aTTTreeMapii
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5372:76: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_HeapSort_aSii'
 5372 |                         ((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_HeapSort_aSii((struct bbbrl_collections_TArraySort_obj*)o,bbt_array,bbt_low,bbt_high);
      |                                                                            ^~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5376:86: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_PickPivotAndPartition_aSii'; did you mean 'm_PickPivotAndPartition_aTTTreeMapii'?
 5376 |                 BBINT bbt_pivot=((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_PickPivotAndPartition_aSii((struct bbbrl_collections_TArraySort_obj*)o,bbt_array,bbt_low,bbt_high);
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                                                      m_PickPivotAndPartition_aTTTreeMapii
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5377:68: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_Sort_aSiii'
 5377 |                 ((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_Sort_aSiii((struct bbbrl_collections_TArraySort_obj*)o,bbt_array,(bbt_pivot+1),bbt_high,bbt_depthLimit);
      |                                                                    ^~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c: At top level:
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5382:7: error: conflicting types for '_bbbrl_collections_TArraySort_SwapIfGreater_aSii'; have 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 5382 | BBINT _bbbrl_collections_TArraySort_SwapIfGreater_aSii(struct bbbrl_collections_TArraySort_obj* o,BBARRAY bbt_array,BBINT bbt_a,BBINT bbt_b){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1547:7: note: previous declaration of '_bbbrl_collections_TArraySort_SwapIfGreater_aSii' with type 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 1547 | BBINT _bbbrl_collections_TArraySort_SwapIfGreater_aSii(struct bbbrl_collections_TArraySort_obj*,BBARRAY,BBINT,BBINT);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c: In function '_bbbrl_collections_TArraySort_SwapIfGreater_aSii':
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5384:71: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_DoCompare_SS'
 5384 |                 if(((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_DoCompare_SS((struct bbbrl_collections_TArraySort_obj*)o,((BBSTRING*)BBARRAYDATA(bbt_array,1))[((BBUINT)bbt_a)],((BBSTRING*)BBARRAYDATA(bbt_array,1))[((BBUINT)bbt_b)])>0){
      |                                                                       ^~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c: At top level:
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5392:7: error: conflicting types for '_bbbrl_collections_TArraySort_Swap_aSii'; have 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 5392 | BBINT _bbbrl_collections_TArraySort_Swap_aSii(struct bbbrl_collections_TArraySort_obj* o,BBARRAY bbt_array,BBINT bbt_a,BBINT bbt_b){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1549:7: note: previous declaration of '_bbbrl_collections_TArraySort_Swap_aSii' with type 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 1549 | BBINT _bbbrl_collections_TArraySort_Swap_aSii(struct bbbrl_collections_TArraySort_obj*,BBARRAY,BBINT,BBINT);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5400:7: error: conflicting types for '_bbbrl_collections_TArraySort_InsertionSort_aSii'; have 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 5400 | BBINT _bbbrl_collections_TArraySort_InsertionSort_aSii(struct bbbrl_collections_TArraySort_obj* o,BBARRAY bbt_array,BBINT bbt_low,BBINT bbt_high){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1551:7: note: previous declaration of '_bbbrl_collections_TArraySort_InsertionSort_aSii' with type 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 1551 | BBINT _bbbrl_collections_TArraySort_InsertionSort_aSii(struct bbbrl_collections_TArraySort_obj*,BBARRAY,BBINT,BBINT);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c: In function '_bbbrl_collections_TArraySort_InsertionSort_aSii':
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5407:103: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_DoCompare_SS'
 5407 |                         while((bbt_n>=bbt_low) && (((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_DoCompare_SS((struct bbbrl_collections_TArraySort_obj*)o,bbt_tmp,((BBSTRING*)BBARRAYDATA(bbt_array,1))[((BBUINT)bbt_n)])<0)){
      |                                                                                                       ^~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c: At top level:
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5416:7: error: conflicting types for '_bbbrl_collections_TArraySort_HeapSort_aSii'; have 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 5416 | BBINT _bbbrl_collections_TArraySort_HeapSort_aSii(struct bbbrl_collections_TArraySort_obj* o,BBARRAY bbt_array,BBINT bbt_low,BBINT bbt_high){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1553:7: note: previous declaration of '_bbbrl_collections_TArraySort_HeapSort_aSii' with type 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 1553 | BBINT _bbbrl_collections_TArraySort_HeapSort_aSii(struct bbbrl_collections_TArraySort_obj*,BBARRAY,BBINT,BBINT);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c: In function '_bbbrl_collections_TArraySort_HeapSort_aSii':
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5420:68: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_DownHeap_aSiii'
 5420 |                 ((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_DownHeap_aSiii((struct bbbrl_collections_TArraySort_obj*)o,bbt_array,bbt_i,bbt_n,bbt_low);
      |                                                                    ^~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5425:68: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_Swap_aSii'
 5425 |                 ((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_Swap_aSii((struct bbbrl_collections_TArraySort_obj*)o,bbt_array,bbt_low,((bbt_low+bbt_i)-1));
      |                                                                    ^~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5426:68: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_DownHeap_aSiii'
 5426 |                 ((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_DownHeap_aSiii((struct bbbrl_collections_TArraySort_obj*)o,bbt_array,1,(bbt_i-1),bbt_low);
      |                                                                    ^~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c: At top level:
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5431:7: error: conflicting types for '_bbbrl_collections_TArraySort_DownHeap_aSiii'; have 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int,  int)'}
 5431 | BBINT _bbbrl_collections_TArraySort_DownHeap_aSiii(struct bbbrl_collections_TArraySort_obj* o,BBARRAY bbt_array,BBINT bbt_i,BBINT bbt_n,BBINT bbt_low){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1555:7: note: previous declaration of '_bbbrl_collections_TArraySort_DownHeap_aSiii' with type 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int,  int)'}
 1555 | BBINT _bbbrl_collections_TArraySort_DownHeap_aSiii(struct bbbrl_collections_TArraySort_obj*,BBARRAY,BBINT,BBINT,BBINT);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c: In function '_bbbrl_collections_TArraySort_DownHeap_aSiii':
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5436:93: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_DoCompare_SS'
 5436 |                 if((bbt_child<bbt_n) && (((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_DoCompare_SS((struct bbbrl_collections_TArraySort_obj*)o,((BBSTRING*)BBARRAYDATA(bbt_array,1))[((BBUINT)((bbt_low+bbt_child)-1))],((BBSTRING*)BBARRAYDATA(bbt_array,1))[((BBUINT)(bbt_low+bbt_child))])<0)){
      |                                                                                             ^~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5439:71: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_DoCompare_SS'
 5439 |                 if(((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_DoCompare_SS((struct bbbrl_collections_TArraySort_obj*)o,bbt_down,((BBSTRING*)BBARRAYDATA(bbt_array,1))[((BBUINT)((bbt_low+bbt_child)-1))])>=0){
      |                                                                       ^~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c: At top level:
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5448:7: error: conflicting types for '_bbbrl_collections_TArraySort_PickPivotAndPartition_aSii'; have 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 5448 | BBINT _bbbrl_collections_TArraySort_PickPivotAndPartition_aSii(struct bbbrl_collections_TArraySort_obj* o,BBARRAY bbt_array,BBINT bbt_low,BBINT bbt_high){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1557:7: note: previous declaration of '_bbbrl_collections_TArraySort_PickPivotAndPartition_aSii' with type 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 1557 | BBINT _bbbrl_collections_TArraySort_PickPivotAndPartition_aSii(struct bbbrl_collections_TArraySort_obj*,BBARRAY,BBINT,BBINT);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c: In function '_bbbrl_collections_TArraySort_PickPivotAndPartition_aSii':
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5450:62: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_SwapIfGreater_aSii'; did you mean 'm_SwapIfGreater_aTTTreeMapii'?
 5450 |         ((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_SwapIfGreater_aSii((struct bbbrl_collections_TArraySort_obj*)o,bbt_array,bbt_low,bbt_middle);
      |                                                              ^~~~~~~~~~~~~~~~~~~~
      |                                                              m_SwapIfGreater_aTTTreeMapii
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5451:62: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_SwapIfGreater_aSii'; did you mean 'm_SwapIfGreater_aTTTreeMapii'?
 5451 |         ((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_SwapIfGreater_aSii((struct bbbrl_collections_TArraySort_obj*)o,bbt_array,bbt_low,bbt_high);
      |                                                              ^~~~~~~~~~~~~~~~~~~~
      |                                                              m_SwapIfGreater_aTTTreeMapii
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5452:62: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_SwapIfGreater_aSii'; did you mean 'm_SwapIfGreater_aTTTreeMapii'?
 5452 |         ((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_SwapIfGreater_aSii((struct bbbrl_collections_TArraySort_obj*)o,bbt_array,bbt_middle,bbt_high);
      |                                                              ^~~~~~~~~~~~~~~~~~~~
      |                                                              m_SwapIfGreater_aTTTreeMapii
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5454:60: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_Swap_aSii'
 5454 |         ((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_Swap_aSii((struct bbbrl_collections_TArraySort_obj*)o,bbt_array,bbt_middle,(bbt_high-1));
      |                                                            ^~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5459:74: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_DoCompare_SS'
 5459 |                 while(((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_DoCompare_SS((struct bbbrl_collections_TArraySort_obj*)o,((BBSTRING*)BBARRAYDATA(bbt_array,1))[((BBUINT)bbt_lft)],bbt_pivot)<0){
      |                                                                          ^~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5463:74: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_DoCompare_SS'
 5463 |                 while(((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_DoCompare_SS((struct bbbrl_collections_TArraySort_obj*)o,bbt_pivot,((BBSTRING*)BBARRAYDATA(bbt_array,1))[((BBUINT)bbt_rgt)])<0){
      |                                                                          ^~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5469:68: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_Swap_aSii'
 5469 |                 ((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_Swap_aSii((struct bbbrl_collections_TArraySort_obj*)o,bbt_array,bbt_lft,bbt_rgt);
      |                                                                    ^~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5471:60: error: 'struct BBClass_bbbrl_collections_TArraySort' has no member named 'm_Swap_aSii'
 5471 |         ((struct bbbrl_collections_TArraySort_obj*)o)->clas->m_Swap_aSii((struct bbbrl_collections_TArraySort_obj*)o,bbt_array,bbt_lft,(bbt_high-1));
      |                                                            ^~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c: At top level:
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5537:45: error: conflicting types for 'bbbrl_collections_TArraySort'; have 'struct BBClass_bbbrl_collections_TArraySort'
 5537 | struct BBClass_bbbrl_collections_TArraySort bbbrl_collections_TArraySort={
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1586:52: note: previous declaration of 'bbbrl_collections_TArraySort' with type 'struct BBClass_bbbrl_collections_TArraySort'
 1586 | extern struct BBClass_bbbrl_collections_TArraySort bbbrl_collections_TArraySort;
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5562:6: error: conflicting types for '_bbbrl_collections_TComparatorArraySort_New_TIComparator'; have 'void(struct bbbrl_collections_TComparatorArraySort_obj *, struct _m_untitled2_IComparatorS_obj *)'
 5562 | void _bbbrl_collections_TComparatorArraySort_New_TIComparator(struct bbbrl_collections_TComparatorArraySort_obj* o,struct _m_untitled2_IComparatorS_obj* bbt_comparator3) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1587:6: note: previous declaration of '_bbbrl_collections_TComparatorArraySort_New_TIComparator' with type 'void(struct bbbrl_collections_TComparatorArraySort_obj *, struct _m_untitled2_IComparatorS_obj *)'
 1587 | void _bbbrl_collections_TComparatorArraySort_New_TIComparator(struct bbbrl_collections_TComparatorArraySort_obj* o,struct _m_untitled2_IComparatorS_obj* bbt_comparator3);
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5568:52: error: conflicting types for '_bbbrl_collections_TComparatorArraySort_New_TIComparator_ObjectNew'; have 'struct bbbrl_collections_TComparatorArraySort_obj *(BBClass *, struct _m_untitled2_IComparatorS_obj *)'
 5568 | struct bbbrl_collections_TComparatorArraySort_obj* _bbbrl_collections_TComparatorArraySort_New_TIComparator_ObjectNew(BBClass * clas,struct _m_untitled2_IComparatorS_obj* bbt_comparator3) {
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1588:52: note: previous declaration of '_bbbrl_collections_TComparatorArraySort_New_TIComparator_ObjectNew' with type 'struct bbbrl_collections_TComparatorArraySort_obj *(BBClass *, struct _m_untitled2_IComparatorS_obj *)'
 1588 | struct bbbrl_collections_TComparatorArraySort_obj* _bbbrl_collections_TComparatorArraySort_New_TIComparator_ObjectNew(BBClass * clas,struct _m_untitled2_IComparatorS_obj* bbt_comparator3);
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5573:6: error: conflicting types for '_bbbrl_collections_TComparatorArraySort_New'; have 'void(struct bbbrl_collections_TComparatorArraySort_obj *)'
 5573 | void _bbbrl_collections_TComparatorArraySort_New(struct bbbrl_collections_TComparatorArraySort_obj* o) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1765:6: note: previous declaration of '_bbbrl_collections_TComparatorArraySort_New' with type 'void(struct bbbrl_collections_TComparatorArraySort_obj *)'
 1765 | void _bbbrl_collections_TComparatorArraySort_New(struct bbbrl_collections_TComparatorArraySort_obj* o);
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5578:7: error: conflicting types for '_bbbrl_collections_TComparatorArraySort_DoCompare_SS'; have 'BBINT(struct bbbrl_collections_TComparatorArraySort_obj *, BBString *, BBString *)' {aka 'int(struct bbbrl_collections_TComparatorArraySort_obj *, BBString *, BBString *)'}
 5578 | BBINT _bbbrl_collections_TComparatorArraySort_DoCompare_SS(struct bbbrl_collections_TComparatorArraySort_obj* o,BBSTRING bbt_a,BBSTRING bbt_b){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1591:7: note: previous declaration of '_bbbrl_collections_TComparatorArraySort_DoCompare_SS' with type 'BBINT(struct bbbrl_collections_TComparatorArraySort_obj *, BBString *, BBString *)' {aka 'int(struct bbbrl_collections_TComparatorArraySort_obj *, BBString *, BBString *)'}
 1591 | BBINT _bbbrl_collections_TComparatorArraySort_DoCompare_SS(struct bbbrl_collections_TComparatorArraySort_obj*,BBSTRING,BBSTRING);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5614:55: error: conflicting types for 'bbbrl_collections_TComparatorArraySort'; have 'struct BBClass_bbbrl_collections_TComparatorArraySort'
 5614 | struct BBClass_bbbrl_collections_TComparatorArraySort bbbrl_collections_TComparatorArraySort={
      |                                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1621:62: note: previous declaration of 'bbbrl_collections_TComparatorArraySort' with type 'struct BBClass_bbbrl_collections_TComparatorArraySort'
 1621 | extern struct BBClass_bbbrl_collections_TComparatorArraySort bbbrl_collections_TComparatorArraySort;
      |                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5775:6: error: conflicting types for '_bbbrl_collections_TArrayListIterator_New_TTArrayList'; have 'void(struct bbbrl_collections_TArrayListIterator_obj *, struct _m_untitled2_TArrayListTTTreeMap_obj *)'
 5775 | void _bbbrl_collections_TArrayListIterator_New_TTArrayList(struct bbbrl_collections_TArrayListIterator_obj* o,struct _m_untitled2_TArrayListTTTreeMap_obj* bbt_list4) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1509:6: note: previous declaration of '_bbbrl_collections_TArrayListIterator_New_TTArrayList' with type 'void(struct bbbrl_collections_TArrayListIterator_obj *, struct _m_untitled2_TArrayListS_obj *)'
 1509 | void _bbbrl_collections_TArrayListIterator_New_TTArrayList(struct bbbrl_collections_TArrayListIterator_obj* o,struct _m_untitled2_TArrayListS_obj* bbt_list2);
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5782:50: error: conflicting types for '_bbbrl_collections_TArrayListIterator_New_TTArrayList_ObjectNew'; have 'struct bbbrl_collections_TArrayListIterator_obj *(BBClass *, struct _m_untitled2_TArrayListTTTreeMap_obj *)'
 5782 | struct bbbrl_collections_TArrayListIterator_obj* _bbbrl_collections_TArrayListIterator_New_TTArrayList_ObjectNew(BBClass * clas,struct _m_untitled2_TArrayListTTTreeMap_obj* bbt_list4) {
      |                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1510:50: note: previous declaration of '_bbbrl_collections_TArrayListIterator_New_TTArrayList_ObjectNew' with type 'struct bbbrl_collections_TArrayListIterator_obj *(BBClass *, struct _m_untitled2_TArrayListS_obj *)'
 1510 | struct bbbrl_collections_TArrayListIterator_obj* _bbbrl_collections_TArrayListIterator_New_TTArrayList_ObjectNew(BBClass * clas,struct _m_untitled2_TArrayListS_obj* bbt_list2);
      |                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5787:6: error: conflicting types for '_bbbrl_collections_TArrayListIterator_New'; have 'void(struct bbbrl_collections_TArrayListIterator_obj *)'
 5787 | void _bbbrl_collections_TArrayListIterator_New(struct bbbrl_collections_TArrayListIterator_obj* o) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1658:6: note: previous declaration of '_bbbrl_collections_TArrayListIterator_New' with type 'void(struct bbbrl_collections_TArrayListIterator_obj *)'
 1658 | void _bbbrl_collections_TArrayListIterator_New(struct bbbrl_collections_TArrayListIterator_obj* o);
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5793:37: error: conflicting types for '_bbbrl_collections_TArrayListIterator_Current'; have 'struct _m_untitled2_TTreeMapSS_obj *(struct bbbrl_collections_TArrayListIterator_obj *)'
 5793 | struct _m_untitled2_TTreeMapSS_obj* _bbbrl_collections_TArrayListIterator_Current(struct bbbrl_collections_TArrayListIterator_obj* o){
      |                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1513:10: note: previous declaration of '_bbbrl_collections_TArrayListIterator_Current' with type 'BBString *(struct bbbrl_collections_TArrayListIterator_obj *)'
 1513 | BBSTRING _bbbrl_collections_TArrayListIterator_Current(struct bbbrl_collections_TArrayListIterator_obj*);
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5796:7: error: conflicting types for '_bbbrl_collections_TArrayListIterator_MoveNext'; have 'BBINT(struct bbbrl_collections_TArrayListIterator_obj *)' {aka 'int(struct bbbrl_collections_TArrayListIterator_obj *)'}
 5796 | BBINT _bbbrl_collections_TArrayListIterator_MoveNext(struct bbbrl_collections_TArrayListIterator_obj* o){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1662:7: note: previous declaration of '_bbbrl_collections_TArrayListIterator_MoveNext' with type 'BBINT(struct bbbrl_collections_TArrayListIterator_obj *)' {aka 'int(struct bbbrl_collections_TArrayListIterator_obj *)'}
 1662 | BBINT _bbbrl_collections_TArrayListIterator_MoveNext(struct bbbrl_collections_TArrayListIterator_obj*);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5800:23: error: redefinition of 'bbbrl_collections_TArrayListIterator_scope'
 5800 | struct BBDebugScope_6 bbbrl_collections_TArrayListIterator_scope ={
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5259:23: note: previous definition of 'bbbrl_collections_TArrayListIterator_scope' with type 'struct BBDebugScope_6'
 5259 | struct BBDebugScope_6 bbbrl_collections_TArrayListIterator_scope ={
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5845:8: error: redefinition of 'struct bbbrl_collections_TArrayListIterator_vdef'
 5845 | struct bbbrl_collections_TArrayListIterator_vdef {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5304:8: note: originally defined here
 5304 | struct bbbrl_collections_TArrayListIterator_vdef {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5849:34: error: redefinition of 'bbbrl_collections_TArrayListIterator_ifc_offsets'
 5849 | static struct BBInterfaceOffsets bbbrl_collections_TArrayListIterator_ifc_offsets[] = {
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5308:34: note: previous definition of 'bbbrl_collections_TArrayListIterator_ifc_offsets' with type 'struct BBInterfaceOffsets[1]'
 5308 | static struct BBInterfaceOffsets bbbrl_collections_TArrayListIterator_ifc_offsets[] = {
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5853:50: error: conflicting types for 'bbbrl_collections_TArrayListIterator_ifc_vtable'; have 'struct bbbrl_collections_TArrayListIterator_vdef'
 5853 | struct bbbrl_collections_TArrayListIterator_vdef bbbrl_collections_TArrayListIterator_ifc_vtable = {
      |                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5312:50: note: previous definition of 'bbbrl_collections_TArrayListIterator_ifc_vtable' with type 'struct bbbrl_collections_TArrayListIterator_vdef'
 5312 | struct bbbrl_collections_TArrayListIterator_vdef bbbrl_collections_TArrayListIterator_ifc_vtable = {
      |                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5860:25: error: redefinition of 'bbbrl_collections_TArrayListIterator_itable'
 5860 | struct BBInterfaceTable bbbrl_collections_TArrayListIterator_itable = {
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5319:25: note: previous definition of 'bbbrl_collections_TArrayListIterator_itable' with type 'struct BBInterfaceTable'
 5319 | struct BBInterfaceTable bbbrl_collections_TArrayListIterator_itable = {
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5866:53: error: conflicting types for 'bbbrl_collections_TArrayListIterator'; have 'struct BBClass_bbbrl_collections_TArrayListIterator'
 5866 | struct BBClass_bbbrl_collections_TArrayListIterator bbbrl_collections_TArrayListIterator={
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1540:60: note: previous declaration of 'bbbrl_collections_TArrayListIterator' with type 'struct BBClass_bbbrl_collections_TArrayListIterator'
 1540 | extern struct BBClass_bbbrl_collections_TArrayListIterator bbbrl_collections_TArrayListIterator;
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5927:6: error: conflicting types for '_bbbrl_collections_TArraySort_New'; have 'void(struct bbbrl_collections_TArraySort_obj *)'
 5927 | void _bbbrl_collections_TArraySort_New(struct bbbrl_collections_TArraySort_obj* o) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1717:6: note: previous declaration of '_bbbrl_collections_TArraySort_New' with type 'void(struct bbbrl_collections_TArraySort_obj *)'
 1717 | void _bbbrl_collections_TArraySort_New(struct bbbrl_collections_TArraySort_obj* o);
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5931:7: error: conflicting types for '_bbbrl_collections_TArraySort_DoCompare_TTTreeMapTTTreeMap'; have 'BBINT(struct bbbrl_collections_TArraySort_obj *, struct _m_untitled2_TTreeMapSS_obj *, struct _m_untitled2_TTreeMapSS_obj *)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, struct _m_untitled2_TTreeMapSS_obj *, struct _m_untitled2_TTreeMapSS_obj *)'}
 5931 | BBINT _bbbrl_collections_TArraySort_DoCompare_TTTreeMapTTTreeMap(struct bbbrl_collections_TArraySort_obj* o,struct _m_untitled2_TTreeMapSS_obj* bbt_a,struct _m_untitled2_TTreeMapSS_obj* bbt_b){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1719:7: note: previous declaration of '_bbbrl_collections_TArraySort_DoCompare_TTTreeMapTTTreeMap' with type 'BBINT(struct bbbrl_collections_TArraySort_obj *, struct _m_untitled2_TTreeMapSS_obj *, struct _m_untitled2_TTreeMapSS_obj *)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, struct _m_untitled2_TTreeMapSS_obj *, struct _m_untitled2_TTreeMapSS_obj *)'}
 1719 | BBINT _bbbrl_collections_TArraySort_DoCompare_TTTreeMapTTTreeMap(struct bbbrl_collections_TArraySort_obj*,struct _m_untitled2_TTreeMapSS_obj*,struct _m_untitled2_TTreeMapSS_obj*);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5934:7: error: conflicting types for '_bbbrl_collections_TArraySort_Sort_aTTTreeMapiii'; have 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int,  int)'}
 5934 | BBINT _bbbrl_collections_TArraySort_Sort_aTTTreeMapiii(struct bbbrl_collections_TArraySort_obj* o,BBARRAY bbt_array,BBINT bbt_low,BBINT bbt_high,BBINT bbt_depthLimit){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1721:7: note: previous declaration of '_bbbrl_collections_TArraySort_Sort_aTTTreeMapiii' with type 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int,  int)'}
 1721 | BBINT _bbbrl_collections_TArraySort_Sort_aTTTreeMapiii(struct bbbrl_collections_TArraySort_obj*,BBARRAY,BBINT,BBINT,BBINT);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5965:7: error: conflicting types for '_bbbrl_collections_TArraySort_SwapIfGreater_aTTTreeMapii'; have 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 5965 | BBINT _bbbrl_collections_TArraySort_SwapIfGreater_aTTTreeMapii(struct bbbrl_collections_TArraySort_obj* o,BBARRAY bbt_array,BBINT bbt_a,BBINT bbt_b){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1723:7: note: previous declaration of '_bbbrl_collections_TArraySort_SwapIfGreater_aTTTreeMapii' with type 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 1723 | BBINT _bbbrl_collections_TArraySort_SwapIfGreater_aTTTreeMapii(struct bbbrl_collections_TArraySort_obj*,BBARRAY,BBINT,BBINT);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5975:7: error: conflicting types for '_bbbrl_collections_TArraySort_Swap_aTTTreeMapii'; have 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 5975 | BBINT _bbbrl_collections_TArraySort_Swap_aTTTreeMapii(struct bbbrl_collections_TArraySort_obj* o,BBARRAY bbt_array,BBINT bbt_a,BBINT bbt_b){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1725:7: note: previous declaration of '_bbbrl_collections_TArraySort_Swap_aTTTreeMapii' with type 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 1725 | BBINT _bbbrl_collections_TArraySort_Swap_aTTTreeMapii(struct bbbrl_collections_TArraySort_obj*,BBARRAY,BBINT,BBINT);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5983:7: error: conflicting types for '_bbbrl_collections_TArraySort_InsertionSort_aTTTreeMapii'; have 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 5983 | BBINT _bbbrl_collections_TArraySort_InsertionSort_aTTTreeMapii(struct bbbrl_collections_TArraySort_obj* o,BBARRAY bbt_array,BBINT bbt_low,BBINT bbt_high){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1727:7: note: previous declaration of '_bbbrl_collections_TArraySort_InsertionSort_aTTTreeMapii' with type 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 1727 | BBINT _bbbrl_collections_TArraySort_InsertionSort_aTTTreeMapii(struct bbbrl_collections_TArraySort_obj*,BBARRAY,BBINT,BBINT);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5999:7: error: conflicting types for '_bbbrl_collections_TArraySort_HeapSort_aTTTreeMapii'; have 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 5999 | BBINT _bbbrl_collections_TArraySort_HeapSort_aTTTreeMapii(struct bbbrl_collections_TArraySort_obj* o,BBARRAY bbt_array,BBINT bbt_low,BBINT bbt_high){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1729:7: note: previous declaration of '_bbbrl_collections_TArraySort_HeapSort_aTTTreeMapii' with type 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 1729 | BBINT _bbbrl_collections_TArraySort_HeapSort_aTTTreeMapii(struct bbbrl_collections_TArraySort_obj*,BBARRAY,BBINT,BBINT);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:6014:7: error: conflicting types for '_bbbrl_collections_TArraySort_DownHeap_aTTTreeMapiii'; have 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int,  int)'}
 6014 | BBINT _bbbrl_collections_TArraySort_DownHeap_aTTTreeMapiii(struct bbbrl_collections_TArraySort_obj* o,BBARRAY bbt_array,BBINT bbt_i,BBINT bbt_n,BBINT bbt_low){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1731:7: note: previous declaration of '_bbbrl_collections_TArraySort_DownHeap_aTTTreeMapiii' with type 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int,  int)'}
 1731 | BBINT _bbbrl_collections_TArraySort_DownHeap_aTTTreeMapiii(struct bbbrl_collections_TArraySort_obj*,BBARRAY,BBINT,BBINT,BBINT);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:6031:7: error: conflicting types for '_bbbrl_collections_TArraySort_PickPivotAndPartition_aTTTreeMapii'; have 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 6031 | BBINT _bbbrl_collections_TArraySort_PickPivotAndPartition_aTTTreeMapii(struct bbbrl_collections_TArraySort_obj* o,BBARRAY bbt_array,BBINT bbt_low,BBINT bbt_high){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1733:7: note: previous declaration of '_bbbrl_collections_TArraySort_PickPivotAndPartition_aTTTreeMapii' with type 'BBINT(struct bbbrl_collections_TArraySort_obj *, BBArray *, BBINT,  BBINT)' {aka 'int(struct bbbrl_collections_TArraySort_obj *, BBArray *, int,  int)'}
 1733 | BBINT _bbbrl_collections_TArraySort_PickPivotAndPartition_aTTTreeMapii(struct bbbrl_collections_TArraySort_obj*,BBARRAY,BBINT,BBINT);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:6057:23: error: redefinition of 'bbbrl_collections_TArraySort_scope'
 6057 | struct BBDebugScope_9 bbbrl_collections_TArraySort_scope ={
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5474:23: note: previous definition of 'bbbrl_collections_TArraySort_scope' with type 'struct BBDebugScope_9'
 5474 | struct BBDebugScope_9 bbbrl_collections_TArraySort_scope ={
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:6120:45: error: conflicting types for 'bbbrl_collections_TArraySort'; have 'struct BBClass_bbbrl_collections_TArraySort'
 6120 | struct BBClass_bbbrl_collections_TArraySort bbbrl_collections_TArraySort={
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1586:52: note: previous declaration of 'bbbrl_collections_TArraySort' with type 'struct BBClass_bbbrl_collections_TArraySort'
 1586 | extern struct BBClass_bbbrl_collections_TArraySort bbbrl_collections_TArraySort;
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:6145:6: error: conflicting types for '_bbbrl_collections_TComparatorArraySort_New_TIComparator'; have 'void(struct bbbrl_collections_TComparatorArraySort_obj *, struct bbbrl_blitz_IComparator_obj *)'
 6145 | void _bbbrl_collections_TComparatorArraySort_New_TIComparator(struct bbbrl_collections_TComparatorArraySort_obj* o,struct bbbrl_blitz_IComparator_obj* bbt_comparator4) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1587:6: note: previous declaration of '_bbbrl_collections_TComparatorArraySort_New_TIComparator' with type 'void(struct bbbrl_collections_TComparatorArraySort_obj *, struct _m_untitled2_IComparatorS_obj *)'
 1587 | void _bbbrl_collections_TComparatorArraySort_New_TIComparator(struct bbbrl_collections_TComparatorArraySort_obj* o,struct _m_untitled2_IComparatorS_obj* bbt_comparator3);
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:6151:52: error: conflicting types for '_bbbrl_collections_TComparatorArraySort_New_TIComparator_ObjectNew'; have 'struct bbbrl_collections_TComparatorArraySort_obj *(BBClass *, struct bbbrl_blitz_IComparator_obj *)'
 6151 | struct bbbrl_collections_TComparatorArraySort_obj* _bbbrl_collections_TComparatorArraySort_New_TIComparator_ObjectNew(BBClass * clas,struct bbbrl_blitz_IComparator_obj* bbt_comparator4) {
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1588:52: note: previous declaration of '_bbbrl_collections_TComparatorArraySort_New_TIComparator_ObjectNew' with type 'struct bbbrl_collections_TComparatorArraySort_obj *(BBClass *, struct _m_untitled2_IComparatorS_obj *)'
 1588 | struct bbbrl_collections_TComparatorArraySort_obj* _bbbrl_collections_TComparatorArraySort_New_TIComparator_ObjectNew(BBClass * clas,struct _m_untitled2_IComparatorS_obj* bbt_comparator3);
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:6156:6: error: conflicting types for '_bbbrl_collections_TComparatorArraySort_New'; have 'void(struct bbbrl_collections_TComparatorArraySort_obj *)'
 6156 | void _bbbrl_collections_TComparatorArraySort_New(struct bbbrl_collections_TComparatorArraySort_obj* o) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1765:6: note: previous declaration of '_bbbrl_collections_TComparatorArraySort_New' with type 'void(struct bbbrl_collections_TComparatorArraySort_obj *)'
 1765 | void _bbbrl_collections_TComparatorArraySort_New(struct bbbrl_collections_TComparatorArraySort_obj* o);
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:6161:7: error: conflicting types for '_bbbrl_collections_TComparatorArraySort_DoCompare_TTTreeMapTTTreeMap'; have 'BBINT(struct bbbrl_collections_TComparatorArraySort_obj *, struct _m_untitled2_TTreeMapSS_obj *, struct _m_untitled2_TTreeMapSS_obj *)' {aka 'int(struct bbbrl_collections_TComparatorArraySort_obj *, struct _m_untitled2_TTreeMapSS_obj *, struct _m_untitled2_TTreeMapSS_obj *)'}
 6161 | BBINT _bbbrl_collections_TComparatorArraySort_DoCompare_TTTreeMapTTTreeMap(struct bbbrl_collections_TComparatorArraySort_obj* o,struct _m_untitled2_TTreeMapSS_obj* bbt_a,struct _m_untitled2_TTreeMapSS_obj* bbt_b){
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1767:7: note: previous declaration of '_bbbrl_collections_TComparatorArraySort_DoCompare_TTTreeMapTTTreeMap' with type 'BBINT(struct bbbrl_collections_TComparatorArraySort_obj *, struct _m_untitled2_TTreeMapSS_obj *, struct _m_untitled2_TTreeMapSS_obj *)' {aka 'int(struct bbbrl_collections_TComparatorArraySort_obj *, struct _m_untitled2_TTreeMapSS_obj *, struct _m_untitled2_TTreeMapSS_obj *)'}
 1767 | BBINT _bbbrl_collections_TComparatorArraySort_DoCompare_TTTreeMapTTTreeMap(struct bbbrl_collections_TComparatorArraySort_obj*,struct _m_untitled2_TTreeMapSS_obj*,struct _m_untitled2_TTreeMapSS_obj*);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:6164:23: error: redefinition of 'bbbrl_collections_TComparatorArraySort_scope'
 6164 | struct BBDebugScope_4 bbbrl_collections_TComparatorArraySort_scope ={
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:5581:23: note: previous definition of 'bbbrl_collections_TComparatorArraySort_scope' with type 'struct BBDebugScope_4'
 5581 | struct BBDebugScope_4 bbbrl_collections_TComparatorArraySort_scope ={
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c:6197:55: error: conflicting types for 'bbbrl_collections_TComparatorArraySort'; have 'struct BBClass_bbbrl_collections_TComparatorArraySort'
 6197 | struct BBClass_bbbrl_collections_TComparatorArraySort bbbrl_collections_TComparatorArraySort={
      |                                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.h:1621:62: note: previous declaration of 'bbbrl_collections_TComparatorArraySort' with type 'struct BBClass_bbbrl_collections_TComparatorArraySort'
 1621 | extern struct BBClass_bbbrl_collections_TComparatorArraySort bbbrl_collections_TComparatorArraySort;
      |                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Build Error: failed to compile (1) D:/Programs/BlitzMax/tmp/.bmx/untitled2.bmx.console.release.win32.x64.c

Using latest of everything as far as I know.

Thanks!

thareh commented 1 year ago

It appears this last one happens when I create a TDoubleMap but does not use it, so it does not seem to be related to the nested modules issue.