Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generics in modules/import multiple layers #594

Closed
thareh opened this issue Oct 6, 2022 · 8 comments
Closed

Generics in modules/import multiple layers #594

thareh opened this issue Oct 6, 2022 · 8 comments

Comments

@thareh
Copy link
Contributor

thareh commented Oct 6, 2022

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

  • Operating System: Windows 11 (64-bit)
  • Output of bcc -v: 0.133
@GWRon
Copy link
Contributor

GWRon commented Oct 6, 2022 via email

@thareh
Copy link
Contributor Author

thareh commented Oct 6, 2022

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

@thareh
Copy link
Contributor Author

thareh commented Dec 12, 2022

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
Copy link
Contributor Author

thareh commented Apr 19, 2023

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
Copy link
Member

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
Copy link
Contributor Author

thareh commented Apr 19, 2023

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
Copy link
Contributor Author

thareh commented Apr 25, 2023

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
Copy link
Contributor Author

thareh commented Apr 25, 2023

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants