• R/O
  • SSH
  • HTTPS

jpl: Commit


Commit MetaInfo

Revision411 (tree)
Time2019-01-18 09:53:18
Authorjakobthomsen

Log Message

cleanup & paths in for

Change Summary

Incremental Difference

--- trunk/pragmatic/SDL_tests/SDL_GL_octree/SDL_GL_octree.c (revision 410)
+++ trunk/pragmatic/SDL_tests/SDL_GL_octree/SDL_GL_octree.c (revision 411)
@@ -1369,14 +1369,14 @@
13691369 unit QuarterSphereSolid$(mut OcTree ot, u8 level)
13701370 {
13711371 let u64 size = OcSize(level);
1372- let u64 x = OcSize(level);
1373- let u64 y = OcSize(level);
1374- let u64 z = OcSize(level);
1375- for x x
1372+ let u64 sx = OcSize(level);
1373+ let u64 sy = OcSize(level);
1374+ let u64 sz = OcSize(level);
1375+ for sx x
13761376 {
1377- for y y
1377+ for sy y
13781378 {
1379- for z z
1379+ for sz z
13801380 {
13811381 if lss<u64>(add<u64>(mul<u64>(x, x), add<u64>(mul<u64>(y, y), mul<u64>(z, z))), mul<u64>(size, size)) then
13821382 {
@@ -1390,14 +1390,14 @@
13901390 unit QuarterSphereHollow$(mut OcTree ot, u8 level)
13911391 {
13921392 let u64 size = OcSize(level);
1393- let u64 x = OcSize(level);
1394- let u64 y = OcSize(level);
1395- let u64 z = OcSize(level);
1396- for x x
1393+ let u64 sx = OcSize(level);
1394+ let u64 sy = OcSize(level);
1395+ let u64 sz = OcSize(level);
1396+ for sx x
13971397 {
1398- for y y
1398+ for sy y
13991399 {
1400- for z z
1400+ for sz z
14011401 {
14021402 if lss<u64>(add<u64>(mul<u64>(x, x), add<u64>(mul<u64>(y, y), mul<u64>(z, z))), mul<u64>(size, size)) then
14031403 {
@@ -1417,14 +1417,14 @@
14171417 let u64 halfsize = shiftr<u64>(size, 1);
14181418 let u64 halfsize1 = sub<u64>(halfsize, 1);
14191419 let mut OcTree ot = OcLeaf(0);
1420- let u64 x = OcSize(level);
1421- let u64 y = OcSize(level);
1422- let u64 z = OcSize(level);
1423- for x x
1420+ let u64 sx = OcSize(level);
1421+ let u64 sy = OcSize(level);
1422+ let u64 sz = OcSize(level);
1423+ for sx x
14241424 {
1425- for y y
1425+ for sy y
14261426 {
1427- for z z
1427+ for sz z
14281428 {
14291429 let i64 dx = sub<i64>(i64<u64>(x), i64<u64>(halfsize));
14301430 let i64 dy = sub<i64>(i64<u64>(y), i64<u64>(halfsize));
@@ -1446,14 +1446,14 @@
14461446 unit Corner$(mut OcTree ot, u8 level)
14471447 {
14481448 //let u64 size = OcSize(level);
1449- let u64 x = OcSize(level);
1450- let u64 y = OcSize(level);
1451- let u64 z = OcSize(level);
1452- for x x
1449+ let u64 sx = OcSize(level);
1450+ let u64 sy = OcSize(level);
1451+ let u64 sz = OcSize(level);
1452+ for sx x
14531453 {
1454- for y y
1454+ for sy y
14551455 {
1456- for z z
1456+ for sz z
14571457 {
14581458 //if equ<u64>(z, 0) then
14591459 if or(equ<u64>(z, 0), or(equ<u64>(y, 0), equ<u64>(x, 0))) then
--- trunk/pragmatic/SDL_tests/SDL_GL_octree/SDL_GL_octree_compiled.c (revision 410)
+++ trunk/pragmatic/SDL_tests/SDL_GL_octree/SDL_GL_octree_compiled.c (revision 411)
@@ -5464,30 +5464,30 @@
54645464 {
54655465 OcSize(&_size, &*level);
54665466 }
5467- uint64_t _x; memset(&_x, 0, sizeof(uint64_t));
5467+ uint64_t _sx; memset(&_sx, 0, sizeof(uint64_t));
54685468 {
5469- OcSize(&_x, &*level);
5469+ OcSize(&_sx, &*level);
54705470 }
5471- uint64_t _y; memset(&_y, 0, sizeof(uint64_t));
5471+ uint64_t _sy; memset(&_sy, 0, sizeof(uint64_t));
54725472 {
5473- OcSize(&_y, &*level);
5473+ OcSize(&_sy, &*level);
54745474 }
5475- uint64_t _z; memset(&_z, 0, sizeof(uint64_t));
5475+ uint64_t _sz; memset(&_sz, 0, sizeof(uint64_t));
54765476 {
5477- OcSize(&_z, &*level);
5477+ OcSize(&_sz, &*level);
54785478 }
54795479 {
5480- uint64_t _1 = _x;
5480+ uint64_t _1 = _sx;
54815481 uint64_t *x = &_1;
54825482 while((*x)--)
54835483 {
54845484 {
5485- uint64_t _2 = _y;
5485+ uint64_t _2 = _sy;
54865486 uint64_t *y = &_2;
54875487 while((*y)--)
54885488 {
54895489 {
5490- uint64_t _3 = _z;
5490+ uint64_t _3 = _sz;
54915491 uint64_t *z = &_3;
54925492 while((*z)--)
54935493 {
@@ -5555,9 +5555,9 @@
55555555 }
55565556 }
55575557 }
5558- _IGNORE_(_z);
5559- _IGNORE_(_y);
5560- _IGNORE_(_x);
5558+ _IGNORE_(_sz);
5559+ _IGNORE_(_sy);
5560+ _IGNORE_(_sx);
55615561 _IGNORE_(_size);
55625562 }
55635563 }
@@ -5569,30 +5569,30 @@
55695569 {
55705570 OcSize(&_size, &*level);
55715571 }
5572- uint64_t _x; memset(&_x, 0, sizeof(uint64_t));
5572+ uint64_t _sx; memset(&_sx, 0, sizeof(uint64_t));
55735573 {
5574- OcSize(&_x, &*level);
5574+ OcSize(&_sx, &*level);
55755575 }
5576- uint64_t _y; memset(&_y, 0, sizeof(uint64_t));
5576+ uint64_t _sy; memset(&_sy, 0, sizeof(uint64_t));
55775577 {
5578- OcSize(&_y, &*level);
5578+ OcSize(&_sy, &*level);
55795579 }
5580- uint64_t _z; memset(&_z, 0, sizeof(uint64_t));
5580+ uint64_t _sz; memset(&_sz, 0, sizeof(uint64_t));
55815581 {
5582- OcSize(&_z, &*level);
5582+ OcSize(&_sz, &*level);
55835583 }
55845584 {
5585- uint64_t _1 = _x;
5585+ uint64_t _1 = _sx;
55865586 uint64_t *x = &_1;
55875587 while((*x)--)
55885588 {
55895589 {
5590- uint64_t _2 = _y;
5590+ uint64_t _2 = _sy;
55915591 uint64_t *y = &_2;
55925592 while((*y)--)
55935593 {
55945594 {
5595- uint64_t _3 = _z;
5595+ uint64_t _3 = _sz;
55965596 uint64_t *z = &_3;
55975597 while((*z)--)
55985598 {
@@ -5713,9 +5713,9 @@
57135713 }
57145714 }
57155715 }
5716- _IGNORE_(_z);
5717- _IGNORE_(_y);
5718- _IGNORE_(_x);
5716+ _IGNORE_(_sz);
5717+ _IGNORE_(_sy);
5718+ _IGNORE_(_sx);
57195719 _IGNORE_(_size);
57205720 }
57215721 }
@@ -5748,30 +5748,30 @@
57485748 OcLeaf(&_ot, &_1);
57495749 _IGNORE_(_1);
57505750 }
5751- uint64_t _x; memset(&_x, 0, sizeof(uint64_t));
5751+ uint64_t _sx; memset(&_sx, 0, sizeof(uint64_t));
57525752 {
5753- OcSize(&_x, &*level);
5753+ OcSize(&_sx, &*level);
57545754 }
5755- uint64_t _y; memset(&_y, 0, sizeof(uint64_t));
5755+ uint64_t _sy; memset(&_sy, 0, sizeof(uint64_t));
57565756 {
5757- OcSize(&_y, &*level);
5757+ OcSize(&_sy, &*level);
57585758 }
5759- uint64_t _z; memset(&_z, 0, sizeof(uint64_t));
5759+ uint64_t _sz; memset(&_sz, 0, sizeof(uint64_t));
57605760 {
5761- OcSize(&_z, &*level);
5761+ OcSize(&_sz, &*level);
57625762 }
57635763 {
5764- uint64_t _1 = _x;
5764+ uint64_t _1 = _sx;
57655765 uint64_t *x = &_1;
57665766 while((*x)--)
57675767 {
57685768 {
5769- uint64_t _2 = _y;
5769+ uint64_t _2 = _sy;
57705770 uint64_t *y = &_2;
57715771 while((*y)--)
57725772 {
57735773 {
5774- uint64_t _3 = _z;
5774+ uint64_t _3 = _sz;
57755775 uint64_t *z = &_3;
57765776 while((*z)--)
57775777 {
@@ -5932,9 +5932,9 @@
59325932 }
59335933 }
59345934 OcTree$copy(&*_0, &_ot);
5935- _IGNORE_(_z);
5936- _IGNORE_(_y);
5937- _IGNORE_(_x);
5935+ _IGNORE_(_sz);
5936+ _IGNORE_(_sy);
5937+ _IGNORE_(_sx);
59385938 OcTree$dest(&_ot);
59395939 _IGNORE_(_halfsize1);
59405940 _IGNORE_(_halfsize);
@@ -5945,30 +5945,30 @@
59455945 void Corner$(void *const _0, struct OcTree *const ot, const uint8_t *const level)
59465946 {
59475947 {
5948- uint64_t _x; memset(&_x, 0, sizeof(uint64_t));
5948+ uint64_t _sx; memset(&_sx, 0, sizeof(uint64_t));
59495949 {
5950- OcSize(&_x, &*level);
5950+ OcSize(&_sx, &*level);
59515951 }
5952- uint64_t _y; memset(&_y, 0, sizeof(uint64_t));
5952+ uint64_t _sy; memset(&_sy, 0, sizeof(uint64_t));
59535953 {
5954- OcSize(&_y, &*level);
5954+ OcSize(&_sy, &*level);
59555955 }
5956- uint64_t _z; memset(&_z, 0, sizeof(uint64_t));
5956+ uint64_t _sz; memset(&_sz, 0, sizeof(uint64_t));
59575957 {
5958- OcSize(&_z, &*level);
5958+ OcSize(&_sz, &*level);
59595959 }
59605960 {
5961- uint64_t _1 = _x;
5961+ uint64_t _1 = _sx;
59625962 uint64_t *x = &_1;
59635963 while((*x)--)
59645964 {
59655965 {
5966- uint64_t _2 = _y;
5966+ uint64_t _2 = _sy;
59675967 uint64_t *y = &_2;
59685968 while((*y)--)
59695969 {
59705970 {
5971- uint64_t _3 = _z;
5971+ uint64_t _3 = _sz;
59725972 uint64_t *z = &_3;
59735973 while((*z)--)
59745974 {
@@ -6035,9 +6035,9 @@
60356035 }
60366036 }
60376037 }
6038- _IGNORE_(_z);
6039- _IGNORE_(_y);
6040- _IGNORE_(_x);
6038+ _IGNORE_(_sz);
6039+ _IGNORE_(_sy);
6040+ _IGNORE_(_sx);
60416041 }
60426042 }
60436043
--- trunk/pragmatic/compiler.compiled.c (revision 410)
+++ trunk/pragmatic/compiler.compiled.c (revision 411)
@@ -25303,943 +25303,955 @@
2530325303 break;
2530425304 }
2530525305 }
25306- struct stack/*nonempty_string*/ _to; memset(&_to, 0, sizeof(struct stack/*nonempty_string*/));
2530725306 {
25308- ParseIdOrGap$(&_to, &*streams, &*txtpos, &*level);
25309- }
25310- {
25311- struct nonempty_string _8; memset(&_8, 0, sizeof(struct nonempty_string));
25312- const struct stack/*nonempty_string*/ *_9 = &(_to);
25313- if(!(*_9).size)
25314- {
25315- {
25316- GenVar$(&_8, &*tmpnr);
25317- }
25307+ struct qtypepureid _8; memset(&_8, 0, sizeof(struct qtypepureid));
25308+ qtypepureid$copy(&_8, &(*container));
25309+ struct qtypepureid *container = &_8;
25310+ /*idpath ip*/ {
25311+ struct idpath _9; memset(&_9, 0, sizeof(struct idpath));
25312+ struct stack/*structdef*/ *_10 = &(*state).structs;
25313+ ParsePath$(&_9, &*streams, &*txtpos, &*level, &*sp, &*_10, &*tmpnr, &*container);
25314+ idpath$dest(&_9);
2531825315 }
25319- else
25316+ struct stack/*nonempty_string*/ _to; memset(&_to, 0, sizeof(struct stack/*nonempty_string*/));
2532025317 {
25321- const struct nonempty_string *to = (*_9).data;
25322- nonempty_string$copy(&_8, &(*to));
25318+ ParseIdOrGap$(&_to, &*streams, &*txtpos, &*level);
2532325319 }
25324- const struct nonempty_string *id = &_8;
25325- struct type_pure _containertype; memset(&_containertype, 0, sizeof(struct type_pure));
25326- type_pure$copy(&_containertype, &(*container).qt.type);
25327- const struct type_pure *_10 = &(_containertype);
25328- switch((*_10).type)
2532925320 {
25330- case 0: // struct stack/*type_pure_normal*/ type_pure_normal:
25321+ struct nonempty_string _9; memset(&_9, 0, sizeof(struct nonempty_string));
25322+ const struct stack/*nonempty_string*/ *_10 = &(_to);
25323+ if(!(*_10).size)
2533125324 {
25332- const struct type_pure_normal *containertype = ((*_10).type_pure_normal).data;
2533325325 {
25334- bool _13;
25326+ GenVar$(&_9, &*tmpnr);
25327+ }
25328+ }
25329+ else
25330+ {
25331+ const struct nonempty_string *to = (*_10).data;
25332+ nonempty_string$copy(&_9, &(*to));
25333+ }
25334+ const struct nonempty_string *id = &_9;
25335+ struct type_pure _containertype; memset(&_containertype, 0, sizeof(struct type_pure));
25336+ type_pure$copy(&_containertype, &(*container).qt.type);
25337+ const struct type_pure *_11 = &(_containertype);
25338+ switch((*_11).type)
25339+ {
25340+ case 0: // struct stack/*type_pure_normal*/ type_pure_normal:
25341+ {
25342+ const struct type_pure_normal *containertype = ((*_11).type_pure_normal).data;
2533525343 {
25336- const struct type_pure_prim *_14 = &(*containertype).prim;
25337- ispurestructprim(&_13, &*_14);
25338- }
25339- if(_13)
25340- {
25341- bool _15;
25344+ bool _14;
2534225345 {
25343- bool _16; memset(&_16, 0, sizeof(bool));
25346+ const struct type_pure_prim *_15 = &(*containertype).prim;
25347+ ispurestructprim(&_14, &*_15);
25348+ }
25349+ if(_14)
25350+ {
25351+ bool _16;
2534425352 {
25345- struct string _17; memset(&_17, 0, sizeof(struct string));
25346- init$fromliteral(&_17, "StreamIn", 8);
25347- struct string _18; memset(&_18, 0, sizeof(struct string));
25353+ bool _17; memset(&_17, 0, sizeof(bool));
2534825354 {
25349- const struct nonempty_string *_19 = &(*containertype).prim.name;
25350- nonempty_to_string(&_18, &*_19);
25355+ struct string _18; memset(&_18, 0, sizeof(struct string));
25356+ init$fromliteral(&_18, "StreamIn", 8);
25357+ struct string _19; memset(&_19, 0, sizeof(struct string));
25358+ {
25359+ const struct nonempty_string *_20 = &(*containertype).prim.name;
25360+ nonempty_to_string(&_19, &*_20);
25361+ }
25362+ strequ(&_17, &_18, &_19);
25363+ string$dest(&_19);
25364+ string$dest(&_18);
2535125365 }
25352- strequ(&_16, &_17, &_18);
25353- string$dest(&_18);
25354- string$dest(&_17);
25366+ not(&_16, &_17);
25367+ _IGNORE_(_17);
2535525368 }
25356- not(&_15, &_16);
25357- _IGNORE_(_16);
25358- }
25359- if(_15)
25360- {
25369+ if(_16)
2536125370 {
25362- const struct StreamOut *_17 = &(*streams).err;
25363- struct string _18; memset(&_18, 0, sizeof(struct string));
25364- init$fromliteral(&_18, "can't iterate over struct ", 26);
25365- PutStr(0 /* _16 */, &*_17, &_18);
25366- string$dest(&_18);
25371+ {
25372+ const struct StreamOut *_18 = &(*streams).err;
25373+ struct string _19; memset(&_19, 0, sizeof(struct string));
25374+ init$fromliteral(&_19, "can't iterate over struct ", 26);
25375+ PutStr(0 /* _17 */, &*_18, &_19);
25376+ string$dest(&_19);
25377+ }
25378+ {
25379+ const struct StreamOut *_19 = &(*streams).err;
25380+ const struct type_pure_prim *_20 = &(*containertype).prim;
25381+ EPrTypePurePrim(0 /* _18 */, &*_19, &*_20);
25382+ }
25383+ {
25384+ const struct StreamOut *_20 = &(*streams).err;
25385+ Fail$(0 /* _19 */, &*_20, &*txtpos);
25386+ }
2536725387 }
25388+ else
2536825389 {
25369- const struct StreamOut *_18 = &(*streams).err;
25370- const struct type_pure_prim *_19 = &(*containertype).prim;
25371- EPrTypePurePrim(0 /* _17 */, &*_18, &*_19);
25390+ {
25391+ struct nonempty_string _18; memset(&_18, 0, sizeof(struct nonempty_string));
25392+ {
25393+ uint8_t _19; memset(&_19, 0, sizeof(uint8_t));
25394+ _19 = 95;
25395+ struct string _20; memset(&_20, 0, sizeof(struct string));
25396+ {
25397+ nonempty_to_string(&_20, &*id);
25398+ }
25399+ nonempty_string(&_18, &_19, &_20);
25400+ string$dest(&_20);
25401+ _IGNORE_(_19);
25402+ }
25403+ ParseForBlockStream$(0 /* _17 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &*totality, &*action, &*self, &*reduced_ids, &*container, &_18);
25404+ nonempty_string$dest(&_18);
25405+ }
2537225406 }
25373- {
25374- const struct StreamOut *_19 = &(*streams).err;
25375- Fail$(0 /* _18 */, &*_19, &*txtpos);
25376- }
2537725407 }
2537825408 else
2537925409 {
2538025410 {
25381- struct nonempty_string _17; memset(&_17, 0, sizeof(struct nonempty_string));
25411+ struct type_pure _16; memset(&_16, 0, sizeof(struct type_pure));
2538225412 {
25383- uint8_t _18; memset(&_18, 0, sizeof(uint8_t));
25384- _18 = 95;
25385- struct string _19; memset(&_19, 0, sizeof(struct string));
25386- {
25387- nonempty_to_string(&_19, &*id);
25388- }
25389- nonempty_string(&_17, &_18, &_19);
25390- string$dest(&_19);
25391- _IGNORE_(_18);
25413+ const struct type_pure_prim *_17 = &(*containertype).prim;
25414+ type_pure_normal(&_16, &*_17);
2539225415 }
25393- ParseForBlockStream$(0 /* _16 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &*totality, &*action, &*self, &*reduced_ids, &*container, &_17);
25394- nonempty_string$dest(&_17);
25416+ struct string _17; memset(&_17, 0, sizeof(struct string));
25417+ {
25418+ nonempty_to_string(&_17, &*id);
25419+ }
25420+ ParseForBlock$(0 /* _15 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &*totality, &*action, &*self, &*reduced_ids, &_16, &*container, &_17);
25421+ string$dest(&_17);
25422+ type_pure$dest(&_16);
2539525423 }
2539625424 }
2539725425 }
25398- else
25426+ break;
25427+ }
25428+ case 1: // struct stack/*type_pure_wrapped*/ type_pure_wrapped:
25429+ {
25430+ const struct type_pure_wrapped *containertype = ((*_11).type_pure_wrapped).data;
2539925431 {
25432+ struct qtypepureid _const_container; memset(&_const_container, 0, sizeof(struct qtypepureid));
2540025433 {
25401- struct type_pure _15; memset(&_15, 0, sizeof(struct type_pure));
25434+ struct qtypepure _14; memset(&_14, 0, sizeof(struct qtypepure));
2540225435 {
25403- const struct type_pure_prim *_16 = &(*containertype).prim;
25404- type_pure_normal(&_15, &*_16);
25436+ struct type_pure _15; memset(&_15, 0, sizeof(struct type_pure));
25437+ {
25438+ const struct container_type *_16 = &(*containertype).which;
25439+ const struct type_pure_prim *_17 = &(*containertype).subtype;
25440+ type_pure_wrapped(&_15, &*_16, &*_17);
25441+ }
25442+ constqtp(&_14, &_15);
25443+ type_pure$dest(&_15);
2540525444 }
25406- struct string _16; memset(&_16, 0, sizeof(struct string));
25445+ struct nonempty_string _15; memset(&_15, 0, sizeof(struct nonempty_string));
2540725446 {
25408- nonempty_to_string(&_16, &*id);
25447+ uint8_t _16; memset(&_16, 0, sizeof(uint8_t));
25448+ _16 = 42;
25449+ struct string _17; memset(&_17, 0, sizeof(struct string));
25450+ {
25451+ struct nonempty_string _18; memset(&_18, 0, sizeof(struct nonempty_string));
25452+ {
25453+ GenVar$(&_18, &*tmpnr);
25454+ }
25455+ nonempty_to_string(&_17, &_18);
25456+ nonempty_string$dest(&_18);
25457+ }
25458+ nonempty_string(&_15, &_16, &_17);
25459+ string$dest(&_17);
25460+ _IGNORE_(_16);
2540925461 }
25410- ParseForBlock$(0 /* _14 */, &*streams, &*txtpos, &*state, &*level, &*sp, &*tmpnr, &*totality, &*action, &*self, &*reduced_ids, &_15, &*container, &_16);
25411- string$dest(&_16);
25412- type_pure$dest(&_15);
25462+ qtypepureid(&_const_container, &_14, &_15);
25463+ nonempty_string$dest(&_15);
25464+ qtypepure$dest(&_14);
2541325465 }
25414- }
25415- }
25416- break;
25417- }
25418- case 1: // struct stack/*type_pure_wrapped*/ type_pure_wrapped:
25419- {
25420- const struct type_pure_wrapped *containertype = ((*_10).type_pure_wrapped).data;
25421- {
25422- struct qtypepureid _const_container; memset(&_const_container, 0, sizeof(struct qtypepureid));
25423- {
25424- struct qtypepure _13; memset(&_13, 0, sizeof(struct qtypepure));
2542525466 {
25426- struct type_pure _14; memset(&_14, 0, sizeof(struct type_pure));
25427- {
25428- const struct container_type *_15 = &(*containertype).which;
25429- const struct type_pure_prim *_16 = &(*containertype).subtype;
25430- type_pure_wrapped(&_14, &*_15, &*_16);
25431- }
25432- constqtp(&_13, &_14);
25433- type_pure$dest(&_14);
25467+ const struct StreamOut *_15 = &(*streams).out;
25468+ Indent(0 /* _14 */, &*_15, &*level);
2543425469 }
25435- struct nonempty_string _14; memset(&_14, 0, sizeof(struct nonempty_string));
2543625470 {
25437- uint8_t _15; memset(&_15, 0, sizeof(uint8_t));
25438- _15 = 42;
25439- struct string _16; memset(&_16, 0, sizeof(struct string));
25471+ const struct StreamOut *_16 = &(*streams).out;
25472+ EmitQTPI(0 /* _15 */, &*_16, &_const_container);
25473+ }
25474+ {
25475+ const struct StreamOut *_17 = &(*streams).out;
25476+ struct string _18; memset(&_18, 0, sizeof(struct string));
25477+ init$fromliteral(&_18, " = &(", 5);
25478+ PutStr(0 /* _16 */, &*_17, &_18);
25479+ string$dest(&_18);
25480+ }
25481+ {
25482+ const struct StreamOut *_18 = &(*streams).out;
25483+ struct string _19; memset(&_19, 0, sizeof(struct string));
2544025484 {
25441- struct nonempty_string _17; memset(&_17, 0, sizeof(struct nonempty_string));
25442- {
25443- GenVar$(&_17, &*tmpnr);
25444- }
25445- nonempty_to_string(&_16, &_17);
25446- nonempty_string$dest(&_17);
25485+ struct nonempty_string *_20 = &(*container).id;
25486+ nonempty_to_string(&_19, &*_20);
2544725487 }
25448- nonempty_string(&_14, &_15, &_16);
25449- string$dest(&_16);
25450- _IGNORE_(_15);
25488+ PutStr(0 /* _17 */, &*_18, &_19);
25489+ string$dest(&_19);
2545125490 }
25452- qtypepureid(&_const_container, &_13, &_14);
25453- nonempty_string$dest(&_14);
25454- qtypepure$dest(&_13);
25455- }
25456- {
25457- const struct StreamOut *_14 = &(*streams).out;
25458- Indent(0 /* _13 */, &*_14, &*level);
25459- }
25460- {
25461- const struct StreamOut *_15 = &(*streams).out;
25462- EmitQTPI(0 /* _14 */, &*_15, &_const_container);
25463- }
25464- {
25465- const struct StreamOut *_16 = &(*streams).out;
25466- struct string _17; memset(&_17, 0, sizeof(struct string));
25467- init$fromliteral(&_17, " = &(", 5);
25468- PutStr(0 /* _15 */, &*_16, &_17);
25469- string$dest(&_17);
25470- }
25471- {
25472- const struct StreamOut *_17 = &(*streams).out;
25473- struct string _18; memset(&_18, 0, sizeof(struct string));
2547425491 {
25475- const struct nonempty_string *_19 = &(*container).id;
25476- nonempty_to_string(&_18, &*_19);
25492+ const struct StreamOut *_19 = &(*streams).out;
25493+ struct string _20; memset(&_20, 0, sizeof(struct string));
25494+ init$fromliteral(&_20, ");", 2);
25495+ PutStrLn(0 /* _18 */, &*_19, &_20);
25496+ string$dest(&_20);
2547725497 }
25478- PutStr(0 /* _16 */, &*_17, &_18);
25479- string$dest(&_18);
25480- }
25481- {
25482- const struct StreamOut *_18 = &(*streams).out;
25483- struct string _19; memset(&_19, 0, sizeof(struct string));
25484- init$fromliteral(&_19, ");", 2);
25485- PutStrLn(0 /* _17 */, &*_18, &_19);
25486- string$dest(&_19);
25487- }
25488- struct container_type _aw; memset(&_aw, 0, sizeof(struct container_type));
25489- container_type$copy(&_aw, &(*containertype).which);
25490- const struct container_type *_18 = &(_aw);
25491- switch((*_18).type)
25492- {
25493- case 0: // void container_stack:
25498+ struct container_type _aw; memset(&_aw, 0, sizeof(struct container_type));
25499+ container_type$copy(&_aw, &(*containertype).which);
25500+ const struct container_type *_19 = &(_aw);
25501+ switch((*_19).type)
2549425502 {
25503+ case 0: // void container_stack:
2549525504 {
25496- struct nonempty_string _counter; memset(&_counter, 0, sizeof(struct nonempty_string));
2549725505 {
25498- GenVar$(&_counter, &*tmpnr);
25499- }
25500- {
25501- const struct StreamOut *_21 = &(*streams).out;
25502- Indent(0 /* _20 */, &*_21, &*level);
25503- }
25504- {
25505- const struct StreamOut *_22 = &(*streams).out;
25506- struct string _23; memset(&_23, 0, sizeof(struct string));
25507- init$fromliteral(&_23, "for(", 4);
25508- PutStr(0 /* _21 */, &*_22, &_23);
25509- string$dest(&_23);
25510- }
25511- {
25512- const struct StreamOut *_23 = &(*streams).out;
25513- struct type_pure _24; memset(&_24, 0, sizeof(struct type_pure));
25506+ struct nonempty_string _counter; memset(&_counter, 0, sizeof(struct nonempty_string));
2551425507 {
25515- struct nonempty_string _25; memset(&_25, 0, sizeof(struct nonempty_string));
25516- {
25517- uint8_t _26; memset(&_26, 0, sizeof(uint8_t));
25518- _26 = 117;
25519- struct string _27; memset(&_27, 0, sizeof(struct string));
25520- init$fromliteral(&_27, "64", 2);
25521- nonempty_string(&_25, &_26, &_27);
25522- string$dest(&_27);
25523- _IGNORE_(_26);
25524- }
25525- type_pure_normal2(&_24, &_25);
25526- nonempty_string$dest(&_25);
25508+ GenVar$(&_counter, &*tmpnr);
2552725509 }
25528- PrTypePure(0 /* _22 */, &*_23, &_24);
25529- type_pure$dest(&_24);
25530- }
25531- {
25532- const struct StreamOut *_24 = &(*streams).out;
25533- struct string _25; memset(&_25, 0, sizeof(struct string));
25534- init$fromliteral(&_25, " ", 1);
25535- PutStr(0 /* _23 */, &*_24, &_25);
25536- string$dest(&_25);
25537- }
25538- {
25539- const struct StreamOut *_25 = &(*streams).out;
25540- struct string _26; memset(&_26, 0, sizeof(struct string));
2554125510 {
25542- nonempty_to_string(&_26, &_counter);
25511+ const struct StreamOut *_22 = &(*streams).out;
25512+ Indent(0 /* _21 */, &*_22, &*level);
2554325513 }
25544- PutStr(0 /* _24 */, &*_25, &_26);
25545- string$dest(&_26);
25546- }
25547- {
25548- const struct StreamOut *_26 = &(*streams).out;
25549- struct string _27; memset(&_27, 0, sizeof(struct string));
25550- init$fromliteral(&_27, " = 0; ", 6);
25551- PutStr(0 /* _25 */, &*_26, &_27);
25552- string$dest(&_27);
25553- }
25554- {
25555- const struct StreamOut *_27 = &(*streams).out;
25556- struct string _28; memset(&_28, 0, sizeof(struct string));
2555725514 {
25558- nonempty_to_string(&_28, &_counter);
25515+ const struct StreamOut *_23 = &(*streams).out;
25516+ struct string _24; memset(&_24, 0, sizeof(struct string));
25517+ init$fromliteral(&_24, "for(", 4);
25518+ PutStr(0 /* _22 */, &*_23, &_24);
25519+ string$dest(&_24);
2555925520 }
25560- PutStr(0 /* _26 */, &*_27, &_28);
25561- string$dest(&_28);
25562- }
25563- {
25564- const struct StreamOut *_28 = &(*streams).out;
25565- struct string _29; memset(&_29, 0, sizeof(struct string));
25566- init$fromliteral(&_29, " < (", 4);
25567- PutStr(0 /* _27 */, &*_28, &_29);
25568- string$dest(&_29);
25569- }
25570- {
25571- const struct StreamOut *_29 = &(*streams).out;
25572- struct string _30; memset(&_30, 0, sizeof(struct string));
2557325521 {
25574- const struct nonempty_string *_31 = &(_const_container).id;
25575- nonempty_to_string(&_30, &*_31);
25576- }
25577- PutStr(0 /* _28 */, &*_29, &_30);
25578- string$dest(&_30);
25579- }
25580- {
25581- const struct StreamOut *_30 = &(*streams).out;
25582- struct string _31; memset(&_31, 0, sizeof(struct string));
25583- init$fromliteral(&_31, ").fill; ++", 10);
25584- PutStr(0 /* _29 */, &*_30, &_31);
25585- string$dest(&_31);
25586- }
25587- {
25588- const struct StreamOut *_31 = &(*streams).out;
25589- struct string _32; memset(&_32, 0, sizeof(struct string));
25590- {
25591- nonempty_to_string(&_32, &_counter);
25592- }
25593- PutStr(0 /* _30 */, &*_31, &_32);
25594- string$dest(&_32);
25595- }
25596- {
25597- const struct StreamOut *_32 = &(*streams).out;
25598- struct string _33; memset(&_33, 0, sizeof(struct string));
25599- init$fromliteral(&_33, ")", 1);
25600- PutStrLn(0 /* _31 */, &*_32, &_33);
25601- string$dest(&_33);
25602- }
25603- {
25604- uint8_t _33; memset(&_33, 0, sizeof(uint8_t));
25605- _33 = 123;
25606- AssertGet$(0 /* _32 */, &*streams, &*txtpos, &*level, &_33);
25607- _IGNORE_(_33);
25608- }
25609- {
25610- const struct StreamOut *_34 = &(*streams).out;
25611- Indent(0 /* _33 */, &*_34, &*level);
25612- }
25613- {
25614- const struct StreamOut *_35 = &(*streams).out;
25615- struct string _36; memset(&_36, 0, sizeof(struct string));
25616- init$fromliteral(&_36, "{", 1);
25617- PutStrLn(0 /* _34 */, &*_35, &_36);
25618- string$dest(&_36);
25619- }
25620- {
25621- {
25622- scope_open(0 /* _36 */, &*sp);
25623- }
25624- struct qtypepureid _mut_elem; memset(&_mut_elem, 0, sizeof(struct qtypepureid));
25625- {
25626- struct qtypepure _37; memset(&_37, 0, sizeof(struct qtypepure));
25522+ const struct StreamOut *_24 = &(*streams).out;
25523+ struct type_pure _25; memset(&_25, 0, sizeof(struct type_pure));
2562725524 {
25628- const struct type_mode *_38 = &(*container).qt.qualifier;
25629- struct type_pure _39; memset(&_39, 0, sizeof(struct type_pure));
25525+ struct nonempty_string _26; memset(&_26, 0, sizeof(struct nonempty_string));
2563025526 {
25631- const struct type_pure_prim *_40 = &(*containertype).subtype;
25632- type_pure_normal(&_39, &*_40);
25527+ uint8_t _27; memset(&_27, 0, sizeof(uint8_t));
25528+ _27 = 117;
25529+ struct string _28; memset(&_28, 0, sizeof(struct string));
25530+ init$fromliteral(&_28, "64", 2);
25531+ nonempty_string(&_26, &_27, &_28);
25532+ string$dest(&_28);
25533+ _IGNORE_(_27);
2563325534 }
25634- qtypepure(&_37, &*_38, &_39);
25635- type_pure$dest(&_39);
25535+ type_pure_normal2(&_25, &_26);
25536+ nonempty_string$dest(&_26);
2563625537 }
25637- struct nonempty_string _38; memset(&_38, 0, sizeof(struct nonempty_string));
25638- {
25639- uint8_t _39; memset(&_39, 0, sizeof(uint8_t));
25640- _39 = 42;
25641- struct string _40; memset(&_40, 0, sizeof(struct string));
25642- {
25643- nonempty_to_string(&_40, &*id);
25644- }
25645- nonempty_string(&_38, &_39, &_40);
25646- string$dest(&_40);
25647- _IGNORE_(_39);
25648- }
25649- qtypepureid(&_mut_elem, &_37, &_38);
25650- nonempty_string$dest(&_38);
25651- qtypepure$dest(&_37);
25538+ PrTypePure(0 /* _23 */, &*_24, &_25);
25539+ type_pure$dest(&_25);
2565225540 }
2565325541 {
25654- const struct StreamOut *_38 = &(*streams).out;
25655- uint64_t _39; memset(&_39, 0, sizeof(uint64_t));
25542+ const struct StreamOut *_25 = &(*streams).out;
25543+ struct string _26; memset(&_26, 0, sizeof(struct string));
25544+ init$fromliteral(&_26, " ", 1);
25545+ PutStr(0 /* _24 */, &*_25, &_26);
25546+ string$dest(&_26);
25547+ }
25548+ {
25549+ const struct StreamOut *_26 = &(*streams).out;
25550+ struct string _27; memset(&_27, 0, sizeof(struct string));
2565625551 {
25657- uint64_t _40; memset(&_40, 0, sizeof(uint64_t));
25658- _40 = 1;
25659- _39 = *level + _40;
25660- _IGNORE_(_40);
25552+ nonempty_to_string(&_27, &_counter);
2566125553 }
25662- Indent(0 /* _37 */, &*_38, &_39);
25663- _IGNORE_(_39);
25554+ PutStr(0 /* _25 */, &*_26, &_27);
25555+ string$dest(&_27);
2566425556 }
2566525557 {
25666- const struct StreamOut *_39 = &(*streams).out;
25667- EmitQTPI(0 /* _38 */, &*_39, &_mut_elem);
25558+ const struct StreamOut *_27 = &(*streams).out;
25559+ struct string _28; memset(&_28, 0, sizeof(struct string));
25560+ init$fromliteral(&_28, " = 0; ", 6);
25561+ PutStr(0 /* _26 */, &*_27, &_28);
25562+ string$dest(&_28);
2566825563 }
2566925564 {
25670- const struct StreamOut *_40 = &(*streams).out;
25671- struct string _41; memset(&_41, 0, sizeof(struct string));
25672- init$fromliteral(&_41, " = &((", 6);
25673- PutStr(0 /* _39 */, &*_40, &_41);
25674- string$dest(&_41);
25565+ const struct StreamOut *_28 = &(*streams).out;
25566+ struct string _29; memset(&_29, 0, sizeof(struct string));
25567+ {
25568+ nonempty_to_string(&_29, &_counter);
25569+ }
25570+ PutStr(0 /* _27 */, &*_28, &_29);
25571+ string$dest(&_29);
2567525572 }
2567625573 {
25677- const struct StreamOut *_41 = &(*streams).out;
25678- const struct type_pure *_42 = &(_mut_elem).qt.type;
25679- PrTypePure(0 /* _40 */, &*_41, &*_42);
25574+ const struct StreamOut *_29 = &(*streams).out;
25575+ struct string _30; memset(&_30, 0, sizeof(struct string));
25576+ init$fromliteral(&_30, " < (", 4);
25577+ PutStr(0 /* _28 */, &*_29, &_30);
25578+ string$dest(&_30);
2568025579 }
2568125580 {
25682- const struct StreamOut *_42 = &(*streams).out;
25683- struct string _43; memset(&_43, 0, sizeof(struct string));
25684- init$fromliteral(&_43, " *)((", 5);
25685- PutStr(0 /* _41 */, &*_42, &_43);
25686- string$dest(&_43);
25687- }
25688- {
25689- const struct StreamOut *_43 = &(*streams).out;
25690- struct string _44; memset(&_44, 0, sizeof(struct string));
25581+ const struct StreamOut *_30 = &(*streams).out;
25582+ struct string _31; memset(&_31, 0, sizeof(struct string));
2569125583 {
25692- const struct nonempty_string *_45 = &(_const_container).id;
25693- nonempty_to_string(&_44, &*_45);
25584+ const struct nonempty_string *_32 = &(_const_container).id;
25585+ nonempty_to_string(&_31, &*_32);
2569425586 }
25695- PutStr(0 /* _42 */, &*_43, &_44);
25696- string$dest(&_44);
25587+ PutStr(0 /* _29 */, &*_30, &_31);
25588+ string$dest(&_31);
2569725589 }
2569825590 {
25699- const struct StreamOut *_44 = &(*streams).out;
25700- struct string _45; memset(&_45, 0, sizeof(struct string));
25701- init$fromliteral(&_45, ").data))[", 9);
25702- PutStr(0 /* _43 */, &*_44, &_45);
25703- string$dest(&_45);
25591+ const struct StreamOut *_31 = &(*streams).out;
25592+ struct string _32; memset(&_32, 0, sizeof(struct string));
25593+ init$fromliteral(&_32, ").fill; ++", 10);
25594+ PutStr(0 /* _30 */, &*_31, &_32);
25595+ string$dest(&_32);
2570425596 }
2570525597 {
25706- const struct StreamOut *_45 = &(*streams).out;
25707- struct string _46; memset(&_46, 0, sizeof(struct string));
25598+ const struct StreamOut *_32 = &(*streams).out;
25599+ struct string _33; memset(&_33, 0, sizeof(struct string));
2570825600 {
25709- nonempty_to_string(&_46, &_counter);
25601+ nonempty_to_string(&_33, &_counter);
2571025602 }
25711- PutStr(0 /* _44 */, &*_45, &_46);
25712- string$dest(&_46);
25603+ PutStr(0 /* _31 */, &*_32, &_33);
25604+ string$dest(&_33);
2571325605 }
2571425606 {
25715- const struct StreamOut *_46 = &(*streams).out;
25716- struct string _47; memset(&_47, 0, sizeof(struct string));
25717- init$fromliteral(&_47, "];", 2);
25718- PutStrLn(0 /* _45 */, &*_46, &_47);
25719- string$dest(&_47);
25607+ const struct StreamOut *_33 = &(*streams).out;
25608+ struct string _34; memset(&_34, 0, sizeof(struct string));
25609+ init$fromliteral(&_34, ")", 1);
25610+ PutStrLn(0 /* _32 */, &*_33, &_34);
25611+ string$dest(&_34);
2572025612 }
2572125613 {
25722- struct stack/*var*/ *_47 = &(*sp).current.elems;
25723- struct var _48; memset(&_48, 0, sizeof(struct var));
25724- {
25725- varinit(&_48, &_mut_elem);
25726- }
25727- push(0 /* _46 */, &*_47, &_48, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 5104);
25728- var$dest(&_48);
25614+ uint8_t _34; memset(&_34, 0, sizeof(uint8_t));
25615+ _34 = 123;
25616+ AssertGet$(0 /* _33 */, &*streams, &*txtpos, &*level, &_34);
25617+ _IGNORE_(_34);
2572925618 }
2573025619 {
25731- uint64_t _48; memset(&_48, 0, sizeof(uint64_t));
25620+ const struct StreamOut *_35 = &(*streams).out;
25621+ Indent(0 /* _34 */, &*_35, &*level);
25622+ }
25623+ {
25624+ const struct StreamOut *_36 = &(*streams).out;
25625+ struct string _37; memset(&_37, 0, sizeof(struct string));
25626+ init$fromliteral(&_37, "{", 1);
25627+ PutStrLn(0 /* _35 */, &*_36, &_37);
25628+ string$dest(&_37);
25629+ }
25630+ {
2573225631 {
25733- uint64_t _49; memset(&_49, 0, sizeof(uint64_t));
25734- _49 = 1;
25735- _48 = *level + _49;
25736- _IGNORE_(_49);
25632+ scope_open(0 /* _37 */, &*sp);
2573725633 }
25738- struct stack/*qtypepureid*/ _49; memset(&_49, 0, sizeof(struct stack/*qtypepureid*/));
25634+ struct qtypepureid _mut_elem; memset(&_mut_elem, 0, sizeof(struct qtypepureid));
2573925635 {
25740- empty(&_49, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5105);
25636+ struct qtypepure _38; memset(&_38, 0, sizeof(struct qtypepure));
25637+ {
25638+ struct type_mode *_39 = &(*container).qt.qualifier;
25639+ struct type_pure _40; memset(&_40, 0, sizeof(struct type_pure));
25640+ {
25641+ const struct type_pure_prim *_41 = &(*containertype).subtype;
25642+ type_pure_normal(&_40, &*_41);
25643+ }
25644+ qtypepure(&_38, &*_39, &_40);
25645+ type_pure$dest(&_40);
25646+ }
25647+ struct nonempty_string _39; memset(&_39, 0, sizeof(struct nonempty_string));
25648+ {
25649+ uint8_t _40; memset(&_40, 0, sizeof(uint8_t));
25650+ _40 = 42;
25651+ struct string _41; memset(&_41, 0, sizeof(struct string));
25652+ {
25653+ nonempty_to_string(&_41, &*id);
25654+ }
25655+ nonempty_string(&_39, &_40, &_41);
25656+ string$dest(&_41);
25657+ _IGNORE_(_40);
25658+ }
25659+ qtypepureid(&_mut_elem, &_38, &_39);
25660+ nonempty_string$dest(&_39);
25661+ qtypepure$dest(&_38);
2574125662 }
25742- ParseBlockRaw$(0 /* _47 */, &*streams, &*txtpos, &*state, &_48, &*sp, &*tmpnr, &_49, &*totality, &*action, &*self, &*reduced_ids);
25743- free$(&_49, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest);
25744- _IGNORE_(_48);
25745- }
25746- bool _49;
25747- {
25748- struct stack/*var*/ *_50 = &(*sp).current.elems;
25749- struct string _51; memset(&_51, 0, sizeof(struct string));
2575025663 {
25751- uint8_t _52; memset(&_52, 0, sizeof(uint8_t));
25752- _52 = 42;
25753- struct string _53; memset(&_53, 0, sizeof(struct string));
25664+ const struct StreamOut *_39 = &(*streams).out;
25665+ uint64_t _40; memset(&_40, 0, sizeof(uint64_t));
2575425666 {
25755- nonempty_to_string(&_53, &*id);
25667+ uint64_t _41; memset(&_41, 0, sizeof(uint64_t));
25668+ _41 = 1;
25669+ _40 = *level + _41;
25670+ _IGNORE_(_41);
2575625671 }
25757- preapp(&_51, &_52, &_53);
25758- string$dest(&_53);
25759- _IGNORE_(_52);
25672+ Indent(0 /* _38 */, &*_39, &_40);
25673+ _IGNORE_(_40);
2576025674 }
25761- find_var_report_unused_and_mark_used(&_49, &*_50, &_51);
25762- string$dest(&_51);
25763- }
25764- if(_49)
25765- {
2576625675 {
25767- const struct StreamOut *_51 = &(*streams).out;
25768- uint64_t _52; memset(&_52, 0, sizeof(uint64_t));
25676+ const struct StreamOut *_40 = &(*streams).out;
25677+ EmitQTPI(0 /* _39 */, &*_40, &_mut_elem);
25678+ }
25679+ {
25680+ const struct StreamOut *_41 = &(*streams).out;
25681+ struct string _42; memset(&_42, 0, sizeof(struct string));
25682+ init$fromliteral(&_42, " = &((", 6);
25683+ PutStr(0 /* _40 */, &*_41, &_42);
25684+ string$dest(&_42);
25685+ }
25686+ {
25687+ const struct StreamOut *_42 = &(*streams).out;
25688+ const struct type_pure *_43 = &(_mut_elem).qt.type;
25689+ PrTypePure(0 /* _41 */, &*_42, &*_43);
25690+ }
25691+ {
25692+ const struct StreamOut *_43 = &(*streams).out;
25693+ struct string _44; memset(&_44, 0, sizeof(struct string));
25694+ init$fromliteral(&_44, " *)((", 5);
25695+ PutStr(0 /* _42 */, &*_43, &_44);
25696+ string$dest(&_44);
25697+ }
25698+ {
25699+ const struct StreamOut *_44 = &(*streams).out;
25700+ struct string _45; memset(&_45, 0, sizeof(struct string));
2576925701 {
25770- uint64_t _53; memset(&_53, 0, sizeof(uint64_t));
25771- _53 = 1;
25772- _52 = *level + _53;
25773- _IGNORE_(_53);
25702+ const struct nonempty_string *_46 = &(_const_container).id;
25703+ nonempty_to_string(&_45, &*_46);
2577425704 }
25775- Indent(0 /* _50 */, &*_51, &_52);
25776- _IGNORE_(_52);
25705+ PutStr(0 /* _43 */, &*_44, &_45);
25706+ string$dest(&_45);
2577725707 }
2577825708 {
25779- const struct StreamOut *_52 = &(*streams).out;
25780- struct string _53; memset(&_53, 0, sizeof(struct string));
25781- init$fromliteral(&_53, "__SUPPRESS_WARNING_UNUSED_VARIABLE__(&", 38);
25782- PutStr(0 /* _51 */, &*_52, &_53);
25783- string$dest(&_53);
25709+ const struct StreamOut *_45 = &(*streams).out;
25710+ struct string _46; memset(&_46, 0, sizeof(struct string));
25711+ init$fromliteral(&_46, ").data))[", 9);
25712+ PutStr(0 /* _44 */, &*_45, &_46);
25713+ string$dest(&_46);
2578425714 }
2578525715 {
25786- const struct StreamOut *_53 = &(*streams).out;
25787- struct string _54; memset(&_54, 0, sizeof(struct string));
25716+ const struct StreamOut *_46 = &(*streams).out;
25717+ struct string _47; memset(&_47, 0, sizeof(struct string));
2578825718 {
25789- const struct nonempty_string *_55 = &(_mut_elem).id;
25790- nonempty_to_string(&_54, &*_55);
25719+ nonempty_to_string(&_47, &_counter);
2579125720 }
25792- PutStr(0 /* _52 */, &*_53, &_54);
25793- string$dest(&_54);
25721+ PutStr(0 /* _45 */, &*_46, &_47);
25722+ string$dest(&_47);
2579425723 }
2579525724 {
25796- const struct StreamOut *_54 = &(*streams).out;
25797- struct string _55; memset(&_55, 0, sizeof(struct string));
25798- init$fromliteral(&_55, ");", 2);
25799- PutStrLn(0 /* _53 */, &*_54, &_55);
25800- string$dest(&_55);
25725+ const struct StreamOut *_47 = &(*streams).out;
25726+ struct string _48; memset(&_48, 0, sizeof(struct string));
25727+ init$fromliteral(&_48, "];", 2);
25728+ PutStrLn(0 /* _46 */, &*_47, &_48);
25729+ string$dest(&_48);
2580125730 }
25731+ {
25732+ struct stack/*var*/ *_48 = &(*sp).current.elems;
25733+ struct var _49; memset(&_49, 0, sizeof(struct var));
25734+ {
25735+ varinit(&_49, &_mut_elem);
25736+ }
25737+ push(0 /* _47 */, &*_48, &_49, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 5107);
25738+ var$dest(&_49);
25739+ }
25740+ {
25741+ uint64_t _49; memset(&_49, 0, sizeof(uint64_t));
25742+ {
25743+ uint64_t _50; memset(&_50, 0, sizeof(uint64_t));
25744+ _50 = 1;
25745+ _49 = *level + _50;
25746+ _IGNORE_(_50);
25747+ }
25748+ struct stack/*qtypepureid*/ _50; memset(&_50, 0, sizeof(struct stack/*qtypepureid*/));
25749+ {
25750+ empty(&_50, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5108);
25751+ }
25752+ ParseBlockRaw$(0 /* _48 */, &*streams, &*txtpos, &*state, &_49, &*sp, &*tmpnr, &_50, &*totality, &*action, &*self, &*reduced_ids);
25753+ free$(&_50, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest);
25754+ _IGNORE_(_49);
25755+ }
25756+ bool _50;
25757+ {
25758+ struct stack/*var*/ *_51 = &(*sp).current.elems;
25759+ struct string _52; memset(&_52, 0, sizeof(struct string));
25760+ {
25761+ uint8_t _53; memset(&_53, 0, sizeof(uint8_t));
25762+ _53 = 42;
25763+ struct string _54; memset(&_54, 0, sizeof(struct string));
25764+ {
25765+ nonempty_to_string(&_54, &*id);
25766+ }
25767+ preapp(&_52, &_53, &_54);
25768+ string$dest(&_54);
25769+ _IGNORE_(_53);
25770+ }
25771+ find_var_report_unused_and_mark_used(&_50, &*_51, &_52);
25772+ string$dest(&_52);
25773+ }
25774+ if(_50)
25775+ {
25776+ {
25777+ const struct StreamOut *_52 = &(*streams).out;
25778+ uint64_t _53; memset(&_53, 0, sizeof(uint64_t));
25779+ {
25780+ uint64_t _54; memset(&_54, 0, sizeof(uint64_t));
25781+ _54 = 1;
25782+ _53 = *level + _54;
25783+ _IGNORE_(_54);
25784+ }
25785+ Indent(0 /* _51 */, &*_52, &_53);
25786+ _IGNORE_(_53);
25787+ }
25788+ {
25789+ const struct StreamOut *_53 = &(*streams).out;
25790+ struct string _54; memset(&_54, 0, sizeof(struct string));
25791+ init$fromliteral(&_54, "__SUPPRESS_WARNING_UNUSED_VARIABLE__(&", 38);
25792+ PutStr(0 /* _52 */, &*_53, &_54);
25793+ string$dest(&_54);
25794+ }
25795+ {
25796+ const struct StreamOut *_54 = &(*streams).out;
25797+ struct string _55; memset(&_55, 0, sizeof(struct string));
25798+ {
25799+ const struct nonempty_string *_56 = &(_mut_elem).id;
25800+ nonempty_to_string(&_55, &*_56);
25801+ }
25802+ PutStr(0 /* _53 */, &*_54, &_55);
25803+ string$dest(&_55);
25804+ }
25805+ {
25806+ const struct StreamOut *_55 = &(*streams).out;
25807+ struct string _56; memset(&_56, 0, sizeof(struct string));
25808+ init$fromliteral(&_56, ");", 2);
25809+ PutStrLn(0 /* _54 */, &*_55, &_56);
25810+ string$dest(&_56);
25811+ }
25812+ }
25813+ {
25814+ const struct StreamOut *_52 = &(*streams).err;
25815+ AssertUsedThenCloseScope$(0 /* _51 */, &*_52, &*txtpos, &*sp);
25816+ }
25817+ qtypepureid$dest(&_mut_elem);
2580225818 }
2580325819 {
25804- const struct StreamOut *_51 = &(*streams).err;
25805- AssertUsedThenCloseScope$(0 /* _50 */, &*_51, &*txtpos, &*sp);
25820+ uint8_t _38; memset(&_38, 0, sizeof(uint8_t));
25821+ _38 = 125;
25822+ AssertGet$(0 /* _37 */, &*streams, &*txtpos, &*level, &_38);
25823+ _IGNORE_(_38);
2580625824 }
25807- qtypepureid$dest(&_mut_elem);
25808- }
25809- {
25810- uint8_t _37; memset(&_37, 0, sizeof(uint8_t));
25811- _37 = 125;
25812- AssertGet$(0 /* _36 */, &*streams, &*txtpos, &*level, &_37);
25813- _IGNORE_(_37);
25814- }
25815- {
25816- const struct StreamOut *_38 = &(*streams).out;
25817- Indent(0 /* _37 */, &*_38, &*level);
25818- }
25819- {
25820- const struct StreamOut *_39 = &(*streams).out;
25821- struct string _40; memset(&_40, 0, sizeof(struct string));
25822- init$fromliteral(&_40, "}", 1);
25823- PutStrLn(0 /* _38 */, &*_39, &_40);
25824- string$dest(&_40);
25825- }
25826- nonempty_string$dest(&_counter);
25827- }
25828- break;
25829- }
25830- case 1: // void container_stack_of_mut:
25831- {
25832- {
25833- struct nonempty_string _counter; memset(&_counter, 0, sizeof(struct nonempty_string));
25834- {
25835- GenVar$(&_counter, &*tmpnr);
25836- }
25837- {
25838- const struct StreamOut *_22 = &(*streams).out;
25839- Indent(0 /* _21 */, &*_22, &*level);
25840- }
25841- {
25842- const struct StreamOut *_23 = &(*streams).out;
25843- struct string _24; memset(&_24, 0, sizeof(struct string));
25844- init$fromliteral(&_24, "for(", 4);
25845- PutStr(0 /* _22 */, &*_23, &_24);
25846- string$dest(&_24);
25847- }
25848- {
25849- const struct StreamOut *_24 = &(*streams).out;
25850- struct type_pure _25; memset(&_25, 0, sizeof(struct type_pure));
2585125825 {
25852- struct nonempty_string _26; memset(&_26, 0, sizeof(struct nonempty_string));
25853- {
25854- uint8_t _27; memset(&_27, 0, sizeof(uint8_t));
25855- _27 = 117;
25856- struct string _28; memset(&_28, 0, sizeof(struct string));
25857- init$fromliteral(&_28, "64", 2);
25858- nonempty_string(&_26, &_27, &_28);
25859- string$dest(&_28);
25860- _IGNORE_(_27);
25861- }
25862- type_pure_normal2(&_25, &_26);
25863- nonempty_string$dest(&_26);
25826+ const struct StreamOut *_39 = &(*streams).out;
25827+ Indent(0 /* _38 */, &*_39, &*level);
2586425828 }
25865- PrTypePure(0 /* _23 */, &*_24, &_25);
25866- type_pure$dest(&_25);
25867- }
25868- {
25869- const struct StreamOut *_25 = &(*streams).out;
25870- struct string _26; memset(&_26, 0, sizeof(struct string));
25871- init$fromliteral(&_26, " ", 1);
25872- PutStr(0 /* _24 */, &*_25, &_26);
25873- string$dest(&_26);
25874- }
25875- {
25876- const struct StreamOut *_26 = &(*streams).out;
25877- struct string _27; memset(&_27, 0, sizeof(struct string));
2587825829 {
25879- nonempty_to_string(&_27, &_counter);
25830+ const struct StreamOut *_40 = &(*streams).out;
25831+ struct string _41; memset(&_41, 0, sizeof(struct string));
25832+ init$fromliteral(&_41, "}", 1);
25833+ PutStrLn(0 /* _39 */, &*_40, &_41);
25834+ string$dest(&_41);
2588025835 }
25881- PutStr(0 /* _25 */, &*_26, &_27);
25882- string$dest(&_27);
25836+ nonempty_string$dest(&_counter);
2588325837 }
25838+ break;
25839+ }
25840+ case 1: // void container_stack_of_mut:
25841+ {
2588425842 {
25885- const struct StreamOut *_27 = &(*streams).out;
25886- struct string _28; memset(&_28, 0, sizeof(struct string));
25887- init$fromliteral(&_28, " = 0; ", 6);
25888- PutStr(0 /* _26 */, &*_27, &_28);
25889- string$dest(&_28);
25890- }
25891- {
25892- const struct StreamOut *_28 = &(*streams).out;
25893- struct string _29; memset(&_29, 0, sizeof(struct string));
25843+ struct nonempty_string _counter; memset(&_counter, 0, sizeof(struct nonempty_string));
2589425844 {
25895- nonempty_to_string(&_29, &_counter);
25845+ GenVar$(&_counter, &*tmpnr);
2589625846 }
25897- PutStr(0 /* _27 */, &*_28, &_29);
25898- string$dest(&_29);
25899- }
25900- {
25901- const struct StreamOut *_29 = &(*streams).out;
25902- struct string _30; memset(&_30, 0, sizeof(struct string));
25903- init$fromliteral(&_30, " < (", 4);
25904- PutStr(0 /* _28 */, &*_29, &_30);
25905- string$dest(&_30);
25906- }
25907- {
25908- const struct StreamOut *_30 = &(*streams).out;
25909- struct string _31; memset(&_31, 0, sizeof(struct string));
2591025847 {
25911- const struct nonempty_string *_32 = &(_const_container).id;
25912- nonempty_to_string(&_31, &*_32);
25848+ const struct StreamOut *_23 = &(*streams).out;
25849+ Indent(0 /* _22 */, &*_23, &*level);
2591325850 }
25914- PutStr(0 /* _29 */, &*_30, &_31);
25915- string$dest(&_31);
25916- }
25917- {
25918- const struct StreamOut *_31 = &(*streams).out;
25919- struct string _32; memset(&_32, 0, sizeof(struct string));
25920- init$fromliteral(&_32, ").fill; ++", 10);
25921- PutStr(0 /* _30 */, &*_31, &_32);
25922- string$dest(&_32);
25923- }
25924- {
25925- const struct StreamOut *_32 = &(*streams).out;
25926- struct string _33; memset(&_33, 0, sizeof(struct string));
2592725851 {
25928- nonempty_to_string(&_33, &_counter);
25852+ const struct StreamOut *_24 = &(*streams).out;
25853+ struct string _25; memset(&_25, 0, sizeof(struct string));
25854+ init$fromliteral(&_25, "for(", 4);
25855+ PutStr(0 /* _23 */, &*_24, &_25);
25856+ string$dest(&_25);
2592925857 }
25930- PutStr(0 /* _31 */, &*_32, &_33);
25931- string$dest(&_33);
25932- }
25933- {
25934- const struct StreamOut *_33 = &(*streams).out;
25935- struct string _34; memset(&_34, 0, sizeof(struct string));
25936- init$fromliteral(&_34, ")", 1);
25937- PutStrLn(0 /* _32 */, &*_33, &_34);
25938- string$dest(&_34);
25939- }
25940- {
25941- uint8_t _34; memset(&_34, 0, sizeof(uint8_t));
25942- _34 = 123;
25943- AssertGet$(0 /* _33 */, &*streams, &*txtpos, &*level, &_34);
25944- _IGNORE_(_34);
25945- }
25946- {
25947- const struct StreamOut *_35 = &(*streams).out;
25948- Indent(0 /* _34 */, &*_35, &*level);
25949- }
25950- {
25951- const struct StreamOut *_36 = &(*streams).out;
25952- struct string _37; memset(&_37, 0, sizeof(struct string));
25953- init$fromliteral(&_37, "{", 1);
25954- PutStrLn(0 /* _35 */, &*_36, &_37);
25955- string$dest(&_37);
25956- }
25957- {
2595825858 {
25959- scope_open(0 /* _37 */, &*sp);
25960- }
25961- struct qtypepureid _mut_elem; memset(&_mut_elem, 0, sizeof(struct qtypepureid));
25962- {
25963- struct qtypepure _38; memset(&_38, 0, sizeof(struct qtypepure));
25859+ const struct StreamOut *_25 = &(*streams).out;
25860+ struct type_pure _26; memset(&_26, 0, sizeof(struct type_pure));
2596425861 {
25965- struct type_pure _39; memset(&_39, 0, sizeof(struct type_pure));
25862+ struct nonempty_string _27; memset(&_27, 0, sizeof(struct nonempty_string));
2596625863 {
25967- const struct type_pure_prim *_40 = &(*containertype).subtype;
25968- type_pure_normal(&_39, &*_40);
25864+ uint8_t _28; memset(&_28, 0, sizeof(uint8_t));
25865+ _28 = 117;
25866+ struct string _29; memset(&_29, 0, sizeof(struct string));
25867+ init$fromliteral(&_29, "64", 2);
25868+ nonempty_string(&_27, &_28, &_29);
25869+ string$dest(&_29);
25870+ _IGNORE_(_28);
2596925871 }
25970- mutqtp(&_38, &_39);
25971- type_pure$dest(&_39);
25872+ type_pure_normal2(&_26, &_27);
25873+ nonempty_string$dest(&_27);
2597225874 }
25973- struct nonempty_string _39; memset(&_39, 0, sizeof(struct nonempty_string));
25974- {
25975- uint8_t _40; memset(&_40, 0, sizeof(uint8_t));
25976- _40 = 42;
25977- struct string _41; memset(&_41, 0, sizeof(struct string));
25978- {
25979- nonempty_to_string(&_41, &*id);
25980- }
25981- nonempty_string(&_39, &_40, &_41);
25982- string$dest(&_41);
25983- _IGNORE_(_40);
25984- }
25985- qtypepureid(&_mut_elem, &_38, &_39);
25986- nonempty_string$dest(&_39);
25987- qtypepure$dest(&_38);
25875+ PrTypePure(0 /* _24 */, &*_25, &_26);
25876+ type_pure$dest(&_26);
2598825877 }
2598925878 {
25990- const struct StreamOut *_39 = &(*streams).out;
25991- uint64_t _40; memset(&_40, 0, sizeof(uint64_t));
25879+ const struct StreamOut *_26 = &(*streams).out;
25880+ struct string _27; memset(&_27, 0, sizeof(struct string));
25881+ init$fromliteral(&_27, " ", 1);
25882+ PutStr(0 /* _25 */, &*_26, &_27);
25883+ string$dest(&_27);
25884+ }
25885+ {
25886+ const struct StreamOut *_27 = &(*streams).out;
25887+ struct string _28; memset(&_28, 0, sizeof(struct string));
2599225888 {
25993- uint64_t _41; memset(&_41, 0, sizeof(uint64_t));
25994- _41 = 1;
25995- _40 = *level + _41;
25996- _IGNORE_(_41);
25889+ nonempty_to_string(&_28, &_counter);
2599725890 }
25998- Indent(0 /* _38 */, &*_39, &_40);
25999- _IGNORE_(_40);
25891+ PutStr(0 /* _26 */, &*_27, &_28);
25892+ string$dest(&_28);
2600025893 }
2600125894 {
26002- const struct StreamOut *_40 = &(*streams).out;
26003- EmitQTPI(0 /* _39 */, &*_40, &_mut_elem);
25895+ const struct StreamOut *_28 = &(*streams).out;
25896+ struct string _29; memset(&_29, 0, sizeof(struct string));
25897+ init$fromliteral(&_29, " = 0; ", 6);
25898+ PutStr(0 /* _27 */, &*_28, &_29);
25899+ string$dest(&_29);
2600425900 }
2600525901 {
26006- const struct StreamOut *_41 = &(*streams).out;
26007- struct string _42; memset(&_42, 0, sizeof(struct string));
26008- init$fromliteral(&_42, " = &((", 6);
26009- PutStr(0 /* _40 */, &*_41, &_42);
26010- string$dest(&_42);
25902+ const struct StreamOut *_29 = &(*streams).out;
25903+ struct string _30; memset(&_30, 0, sizeof(struct string));
25904+ {
25905+ nonempty_to_string(&_30, &_counter);
25906+ }
25907+ PutStr(0 /* _28 */, &*_29, &_30);
25908+ string$dest(&_30);
2601125909 }
2601225910 {
26013- const struct StreamOut *_42 = &(*streams).out;
26014- const struct type_pure *_43 = &(_mut_elem).qt.type;
26015- PrTypePure(0 /* _41 */, &*_42, &*_43);
25911+ const struct StreamOut *_30 = &(*streams).out;
25912+ struct string _31; memset(&_31, 0, sizeof(struct string));
25913+ init$fromliteral(&_31, " < (", 4);
25914+ PutStr(0 /* _29 */, &*_30, &_31);
25915+ string$dest(&_31);
2601625916 }
2601725917 {
26018- const struct StreamOut *_43 = &(*streams).out;
26019- struct string _44; memset(&_44, 0, sizeof(struct string));
26020- init$fromliteral(&_44, " *)((", 5);
26021- PutStr(0 /* _42 */, &*_43, &_44);
26022- string$dest(&_44);
26023- }
26024- {
26025- const struct StreamOut *_44 = &(*streams).out;
26026- struct string _45; memset(&_45, 0, sizeof(struct string));
25918+ const struct StreamOut *_31 = &(*streams).out;
25919+ struct string _32; memset(&_32, 0, sizeof(struct string));
2602725920 {
26028- const struct nonempty_string *_46 = &(_const_container).id;
26029- nonempty_to_string(&_45, &*_46);
25921+ const struct nonempty_string *_33 = &(_const_container).id;
25922+ nonempty_to_string(&_32, &*_33);
2603025923 }
26031- PutStr(0 /* _43 */, &*_44, &_45);
26032- string$dest(&_45);
25924+ PutStr(0 /* _30 */, &*_31, &_32);
25925+ string$dest(&_32);
2603325926 }
2603425927 {
26035- const struct StreamOut *_45 = &(*streams).out;
26036- struct string _46; memset(&_46, 0, sizeof(struct string));
26037- init$fromliteral(&_46, ").data))[", 9);
26038- PutStr(0 /* _44 */, &*_45, &_46);
26039- string$dest(&_46);
25928+ const struct StreamOut *_32 = &(*streams).out;
25929+ struct string _33; memset(&_33, 0, sizeof(struct string));
25930+ init$fromliteral(&_33, ").fill; ++", 10);
25931+ PutStr(0 /* _31 */, &*_32, &_33);
25932+ string$dest(&_33);
2604025933 }
2604125934 {
26042- const struct StreamOut *_46 = &(*streams).out;
26043- struct string _47; memset(&_47, 0, sizeof(struct string));
25935+ const struct StreamOut *_33 = &(*streams).out;
25936+ struct string _34; memset(&_34, 0, sizeof(struct string));
2604425937 {
26045- nonempty_to_string(&_47, &_counter);
25938+ nonempty_to_string(&_34, &_counter);
2604625939 }
26047- PutStr(0 /* _45 */, &*_46, &_47);
26048- string$dest(&_47);
25940+ PutStr(0 /* _32 */, &*_33, &_34);
25941+ string$dest(&_34);
2604925942 }
2605025943 {
26051- const struct StreamOut *_47 = &(*streams).out;
26052- struct string _48; memset(&_48, 0, sizeof(struct string));
26053- init$fromliteral(&_48, "];", 2);
26054- PutStrLn(0 /* _46 */, &*_47, &_48);
26055- string$dest(&_48);
25944+ const struct StreamOut *_34 = &(*streams).out;
25945+ struct string _35; memset(&_35, 0, sizeof(struct string));
25946+ init$fromliteral(&_35, ")", 1);
25947+ PutStrLn(0 /* _33 */, &*_34, &_35);
25948+ string$dest(&_35);
2605625949 }
2605725950 {
26058- struct stack/*var*/ *_48 = &(*sp).current.elems;
26059- struct var _49; memset(&_49, 0, sizeof(struct var));
26060- {
26061- varinit(&_49, &_mut_elem);
26062- }
26063- push(0 /* _47 */, &*_48, &_49, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 5133);
26064- var$dest(&_49);
25951+ uint8_t _35; memset(&_35, 0, sizeof(uint8_t));
25952+ _35 = 123;
25953+ AssertGet$(0 /* _34 */, &*streams, &*txtpos, &*level, &_35);
25954+ _IGNORE_(_35);
2606525955 }
2606625956 {
26067- uint64_t _49; memset(&_49, 0, sizeof(uint64_t));
25957+ const struct StreamOut *_36 = &(*streams).out;
25958+ Indent(0 /* _35 */, &*_36, &*level);
25959+ }
25960+ {
25961+ const struct StreamOut *_37 = &(*streams).out;
25962+ struct string _38; memset(&_38, 0, sizeof(struct string));
25963+ init$fromliteral(&_38, "{", 1);
25964+ PutStrLn(0 /* _36 */, &*_37, &_38);
25965+ string$dest(&_38);
25966+ }
25967+ {
2606825968 {
26069- uint64_t _50; memset(&_50, 0, sizeof(uint64_t));
26070- _50 = 1;
26071- _49 = *level + _50;
26072- _IGNORE_(_50);
25969+ scope_open(0 /* _38 */, &*sp);
2607325970 }
26074- struct stack/*qtypepureid*/ _50; memset(&_50, 0, sizeof(struct stack/*qtypepureid*/));
25971+ struct qtypepureid _mut_elem; memset(&_mut_elem, 0, sizeof(struct qtypepureid));
2607525972 {
26076- empty(&_50, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5134);
25973+ struct qtypepure _39; memset(&_39, 0, sizeof(struct qtypepure));
25974+ {
25975+ struct type_pure _40; memset(&_40, 0, sizeof(struct type_pure));
25976+ {
25977+ const struct type_pure_prim *_41 = &(*containertype).subtype;
25978+ type_pure_normal(&_40, &*_41);
25979+ }
25980+ mutqtp(&_39, &_40);
25981+ type_pure$dest(&_40);
25982+ }
25983+ struct nonempty_string _40; memset(&_40, 0, sizeof(struct nonempty_string));
25984+ {
25985+ uint8_t _41; memset(&_41, 0, sizeof(uint8_t));
25986+ _41 = 42;
25987+ struct string _42; memset(&_42, 0, sizeof(struct string));
25988+ {
25989+ nonempty_to_string(&_42, &*id);
25990+ }
25991+ nonempty_string(&_40, &_41, &_42);
25992+ string$dest(&_42);
25993+ _IGNORE_(_41);
25994+ }
25995+ qtypepureid(&_mut_elem, &_39, &_40);
25996+ nonempty_string$dest(&_40);
25997+ qtypepure$dest(&_39);
2607725998 }
26078- ParseBlockRaw$(0 /* _48 */, &*streams, &*txtpos, &*state, &_49, &*sp, &*tmpnr, &_50, &*totality, &*action, &*self, &*reduced_ids);
26079- free$(&_50, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest);
26080- _IGNORE_(_49);
26081- }
26082- bool _50;
26083- {
26084- struct stack/*var*/ *_51 = &(*sp).current.elems;
26085- struct string _52; memset(&_52, 0, sizeof(struct string));
2608625999 {
26087- uint8_t _53; memset(&_53, 0, sizeof(uint8_t));
26088- _53 = 42;
26089- struct string _54; memset(&_54, 0, sizeof(struct string));
26000+ const struct StreamOut *_40 = &(*streams).out;
26001+ uint64_t _41; memset(&_41, 0, sizeof(uint64_t));
2609026002 {
26091- nonempty_to_string(&_54, &*id);
26003+ uint64_t _42; memset(&_42, 0, sizeof(uint64_t));
26004+ _42 = 1;
26005+ _41 = *level + _42;
26006+ _IGNORE_(_42);
2609226007 }
26093- preapp(&_52, &_53, &_54);
26094- string$dest(&_54);
26095- _IGNORE_(_53);
26008+ Indent(0 /* _39 */, &*_40, &_41);
26009+ _IGNORE_(_41);
2609626010 }
26097- find_var_report_unused_and_mark_used(&_50, &*_51, &_52);
26098- string$dest(&_52);
26099- }
26100- if(_50)
26101- {
2610226011 {
26103- const struct StreamOut *_52 = &(*streams).out;
26104- uint64_t _53; memset(&_53, 0, sizeof(uint64_t));
26012+ const struct StreamOut *_41 = &(*streams).out;
26013+ EmitQTPI(0 /* _40 */, &*_41, &_mut_elem);
26014+ }
26015+ {
26016+ const struct StreamOut *_42 = &(*streams).out;
26017+ struct string _43; memset(&_43, 0, sizeof(struct string));
26018+ init$fromliteral(&_43, " = &((", 6);
26019+ PutStr(0 /* _41 */, &*_42, &_43);
26020+ string$dest(&_43);
26021+ }
26022+ {
26023+ const struct StreamOut *_43 = &(*streams).out;
26024+ const struct type_pure *_44 = &(_mut_elem).qt.type;
26025+ PrTypePure(0 /* _42 */, &*_43, &*_44);
26026+ }
26027+ {
26028+ const struct StreamOut *_44 = &(*streams).out;
26029+ struct string _45; memset(&_45, 0, sizeof(struct string));
26030+ init$fromliteral(&_45, " *)((", 5);
26031+ PutStr(0 /* _43 */, &*_44, &_45);
26032+ string$dest(&_45);
26033+ }
26034+ {
26035+ const struct StreamOut *_45 = &(*streams).out;
26036+ struct string _46; memset(&_46, 0, sizeof(struct string));
2610526037 {
26106- uint64_t _54; memset(&_54, 0, sizeof(uint64_t));
26107- _54 = 1;
26108- _53 = *level + _54;
26109- _IGNORE_(_54);
26038+ const struct nonempty_string *_47 = &(_const_container).id;
26039+ nonempty_to_string(&_46, &*_47);
2611026040 }
26111- Indent(0 /* _51 */, &*_52, &_53);
26112- _IGNORE_(_53);
26041+ PutStr(0 /* _44 */, &*_45, &_46);
26042+ string$dest(&_46);
2611326043 }
2611426044 {
26115- const struct StreamOut *_53 = &(*streams).out;
26116- struct string _54; memset(&_54, 0, sizeof(struct string));
26117- init$fromliteral(&_54, "__SUPPRESS_WARNING_UNUSED_VARIABLE__(&", 38);
26118- PutStr(0 /* _52 */, &*_53, &_54);
26119- string$dest(&_54);
26045+ const struct StreamOut *_46 = &(*streams).out;
26046+ struct string _47; memset(&_47, 0, sizeof(struct string));
26047+ init$fromliteral(&_47, ").data))[", 9);
26048+ PutStr(0 /* _45 */, &*_46, &_47);
26049+ string$dest(&_47);
2612026050 }
2612126051 {
26122- const struct StreamOut *_54 = &(*streams).out;
26123- struct string _55; memset(&_55, 0, sizeof(struct string));
26052+ const struct StreamOut *_47 = &(*streams).out;
26053+ struct string _48; memset(&_48, 0, sizeof(struct string));
2612426054 {
26125- const struct nonempty_string *_56 = &(_mut_elem).id;
26126- nonempty_to_string(&_55, &*_56);
26055+ nonempty_to_string(&_48, &_counter);
2612726056 }
26128- PutStr(0 /* _53 */, &*_54, &_55);
26129- string$dest(&_55);
26057+ PutStr(0 /* _46 */, &*_47, &_48);
26058+ string$dest(&_48);
2613026059 }
2613126060 {
26132- const struct StreamOut *_55 = &(*streams).out;
26133- struct string _56; memset(&_56, 0, sizeof(struct string));
26134- init$fromliteral(&_56, ");", 2);
26135- PutStrLn(0 /* _54 */, &*_55, &_56);
26136- string$dest(&_56);
26061+ const struct StreamOut *_48 = &(*streams).out;
26062+ struct string _49; memset(&_49, 0, sizeof(struct string));
26063+ init$fromliteral(&_49, "];", 2);
26064+ PutStrLn(0 /* _47 */, &*_48, &_49);
26065+ string$dest(&_49);
2613726066 }
26067+ {
26068+ struct stack/*var*/ *_49 = &(*sp).current.elems;
26069+ struct var _50; memset(&_50, 0, sizeof(struct var));
26070+ {
26071+ varinit(&_50, &_mut_elem);
26072+ }
26073+ push(0 /* _48 */, &*_49, &_50, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 5136);
26074+ var$dest(&_50);
26075+ }
26076+ {
26077+ uint64_t _50; memset(&_50, 0, sizeof(uint64_t));
26078+ {
26079+ uint64_t _51; memset(&_51, 0, sizeof(uint64_t));
26080+ _51 = 1;
26081+ _50 = *level + _51;
26082+ _IGNORE_(_51);
26083+ }
26084+ struct stack/*qtypepureid*/ _51; memset(&_51, 0, sizeof(struct stack/*qtypepureid*/));
26085+ {
26086+ empty(&_51, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5137);
26087+ }
26088+ ParseBlockRaw$(0 /* _49 */, &*streams, &*txtpos, &*state, &_50, &*sp, &*tmpnr, &_51, &*totality, &*action, &*self, &*reduced_ids);
26089+ free$(&_51, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest);
26090+ _IGNORE_(_50);
26091+ }
26092+ bool _51;
26093+ {
26094+ struct stack/*var*/ *_52 = &(*sp).current.elems;
26095+ struct string _53; memset(&_53, 0, sizeof(struct string));
26096+ {
26097+ uint8_t _54; memset(&_54, 0, sizeof(uint8_t));
26098+ _54 = 42;
26099+ struct string _55; memset(&_55, 0, sizeof(struct string));
26100+ {
26101+ nonempty_to_string(&_55, &*id);
26102+ }
26103+ preapp(&_53, &_54, &_55);
26104+ string$dest(&_55);
26105+ _IGNORE_(_54);
26106+ }
26107+ find_var_report_unused_and_mark_used(&_51, &*_52, &_53);
26108+ string$dest(&_53);
26109+ }
26110+ if(_51)
26111+ {
26112+ {
26113+ const struct StreamOut *_53 = &(*streams).out;
26114+ uint64_t _54; memset(&_54, 0, sizeof(uint64_t));
26115+ {
26116+ uint64_t _55; memset(&_55, 0, sizeof(uint64_t));
26117+ _55 = 1;
26118+ _54 = *level + _55;
26119+ _IGNORE_(_55);
26120+ }
26121+ Indent(0 /* _52 */, &*_53, &_54);
26122+ _IGNORE_(_54);
26123+ }
26124+ {
26125+ const struct StreamOut *_54 = &(*streams).out;
26126+ struct string _55; memset(&_55, 0, sizeof(struct string));
26127+ init$fromliteral(&_55, "__SUPPRESS_WARNING_UNUSED_VARIABLE__(&", 38);
26128+ PutStr(0 /* _53 */, &*_54, &_55);
26129+ string$dest(&_55);
26130+ }
26131+ {
26132+ const struct StreamOut *_55 = &(*streams).out;
26133+ struct string _56; memset(&_56, 0, sizeof(struct string));
26134+ {
26135+ const struct nonempty_string *_57 = &(_mut_elem).id;
26136+ nonempty_to_string(&_56, &*_57);
26137+ }
26138+ PutStr(0 /* _54 */, &*_55, &_56);
26139+ string$dest(&_56);
26140+ }
26141+ {
26142+ const struct StreamOut *_56 = &(*streams).out;
26143+ struct string _57; memset(&_57, 0, sizeof(struct string));
26144+ init$fromliteral(&_57, ");", 2);
26145+ PutStrLn(0 /* _55 */, &*_56, &_57);
26146+ string$dest(&_57);
26147+ }
26148+ }
26149+ {
26150+ const struct StreamOut *_53 = &(*streams).err;
26151+ AssertUsedThenCloseScope$(0 /* _52 */, &*_53, &*txtpos, &*sp);
26152+ }
26153+ qtypepureid$dest(&_mut_elem);
2613826154 }
2613926155 {
26140- const struct StreamOut *_52 = &(*streams).err;
26141- AssertUsedThenCloseScope$(0 /* _51 */, &*_52, &*txtpos, &*sp);
26156+ uint8_t _39; memset(&_39, 0, sizeof(uint8_t));
26157+ _39 = 125;
26158+ AssertGet$(0 /* _38 */, &*streams, &*txtpos, &*level, &_39);
26159+ _IGNORE_(_39);
2614226160 }
26143- qtypepureid$dest(&_mut_elem);
26161+ {
26162+ const struct StreamOut *_40 = &(*streams).out;
26163+ Indent(0 /* _39 */, &*_40, &*level);
26164+ }
26165+ {
26166+ const struct StreamOut *_41 = &(*streams).out;
26167+ struct string _42; memset(&_42, 0, sizeof(struct string));
26168+ init$fromliteral(&_42, "}", 1);
26169+ PutStrLn(0 /* _40 */, &*_41, &_42);
26170+ string$dest(&_42);
26171+ }
26172+ nonempty_string$dest(&_counter);
2614426173 }
26145- {
26146- uint8_t _38; memset(&_38, 0, sizeof(uint8_t));
26147- _38 = 125;
26148- AssertGet$(0 /* _37 */, &*streams, &*txtpos, &*level, &_38);
26149- _IGNORE_(_38);
26150- }
26151- {
26152- const struct StreamOut *_39 = &(*streams).out;
26153- Indent(0 /* _38 */, &*_39, &*level);
26154- }
26155- {
26156- const struct StreamOut *_40 = &(*streams).out;
26157- struct string _41; memset(&_41, 0, sizeof(struct string));
26158- init$fromliteral(&_41, "}", 1);
26159- PutStrLn(0 /* _39 */, &*_40, &_41);
26160- string$dest(&_41);
26161- }
26162- nonempty_string$dest(&_counter);
26174+ break;
2616326175 }
26164- break;
26165- }
26166- case 2: // void container_opt:
26167- {
26176+ case 2: // void container_opt:
2616826177 {
2616926178 {
26170- const struct StreamOut *_23 = &(*streams).err;
26171- struct string _24; memset(&_24, 0, sizeof(struct string));
26172- init$fromliteral(&_24, "for construct not implemented for ", 34);
26173- PutStr(0 /* _22 */, &*_23, &_24);
26174- string$dest(&_24);
26175- }
26176- {
26177- const struct StreamOut *_24 = &(*streams).err;
26178- struct type_pure _25; memset(&_25, 0, sizeof(struct type_pure));
2617926179 {
26180- const struct container_type *_26 = &(*containertype).which;
26181- const struct type_pure_prim *_27 = &(*containertype).subtype;
26182- type_pure_wrapped(&_25, &*_26, &*_27);
26180+ const struct StreamOut *_24 = &(*streams).err;
26181+ struct string _25; memset(&_25, 0, sizeof(struct string));
26182+ init$fromliteral(&_25, "for construct not implemented for ", 34);
26183+ PutStr(0 /* _23 */, &*_24, &_25);
26184+ string$dest(&_25);
2618326185 }
26184- EPrTypePure(0 /* _23 */, &*_24, &_25);
26185- type_pure$dest(&_25);
26186+ {
26187+ const struct StreamOut *_25 = &(*streams).err;
26188+ struct type_pure _26; memset(&_26, 0, sizeof(struct type_pure));
26189+ {
26190+ const struct container_type *_27 = &(*containertype).which;
26191+ const struct type_pure_prim *_28 = &(*containertype).subtype;
26192+ type_pure_wrapped(&_26, &*_27, &*_28);
26193+ }
26194+ EPrTypePure(0 /* _24 */, &*_25, &_26);
26195+ type_pure$dest(&_26);
26196+ }
26197+ {
26198+ const struct StreamOut *_26 = &(*streams).err;
26199+ Fail$(0 /* _25 */, &*_26, &*txtpos);
26200+ }
2618626201 }
26187- {
26188- const struct StreamOut *_25 = &(*streams).err;
26189- Fail$(0 /* _24 */, &*_25, &*txtpos);
26190- }
26202+ break;
2619126203 }
26192- break;
26193- }
26194- case 3: // void container_box:
26195- {
26204+ case 3: // void container_box:
2619626205 {
2619726206 {
26198- const struct StreamOut *_24 = &(*streams).err;
26199- struct string _25; memset(&_25, 0, sizeof(struct string));
26200- init$fromliteral(&_25, "for construct not implemented for ", 34);
26201- PutStr(0 /* _23 */, &*_24, &_25);
26202- string$dest(&_25);
26203- }
26204- {
26205- const struct StreamOut *_25 = &(*streams).err;
26206- struct type_pure _26; memset(&_26, 0, sizeof(struct type_pure));
2620726207 {
26208- const struct container_type *_27 = &(*containertype).which;
26209- const struct type_pure_prim *_28 = &(*containertype).subtype;
26210- type_pure_wrapped(&_26, &*_27, &*_28);
26208+ const struct StreamOut *_25 = &(*streams).err;
26209+ struct string _26; memset(&_26, 0, sizeof(struct string));
26210+ init$fromliteral(&_26, "for construct not implemented for ", 34);
26211+ PutStr(0 /* _24 */, &*_25, &_26);
26212+ string$dest(&_26);
2621126213 }
26212- EPrTypePure(0 /* _24 */, &*_25, &_26);
26213- type_pure$dest(&_26);
26214+ {
26215+ const struct StreamOut *_26 = &(*streams).err;
26216+ struct type_pure _27; memset(&_27, 0, sizeof(struct type_pure));
26217+ {
26218+ const struct container_type *_28 = &(*containertype).which;
26219+ const struct type_pure_prim *_29 = &(*containertype).subtype;
26220+ type_pure_wrapped(&_27, &*_28, &*_29);
26221+ }
26222+ EPrTypePure(0 /* _25 */, &*_26, &_27);
26223+ type_pure$dest(&_27);
26224+ }
26225+ {
26226+ const struct StreamOut *_27 = &(*streams).err;
26227+ Fail$(0 /* _26 */, &*_27, &*txtpos);
26228+ }
2621426229 }
26215- {
26216- const struct StreamOut *_26 = &(*streams).err;
26217- Fail$(0 /* _25 */, &*_26, &*txtpos);
26218- }
26230+ break;
2621926231 }
26220- break;
26232+ default:
26233+ {
26234+ fprintf(stderr, "INTERNAL ERROR IN SWITCH");
26235+ break;
26236+ }
2622126237 }
26222- default:
26223- {
26224- fprintf(stderr, "INTERNAL ERROR IN SWITCH");
26225- break;
26226- }
26238+ container_type$dest(&_aw);
26239+ qtypepureid$dest(&_const_container);
2622726240 }
26228- container_type$dest(&_aw);
26229- qtypepureid$dest(&_const_container);
26241+ break;
2623026242 }
26231- break;
26243+ default:
26244+ {
26245+ fprintf(stderr, "INTERNAL ERROR IN SWITCH");
26246+ break;
26247+ }
2623226248 }
26233- default:
26234- {
26235- fprintf(stderr, "INTERNAL ERROR IN SWITCH");
26236- break;
26249+ type_pure$dest(&_containertype);
26250+ nonempty_string$dest(&_9);
2623726251 }
26252+ free$(&_to, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest);
26253+ qtypepureid$dest(&_8);
2623826254 }
26239- type_pure$dest(&_containertype);
26240- nonempty_string$dest(&_8);
26241- }
26242- free$(&_to, sizeof(struct nonempty_string), (void (*)(void *))nonempty_string$dest);
2624326255 type_mode$dest(&_q);
2624426256 }
2624526257 }
@@ -26346,7 +26358,7 @@
2634626358 }
2634726359 struct stack/*qtypepureid*/ _12; memset(&_12, 0, sizeof(struct stack/*qtypepureid*/));
2634826360 {
26349- solid(&_12, &_condition, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5173);
26361+ solid(&_12, &_condition, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5176);
2635026362 }
2635126363 struct string _13; memset(&_13, 0, sizeof(struct string));
2635226364 {
@@ -26434,7 +26446,7 @@
2643426446 }
2643526447 struct stack/*qtypepureid*/ _19; memset(&_19, 0, sizeof(struct stack/*qtypepureid*/));
2643626448 {
26437- empty(&_19, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5180);
26449+ empty(&_19, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5183);
2643826450 }
2643926451 ParseBlock$(0 /* _17 */, &*streams, &*txtpos, &*state, &_18, &*sp, &*tmpnr, &_19, &*totality, &*action, &*self, &*reduced_ids);
2644026452 free$(&_19, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest);
@@ -26513,7 +26525,7 @@
2651326525 {
2651426526 struct stack/*qtypepureid*/ _6; memset(&_6, 0, sizeof(struct stack/*qtypepureid*/));
2651526527 {
26516- empty(&_6, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5201);
26528+ empty(&_6, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 5204);
2651726529 }
2651826530 bool _7; memset(&_7, 0, sizeof(bool));
2651926531 _7 = 0;
@@ -27695,7 +27707,7 @@
2769527707 _IGNORE_(_3);
2769627708 }
2769727709 {
27698- push(0 /* _3 */, &*elems, &_ti, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 5504);
27710+ push(0 /* _3 */, &*elems, &_ti, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 5507);
2769927711 }
2770027712 {
2770127713 uint64_t _5; memset(&_5, 0, sizeof(uint64_t));
@@ -28373,7 +28385,7 @@
2837328385 const struct nonempty_string *_6 = &(*c).id;
2837428386 typepureid(&_4, &*_5, &*_6);
2837528387 }
28376- push(0 /* _3 */, &*extracted, &_4, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 5638);
28388+ push(0 /* _3 */, &*extracted, &_4, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 5641);
2837728389 typepureid$dest(&_4);
2837828390 }
2837928391 }
@@ -30628,11 +30640,11 @@
3062830640 {
3062930641 struct qtype _decl_; memset(&_decl_, 0, sizeof(struct qtype));
3063030642 {
30631- at_get$(&_decl_, &*decl, &*idx, sizeof(struct qtype), (void (*)(void *))qtype$dest, (void (*)(void *, const void *))qtype$copy, 5943);
30643+ at_get$(&_decl_, &*decl, &*idx, sizeof(struct qtype), (void (*)(void *))qtype$dest, (void (*)(void *, const void *))qtype$copy, 5946);
3063230644 }
3063330645 struct qtype _def_; memset(&_def_, 0, sizeof(struct qtype));
3063430646 {
30635- at_get$(&_def_, &*def, &*idx, sizeof(struct qtype), (void (*)(void *))qtype$dest, (void (*)(void *, const void *))qtype$copy, 5944);
30647+ at_get$(&_def_, &*def, &*idx, sizeof(struct qtype), (void (*)(void *))qtype$dest, (void (*)(void *, const void *))qtype$copy, 5947);
3063630648 }
3063730649 bool _4;
3063830650 {
@@ -30904,7 +30916,7 @@
3090430916 {
3090530917 STRUCT(&_6, &*elems);
3090630918 }
30907- solid(&_5, &_6, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6009);
30919+ solid(&_5, &_6, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6012);
3090830920 flavour$dest(&_6);
3090930921 }
3091030922 structdef(&_4, &_5, &*id, &*used);
@@ -31557,7 +31569,7 @@
3155731569 {
3155831570 struct typepureid _cur; memset(&_cur, 0, sizeof(struct typepureid));
3155931571 {
31560- at_get$(&_cur, &*elems, &*idx, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6128);
31572+ at_get$(&_cur, &*elems, &*idx, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6131);
3156131573 }
3156231574 {
3156331575 uint64_t _4; memset(&_4, 0, sizeof(uint64_t));
@@ -31658,7 +31670,7 @@
3165831670 {
3165931671 struct typepureid _cur; memset(&_cur, 0, sizeof(struct typepureid));
3166031672 {
31661- at_get$(&_cur, &*elems, &*idx, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6144);
31673+ at_get$(&_cur, &*elems, &*idx, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6147);
3166231674 }
3166331675 {
3166431676 struct qtype _4; memset(&_4, 0, sizeof(struct qtype));
@@ -31731,7 +31743,7 @@
3173131743 {
3173231744 struct constr _c; memset(&_c, 0, sizeof(struct constr));
3173331745 {
31734- at_get$(&_c, &*constrs, &*idx, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 6158);
31746+ at_get$(&_c, &*constrs, &*idx, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 6161);
3173531747 }
3173631748 bool _4;
3173731749 {
@@ -31799,11 +31811,11 @@
3179931811 }
3180031812 struct typepureid _elem; memset(&_elem, 0, sizeof(struct typepureid));
3180131813 {
31802- at_get$(&_elem, &_elems, &*idx, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6175);
31814+ at_get$(&_elem, &_elems, &*idx, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6178);
3180331815 }
3180431816 struct constr _constr; memset(&_constr, 0, sizeof(struct constr));
3180531817 {
31806- at_get$(&_constr, &*constrs, &*idx, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 6177);
31818+ at_get$(&_constr, &*constrs, &*idx, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 6180);
3180731819 }
3180831820 struct type_pure _type; memset(&_type, 0, sizeof(struct type_pure));
3180931821 {
@@ -32268,7 +32280,7 @@
3226832280 {
3226932281 DATA(&_8, &*constrs);
3227032282 }
32271- solid(&_7, &_8, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6221);
32283+ solid(&_7, &_8, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6224);
3227232284 flavour$dest(&_8);
3227332285 }
3227432286 structdef(&_6, &_7, &*id, &*used);
@@ -32459,7 +32471,7 @@
3245932471 _IGNORE_(_3);
3246032472 }
3246132473 {
32462- push(0 /* _3 */, &*elems, &_ti, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6263);
32474+ push(0 /* _3 */, &*elems, &_ti, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6266);
3246332475 }
3246432476 {
3246532477 uint64_t _5; memset(&_5, 0, sizeof(uint64_t));
@@ -32691,7 +32703,7 @@
3269132703 }
3269232704 }
3269332705 {
32694- push(0 /* _10 */, &*constrs, &_c, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 6317);
32706+ push(0 /* _10 */, &*constrs, &_c, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 6320);
3269532707 }
3269632708 bool _12;
3269732709 {
@@ -32770,7 +32782,7 @@
3277032782 }
3277132783 }
3277232784
32773-void EmitGenericArgsId$(void *const _0, const struct Streams *const streams, const struct stack/*qtypepureid*/ *const content)
32785+void EmitGenericArgsId$(void *const _0, const struct Streams *const streams, const struct stack/*qtypepureid*/ *const args)
3277432786 {
3277532787 {
3277632788 {
@@ -32794,10 +32806,10 @@
3279432806 PutStr(0 /* _2 */, &*_3, &_4);
3279532807 string$dest(&_4);
3279632808 }
32797- const struct stack/*qtypepureid*/ *_3 = &(*content);
32809+ const struct stack/*qtypepureid*/ *_3 = &(*args);
3279832810 for(uint64_t _4 = 0; _4 < (*_3).fill; ++_4)
3279932811 {
32800- const struct qtypepureid *elem = &((struct qtypepureid *)((*_3).data))[_4];
32812+ const struct qtypepureid *arg = &((struct qtypepureid *)((*_3).data))[_4];
3280132813 {
3280232814 const struct StreamOut *_6 = &(*streams).out;
3280332815 struct string _7; memset(&_7, 0, sizeof(struct string));
@@ -32809,7 +32821,7 @@
3280932821 const struct StreamOut *_7 = &(*streams).out;
3281032822 struct string _8; memset(&_8, 0, sizeof(struct string));
3281132823 {
32812- const struct nonempty_string *_9 = &(*elem).id;
32824+ const struct nonempty_string *_9 = &(*arg).id;
3281332825 nonempty_to_string(&_8, &*_9);
3281432826 }
3281532827 PutStr(0 /* _6 */, &*_7, &_8);
@@ -32873,7 +32885,7 @@
3287332885 const struct stack/*qtypepure*/ *_5 = &(*parids);
3287432886 for(uint64_t _6 = 0; _6 < (*_5).fill; ++_6)
3287532887 {
32876- const struct qtypepure *elem = &((struct qtypepure *)((*_5).data))[_6];
32888+ const struct qtypepure *parid = &((struct qtypepure *)((*_5).data))[_6];
3287732889 {
3287832890 const struct StreamOut *_8 = &(*streams).out;
3287932891 struct string _9; memset(&_9, 0, sizeof(struct string));
@@ -32887,7 +32899,7 @@
3288732899 {
3288832900 GenVar$(&_8, &_parnr);
3288932901 }
32890- qtypepureid(&_par, &*elem, &_8);
32902+ qtypepureid(&_par, &*parid, &_8);
3289132903 nonempty_string$dest(&_8);
3289232904 }
3289332905 {
@@ -32969,16 +32981,16 @@
3296932981 }
3297032982 }
3297132983
32972-void AttachGenericIds$(struct stack/*qtypepureid*/ *const _0, const struct stack/*qtypepure*/ *const content)
32984+void AttachGenericIds$(struct stack/*qtypepureid*/ *const _0, const struct stack/*qtypepure*/ *const ids)
3297332985 {
3297432986 {
3297532987 uint64_t _nr; memset(&_nr, 0, sizeof(uint64_t));
3297632988 _nr = 0;
3297732989 struct stack/*qtypepureid*/ _qtpis; memset(&_qtpis, 0, sizeof(struct stack/*qtypepureid*/));
32978- const struct stack/*qtypepure*/ *_1 = &(*content);
32990+ const struct stack/*qtypepure*/ *_1 = &(*ids);
3297932991 for(uint64_t _2 = 0; _2 < (*_1).fill; ++_2)
3298032992 {
32981- const struct qtypepure *elem = &((struct qtypepure *)((*_1).data))[_2];
32993+ const struct qtypepure *id = &((struct qtypepure *)((*_1).data))[_2];
3298232994 {
3298332995 struct qtypepureid _4; memset(&_4, 0, sizeof(struct qtypepureid));
3298432996 {
@@ -32986,10 +32998,10 @@
3298632998 {
3298732999 GenPar$(&_5, &_nr);
3298833000 }
32989- qtypepureid(&_4, &*elem, &_5);
33001+ qtypepureid(&_4, &*id, &_5);
3299033002 nonempty_string$dest(&_5);
3299133003 }
32992- push(0 /* _3 */, &_qtpis, &_4, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6418);
33004+ push(0 /* _3 */, &_qtpis, &_4, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6421);
3299333005 qtypepureid$dest(&_4);
3299433006 }
3299533007 }
@@ -33019,7 +33031,7 @@
3301933031 qtypepureid(&_4, &_5, &*_6);
3302033032 qtypepure$dest(&_5);
3302133033 }
33022- push(0 /* _3 */, &_qtpis, &_4, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6429);
33034+ push(0 /* _3 */, &_qtpis, &_4, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6432);
3302333035 qtypepureid$dest(&_4);
3302433036 }
3302533037 }
@@ -33238,8 +33250,6 @@
3323833250 const struct type_mode *_1 = &(*par).qt.qualifier;
3323933251 attachQualifier(&_content, &*elems, &*_1);
3324033252 }
33241- struct stack/*qtypepureid*/ _content_; memset(&_content_, 0, sizeof(struct stack/*qtypepureid*/));
33242- clone$(&_content_, &(_content), sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy);
3324333253 const struct stack/*qtypepureid*/ *_1 = &(_content);
3324433254 for(uint64_t _2 = 0; _2 < (*_1).fill; ++_2)
3324533255 {
@@ -33423,13 +33433,13 @@
3342333433 ReducedId(&_19, &*_20, &_21);
3342433434 string$dest(&_21);
3342533435 }
33426- push(0 /* _18 */, &*reduced_ids, &_19, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 6472);
33436+ push(0 /* _18 */, &*reduced_ids, &_19, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 6474);
3342733437 ReducedId$dest(&_19);
3342833438 }
3342933439 }
3343033440 }
3343133441 {
33432- ParseMatch$(0 /* _16 */, &*streams, &*txtpos, &*structs, &*level, &*sp, &*tmpnr, &_elem, &*casenr, &*ti, &_content_, &*usedids, &*reduced_ids);
33442+ ParseMatch$(0 /* _16 */, &*streams, &*txtpos, &*structs, &*level, &*sp, &*tmpnr, &_elem, &*casenr, &*ti, &_content, &*usedids, &*reduced_ids);
3343333443 }
3343433444 free$(&_redid, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest);
3343533445 qtypepureid$dest(&_elem);
@@ -33436,7 +33446,6 @@
3343633446 nonempty_string$dest(&_parid);
3343733447 }
3343833448 }
33439- free$(&_content_, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest);
3344033449 free$(&_content, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest);
3344133450 _IGNORE_(_first);
3344233451 }
@@ -33517,7 +33526,7 @@
3351733526 {
3351833527 nonempty_to_string(&_8, &_parid);
3351933528 }
33520- push(0 /* _7 */, &*usedids, &_8, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 6504);
33529+ push(0 /* _7 */, &*usedids, &_8, sizeof(struct string), (void (*)(void *))string$dest, (void (*)(void *, const void *))string$copy, 6506);
3352133530 string$dest(&_8);
3352233531 }
3352333532 struct qtypepureid _qti; memset(&_qti, 0, sizeof(struct qtypepureid));
@@ -33608,7 +33617,7 @@
3360833617 ReducedId(&_18, &*_19, &_20);
3360933618 string$dest(&_20);
3361033619 }
33611- push(0 /* _17 */, &*reduced_ids, &_18, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 6514);
33620+ push(0 /* _17 */, &*reduced_ids, &_18, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 6516);
3361233621 ReducedId$dest(&_18);
3361333622 }
3361433623 }
@@ -33619,7 +33628,7 @@
3361933628 {
3362033629 varinit(&_17, &_qti);
3362133630 }
33622- push(0 /* _15 */, &*_16, &_17, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 6518);
33631+ push(0 /* _15 */, &*_16, &_17, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 6520);
3362333632 var$dest(&_17);
3362433633 }
3362533634 free$(&_redids, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest);
@@ -33965,7 +33974,7 @@
3396533974 struct typepureid _elem; memset(&_elem, 0, sizeof(struct typepureid));
3396633975 {
3396733976 const struct stack/*typepureid*/ *_35 = &(*f).elems;
33968- at_get$(&_elem, &*_35, &*idx, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6580);
33977+ at_get$(&_elem, &*_35, &*idx, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 6582);
3396933978 }
3397033979 {
3397133980 struct qtypepureid _35; memset(&_35, 0, sizeof(struct qtypepureid));
@@ -34045,7 +34054,7 @@
3404534054 struct stack/*qtypepureid*/ _43; memset(&_43, 0, sizeof(struct stack/*qtypepureid*/));
3404634055 struct stack/*qtypepureid*/ *parids = &_43;
3404734056 {
34048- push(0 /* _44 */, &*parids, &*elem, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6585);
34057+ push(0 /* _44 */, &*parids, &*elem, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6587);
3404934058 }
3405034059 {
3405134060 ParseMatch$(0 /* _45 */, &*streams, &*txtpos, &*structs, &*level, &*sp, &*tmpnr, &*elem, &*casenr, &*ti, &*parids, &*usedids, &*reduced_ids);
@@ -34253,7 +34262,7 @@
3425334262 struct constr _constr; memset(&_constr, 0, sizeof(struct constr));
3425434263 {
3425534264 const struct stack/*constr*/ *_37 = &(*f).constrs;
34256- at_get$(&_constr, &*_37, &*idx, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 6611);
34265+ at_get$(&_constr, &*_37, &*idx, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 6613);
3425734266 }
3425834267 struct qtypepureid _sub; memset(&_sub, 0, sizeof(struct qtypepureid));
3425934268 {
@@ -34344,7 +34353,7 @@
3434434353 ReducedId(&_45, &*_46, &_47);
3434534354 string$dest(&_47);
3434634355 }
34347- push(0 /* _44 */, &*reduced_ids, &_45, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 6614);
34356+ push(0 /* _44 */, &*reduced_ids, &_45, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 6616);
3434834357 ReducedId$dest(&_45);
3434934358 }
3435034359 struct stack/*typepureid*/ _elems; memset(&_elems, 0, sizeof(struct stack/*typepureid*/));
@@ -34755,7 +34764,7 @@
3475534764 struct stack/*qtypepureid*/ _35; memset(&_35, 0, sizeof(struct stack/*qtypepureid*/));
3475634765 struct stack/*qtypepureid*/ *parids = &_35;
3475734766 {
34758- push(0 /* _36 */, &*parids, &_elem, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6660);
34767+ push(0 /* _36 */, &*parids, &_elem, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6662);
3475934768 }
3476034769 {
3476134770 struct ReducedId _38; memset(&_38, 0, sizeof(struct ReducedId));
@@ -34769,7 +34778,7 @@
3476934778 ReducedId(&_38, &*_39, &_40);
3477034779 string$dest(&_40);
3477134780 }
34772- push(0 /* _37 */, &*reduced_ids, &_38, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 6661);
34781+ push(0 /* _37 */, &*reduced_ids, &_38, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 6663);
3477334782 ReducedId$dest(&_38);
3477434783 }
3477534784 {
@@ -35048,7 +35057,7 @@
3504835057 {
3504935058 struct stack/*par*/ _2; memset(&_2, 0, sizeof(struct stack/*par*/));
3505035059 {
35051- stack(&_2, sizeof(struct par), (void (*)(void *))par$dest, (void (*)(void *, const void *))par$copy, 6712);
35060+ stack(&_2, sizeof(struct par), (void (*)(void *))par$dest, (void (*)(void *, const void *))par$copy, 6714);
3505235061 }
3505335062 pscope(&_1, &_2);
3505435063 free$(&_2, sizeof(struct par), (void (*)(void *))par$dest);
@@ -35055,13 +35064,13 @@
3505535064 }
3505635065 struct stack/*vscope*/ _2; memset(&_2, 0, sizeof(struct stack/*vscope*/));
3505735066 {
35058- stack(&_2, sizeof(struct vscope), (void (*)(void *))vscope$dest, (void (*)(void *, const void *))vscope$copy, 6712);
35067+ stack(&_2, sizeof(struct vscope), (void (*)(void *))vscope$dest, (void (*)(void *, const void *))vscope$copy, 6714);
3505935068 }
3506035069 struct vscope _3; memset(&_3, 0, sizeof(struct vscope));
3506135070 {
3506235071 struct stack/*var*/ _4; memset(&_4, 0, sizeof(struct stack/*var*/));
3506335072 {
35064- stack(&_4, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 6712);
35073+ stack(&_4, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 6714);
3506535074 }
3506635075 vscope(&_3, &_4);
3506735076 free$(&_4, sizeof(struct var), (void (*)(void *))var$dest);
@@ -35167,7 +35176,7 @@
3516735176 {
3516835177 struct stack/*flavour*/ _8; memset(&_8, 0, sizeof(struct stack/*flavour*/));
3516935178 {
35170- /*UNION*/ empty(&_8, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6743);
35179+ /*UNION*/ empty(&_8, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6745);
3517135180 }
3517235181 bool _9; memset(&_9, 0, sizeof(bool));
3517335182 _9 = 0;
@@ -35177,7 +35186,7 @@
3517735186 }
3517835187 {
3517935188 struct stack/*structdef*/ *_9 = &(*state).structs;
35180- push(0 /* _8 */, &*_9, &_strdecl, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 6744);
35189+ push(0 /* _8 */, &*_9, &_strdecl, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 6746);
3518135190 }
3518235191 {
3518335192 const struct StreamOut *_10 = &(*streams).out;
@@ -35355,7 +35364,7 @@
3535535364 {
3535635365 struct stack/*flavour*/ _9; memset(&_9, 0, sizeof(struct stack/*flavour*/));
3535735366 {
35358- /*STRUCT*/ empty(&_9, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6792);
35367+ /*STRUCT*/ empty(&_9, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6794);
3535935368 }
3536035369 bool _10; memset(&_10, 0, sizeof(bool));
3536135370 _10 = 0;
@@ -35365,7 +35374,7 @@
3536535374 }
3536635375 {
3536735376 struct stack/*structdef*/ *_10 = &(*state).structs;
35368- push(0 /* _9 */, &*_10, &_strdecl, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 6793);
35377+ push(0 /* _9 */, &*_10, &_strdecl, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 6795);
3536935378 }
3537035379 {
3537135380 const struct StreamOut *_11 = &(*streams).err;
@@ -35543,7 +35552,7 @@
3554335552 {
3554435553 struct stack/*flavour*/ _8; memset(&_8, 0, sizeof(struct stack/*flavour*/));
3554535554 {
35546- /*STRUCT*/ empty(&_8, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6841);
35555+ /*STRUCT*/ empty(&_8, sizeof(struct flavour), (void (*)(void *))flavour$dest, (void (*)(void *, const void *))flavour$copy, 6843);
3554735556 }
3554835557 bool _9; memset(&_9, 0, sizeof(bool));
3554935558 _9 = 0;
@@ -35553,7 +35562,7 @@
3555335562 }
3555435563 {
3555535564 struct stack/*structdef*/ *_9 = &(*state).structs;
35556- push(0 /* _8 */, &*_9, &_strdecl, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 6842);
35565+ push(0 /* _8 */, &*_9, &_strdecl, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 6844);
3555735566 }
3555835567 {
3555935568 const struct StreamOut *_10 = &(*streams).out;
@@ -35733,7 +35742,7 @@
3573335742 {
3573435743 struct stack/*qtypepure*/ _parids; memset(&_parids, 0, sizeof(struct stack/*qtypepure*/));
3573535744 {
35736- push(0 /* _11 */, &_parids, &_parqt, sizeof(struct qtypepure), (void (*)(void *))qtypepure$dest, (void (*)(void *, const void *))qtypepure$copy, 6876);
35745+ push(0 /* _11 */, &_parids, &_parqt, sizeof(struct qtypepure), (void (*)(void *))qtypepure$dest, (void (*)(void *, const void *))qtypepure$copy, 6878);
3573735746 }
3573835747 while(1)
3573935748 {
@@ -35780,7 +35789,7 @@
3578035789 _IGNORE_(_15);
3578135790 }
3578235791 {
35783- push(0 /* _15 */, &_parids, &_par, sizeof(struct qtypepure), (void (*)(void *))qtypepure$dest, (void (*)(void *, const void *))qtypepure$copy, 6882);
35792+ push(0 /* _15 */, &_parids, &_par, sizeof(struct qtypepure), (void (*)(void *))qtypepure$dest, (void (*)(void *, const void *))qtypepure$copy, 6884);
3578435793 }
3578535794 qtypepure$dest(&_par);
3578635795 }
@@ -35822,7 +35831,7 @@
3582235831 uint8_t _13; memset(&_13, 0, sizeof(uint8_t));
3582335832 {
3582435833 struct stack/*u8*/ *_14 = &(*parid).data;
35825- pop$(&_13, &*_14, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 6896);
35834+ pop$(&_13, &*_14, sizeof(uint8_t), 0/*DEST*/, 0/*COPY*/, 6898);
3582635835 }
3582735836 nonempty_string(&_12, &_13, &*parid);
3582835837 _IGNORE_(_13);
@@ -35882,7 +35891,7 @@
3588235891 {
3588335892 qtypepureid(&_20, &_parqt, &*parid);
3588435893 }
35885- push(0 /* _19 */, &_parids, &_20, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6906);
35894+ push(0 /* _19 */, &_parids, &_20, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6908);
3588635895 qtypepureid$dest(&_20);
3588735896 }
3588835897 while(1)
@@ -35930,7 +35939,7 @@
3593035939 _IGNORE_(_23);
3593135940 }
3593235941 {
35933- push(0 /* _23 */, &_parids, &_par, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6913);
35942+ push(0 /* _23 */, &_parids, &_par, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6915);
3593435943 }
3593535944 qtypepureid$dest(&_par);
3593635945 }
@@ -36024,7 +36033,7 @@
3602436033 {
3602536034 struct stack/*qtypepureid*/ _16; memset(&_16, 0, sizeof(struct stack/*qtypepureid*/));
3602636035 {
36027- stack(&_16, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6935);
36036+ stack(&_16, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6937);
3602836037 }
3602936038 fnpartypeids(&_15, &_16);
3603036039 free$(&_16, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest);
@@ -36135,7 +36144,7 @@
3613536144 {
3613636145 struct stack/*qtypepureid*/ _14; memset(&_14, 0, sizeof(struct stack/*qtypepureid*/));
3613736146 {
36138- stack(&_14, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6951);
36147+ stack(&_14, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 6953);
3613936148 }
3614036149 fnpartypeids(&_13, &_14);
3614136150 free$(&_14, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest);
@@ -36161,41 +36170,40 @@
3616136170 const struct fnpartypes *ps = ((*_7).fnpartypes).data;
3616236171 {
3616336172 {
36164- struct stack/*qtypepure*/ _prps; memset(&_prps, 0, sizeof(struct stack/*qtypepure*/));
36165- clone$(&_prps, &(*ps).qts, sizeof(struct qtypepure), (void (*)(void *))qtypepure$dest, (void (*)(void *, const void *))qtypepure$copy);
3616636173 struct stack/*qtype*/ _pars; memset(&_pars, 0, sizeof(struct stack/*qtype*/));
36167- const struct stack/*qtypepure*/ *_10 = &(_prps);
36168- for(uint64_t _11 = 0; _11 < (*_10).fill; ++_11)
36174+ const struct stack/*qtypepure*/ *_10 = &(*ps).qts;
36175+ const struct stack/*qtypepure*/ *_11 = &(*_10);
36176+ for(uint64_t _12 = 0; _12 < (*_11).fill; ++_12)
3616936177 {
36170- const struct qtypepure *prp = &((struct qtypepure *)((*_10).data))[_11];
36178+ const struct qtypepure *par = &((struct qtypepure *)((*_11).data))[_12];
3617136179 {
36172- struct qtype _13; memset(&_13, 0, sizeof(struct qtype));
36180+ struct qtype _14; memset(&_14, 0, sizeof(struct qtype));
3617336181 {
36174- const struct type_mode *_14 = &(*prp).qualifier;
36175- struct type _15; memset(&_15, 0, sizeof(struct type));
36182+ const struct type_mode *_15 = &(*par).qualifier;
36183+ struct type _16; memset(&_16, 0, sizeof(struct type));
3617636184 {
36177- const struct type_pure *_16 = &(*prp).type;
36178- Expand(&_15, &*_16);
36185+ const struct type_pure *_17 = &(*par).type;
36186+ Expand(&_16, &*_17);
3617936187 }
36180- qtype(&_13, &*_14, &_15);
36181- type$dest(&_15);
36188+ qtype(&_14, &*_15, &_16);
36189+ type$dest(&_16);
3618236190 }
36183- push(0 /* _12 */, &_pars, &_13, sizeof(struct qtype), (void (*)(void *))qtype$dest, (void (*)(void *, const void *))qtype$copy, 6964);
36184- qtype$dest(&_13);
36191+ push(0 /* _13 */, &_pars, &_14, sizeof(struct qtype), (void (*)(void *))qtype$dest, (void (*)(void *, const void *))qtype$copy, 6965);
36192+ qtype$dest(&_14);
3618536193 }
3618636194 }
3618736195 struct stack/*def*/ _cur; memset(&_cur, 0, sizeof(struct stack/*def*/));
3618836196 {
36189- struct stack/*def*/ *_12 = &(*state).defs;
36190- struct string _13; memset(&_13, 0, sizeof(struct string));
36197+ struct stack/*def*/ *_13 = &(*state).defs;
36198+ struct string _14; memset(&_14, 0, sizeof(struct string));
3619136199 {
36192- nonempty_to_string(&_13, &_id);
36200+ nonempty_to_string(&_14, &_id);
3619336201 }
36194- findFnDef(&_cur, &*_12, &_13);
36195- string$dest(&_13);
36202+ findFnDef(&_cur, &*_13, &_14);
36203+ string$dest(&_14);
3619636204 }
36197- const struct stack/*def*/ *_12 = &(_cur);
36198- if(!(*_12).size)
36205+ const struct stack/*def*/ *_13 = &(_cur);
36206+ if(!(*_13).size)
3619936207 {
3620036208 {
3620136209 }
@@ -36202,28 +36210,19 @@
3620236210 }
3620336211 else
3620436212 {
36205- const struct def *cur = (*_12).data;
36213+ const struct def *cur = (*_13).data;
3620636214 {
36207- bool _16;
36215+ bool _17;
3620836216 {
36209- const bool *_17 = &(*cur).partial;
36210- not(&_16, &*_17);
36217+ const bool *_18 = &(*cur).partial;
36218+ not(&_17, &*_18);
3621136219 }
36212- if(_16)
36220+ if(_17)
3621336221 {
3621436222 {
36215- const struct StreamOut *_18 = &(*streams).err;
36216- struct string _19; memset(&_19, 0, sizeof(struct string));
36217- init$fromliteral(&_19, "redeclaration/redefinition of function ", 39);
36218- PutStr(0 /* _17 */, &*_18, &_19);
36219- string$dest(&_19);
36220- }
36221- {
3622236223 const struct StreamOut *_19 = &(*streams).err;
3622336224 struct string _20; memset(&_20, 0, sizeof(struct string));
36224- {
36225- nonempty_to_string(&_20, &_id);
36226- }
36225+ init$fromliteral(&_20, "redeclaration/redefinition of function ", 39);
3622736226 PutStr(0 /* _18 */, &*_19, &_20);
3622836227 string$dest(&_20);
3622936228 }
@@ -36230,45 +36229,45 @@
3623036229 {
3623136230 const struct StreamOut *_20 = &(*streams).err;
3623236231 struct string _21; memset(&_21, 0, sizeof(struct string));
36233- init$fromliteral(&_21, " - non-partial functions must be defined at most once", 53);
36232+ {
36233+ nonempty_to_string(&_21, &_id);
36234+ }
3623436235 PutStr(0 /* _19 */, &*_20, &_21);
3623536236 string$dest(&_21);
3623636237 }
3623736238 {
3623836239 const struct StreamOut *_21 = &(*streams).err;
36239- Fail$(0 /* _20 */, &*_21, &*txtpos);
36240+ struct string _22; memset(&_22, 0, sizeof(struct string));
36241+ init$fromliteral(&_22, " - non-partial functions must be defined at most once", 53);
36242+ PutStr(0 /* _20 */, &*_21, &_22);
36243+ string$dest(&_22);
3624036244 }
36245+ {
36246+ const struct StreamOut *_22 = &(*streams).err;
36247+ Fail$(0 /* _21 */, &*_22, &*txtpos);
36248+ }
3624136249 }
36242- bool _18;
36250+ bool _19;
3624336251 {
36244- bool _19; memset(&_19, 0, sizeof(bool));
36252+ bool _20; memset(&_20, 0, sizeof(bool));
3624536253 {
36246- const struct type *_20 = &(*cur).re;
36247- struct type _21; memset(&_21, 0, sizeof(struct type));
36254+ const struct type *_21 = &(*cur).re;
36255+ struct type _22; memset(&_22, 0, sizeof(struct type));
3624836256 {
36249- Expand(&_21, &_retype);
36257+ Expand(&_22, &_retype);
3625036258 }
36251- typeequ(&_19, &*_20, &_21);
36252- type$dest(&_21);
36259+ typeequ(&_20, &*_21, &_22);
36260+ type$dest(&_22);
3625336261 }
36254- not(&_18, &_19);
36255- _IGNORE_(_19);
36262+ not(&_19, &_20);
36263+ _IGNORE_(_20);
3625636264 }
36257- if(_18)
36265+ if(_19)
3625836266 {
3625936267 {
36260- const struct StreamOut *_20 = &(*streams).err;
36261- struct string _21; memset(&_21, 0, sizeof(struct string));
36262- init$fromliteral(&_21, "redeclaration of function ", 26);
36263- PutStr(0 /* _19 */, &*_20, &_21);
36264- string$dest(&_21);
36265- }
36266- {
3626736268 const struct StreamOut *_21 = &(*streams).err;
3626836269 struct string _22; memset(&_22, 0, sizeof(struct string));
36269- {
36270- nonempty_to_string(&_22, &_id);
36271- }
36270+ init$fromliteral(&_22, "redeclaration of function ", 26);
3627236271 PutStr(0 /* _20 */, &*_21, &_22);
3627336272 string$dest(&_22);
3627436273 }
@@ -36275,49 +36274,58 @@
3627536274 {
3627636275 const struct StreamOut *_22 = &(*streams).err;
3627736276 struct string _23; memset(&_23, 0, sizeof(struct string));
36278- init$fromliteral(&_23, " with differing return-type: previously ", 40);
36277+ {
36278+ nonempty_to_string(&_23, &_id);
36279+ }
3627936280 PutStr(0 /* _21 */, &*_22, &_23);
3628036281 string$dest(&_23);
3628136282 }
3628236283 {
3628336284 const struct StreamOut *_23 = &(*streams).err;
36284- const struct type *_24 = &(*cur).re;
36285- EPrType(0 /* _22 */, &*_23, &*_24);
36285+ struct string _24; memset(&_24, 0, sizeof(struct string));
36286+ init$fromliteral(&_24, " with differing return-type: previously ", 40);
36287+ PutStr(0 /* _22 */, &*_23, &_24);
36288+ string$dest(&_24);
3628636289 }
3628736290 {
3628836291 const struct StreamOut *_24 = &(*streams).err;
36289- struct string _25; memset(&_25, 0, sizeof(struct string));
36290- init$fromliteral(&_25, ", currently ", 12);
36291- PutStr(0 /* _23 */, &*_24, &_25);
36292- string$dest(&_25);
36292+ const struct type *_25 = &(*cur).re;
36293+ EPrType(0 /* _23 */, &*_24, &*_25);
3629336294 }
3629436295 {
3629536296 const struct StreamOut *_25 = &(*streams).err;
36296- EPrTypePure(0 /* _24 */, &*_25, &_retype);
36297+ struct string _26; memset(&_26, 0, sizeof(struct string));
36298+ init$fromliteral(&_26, ", currently ", 12);
36299+ PutStr(0 /* _24 */, &*_25, &_26);
36300+ string$dest(&_26);
3629736301 }
3629836302 {
3629936303 const struct StreamOut *_26 = &(*streams).err;
36300- Fail$(0 /* _25 */, &*_26, &*txtpos);
36304+ EPrTypePure(0 /* _25 */, &*_26, &_retype);
3630136305 }
36306+ {
36307+ const struct StreamOut *_27 = &(*streams).err;
36308+ Fail$(0 /* _26 */, &*_27, &*txtpos);
36309+ }
3630236310 }
3630336311 else
3630436312 {
36305- bool _19;
36313+ bool _20;
3630636314 {
3630736315 struct fnstat _c; memset(&_c, 0, sizeof(struct fnstat));
3630836316 fnstat$copy(&_c, &(*cur).fnstat);
36309- bool _20; memset(&_20, 0, sizeof(bool));
36310- const struct fnstat *_21 = &(_c);
36311- switch((*_21).type)
36317+ bool _21; memset(&_21, 0, sizeof(bool));
36318+ const struct fnstat *_22 = &(_c);
36319+ switch((*_22).type)
3631236320 {
3631336321 case 0: // void declared:
3631436322 {
36315- _20 = 0;
36323+ _21 = 0;
3631636324 break;
3631736325 }
3631836326 case 1: // void defined:
3631936327 {
36320- _20 = 1;
36328+ _21 = 1;
3632136329 break;
3632236330 }
3632336331 default:
@@ -36326,122 +36334,121 @@
3632636334 break;
3632736335 }
3632836336 }
36329- _19 = _20;
36330- _IGNORE_(_20);
36337+ _20 = _21;
36338+ _IGNORE_(_21);
3633136339 fnstat$dest(&_c);
3633236340 }
36333- if(_19)
36341+ if(_20)
3633436342 {
3633536343 {
36336- const struct StreamOut *_21 = &(*streams).err;
36337- struct string _22; memset(&_22, 0, sizeof(struct string));
36338- init$fromliteral(&_22, "redefinition of function ", 25);
36339- PutStr(0 /* _20 */, &*_21, &_22);
36340- string$dest(&_22);
36341- }
36342- {
3634336344 const struct StreamOut *_22 = &(*streams).err;
3634436345 struct string _23; memset(&_23, 0, sizeof(struct string));
36345- {
36346- nonempty_to_string(&_23, &_id);
36347- }
36346+ init$fromliteral(&_23, "redefinition of function ", 25);
3634836347 PutStr(0 /* _21 */, &*_22, &_23);
3634936348 string$dest(&_23);
3635036349 }
3635136350 {
3635236351 const struct StreamOut *_23 = &(*streams).err;
36353- Fail$(0 /* _22 */, &*_23, &*txtpos);
36352+ struct string _24; memset(&_24, 0, sizeof(struct string));
36353+ {
36354+ nonempty_to_string(&_24, &_id);
36355+ }
36356+ PutStr(0 /* _22 */, &*_23, &_24);
36357+ string$dest(&_24);
3635436358 }
36359+ {
36360+ const struct StreamOut *_24 = &(*streams).err;
36361+ Fail$(0 /* _23 */, &*_24, &*txtpos);
36362+ }
3635536363 }
3635636364 }
3635736365 {
36358- const struct StreamOut *_21 = &(*streams).err;
36359- struct typeid _22; memset(&_22, 0, sizeof(struct typeid));
36366+ const struct StreamOut *_22 = &(*streams).err;
36367+ struct typeid _23; memset(&_23, 0, sizeof(struct typeid));
3636036368 {
36361- struct type _23; memset(&_23, 0, sizeof(struct type));
36369+ struct type _24; memset(&_24, 0, sizeof(struct type));
3636236370 {
36363- Expand(&_23, &_retype);
36371+ Expand(&_24, &_retype);
3636436372 }
36365- typeid(&_22, &_23, &_id);
36366- type$dest(&_23);
36373+ typeid(&_23, &_24, &_id);
36374+ type$dest(&_24);
3636736375 }
36368- const struct stack/*qtype*/ *_23 = &(*cur).pars;
36369- uint64_t _24; memset(&_24, 0, sizeof(uint64_t));
36370- _24 = 0;
36371- ParChk$(0 /* _20 */, &*_21, &*txtpos, &_22, &*_23, &_pars, &_24);
36372- _IGNORE_(_24);
36373- typeid$dest(&_22);
36376+ const struct stack/*qtype*/ *_24 = &(*cur).pars;
36377+ uint64_t _25; memset(&_25, 0, sizeof(uint64_t));
36378+ _25 = 0;
36379+ ParChk$(0 /* _21 */, &*_22, &*txtpos, &_23, &*_24, &_pars, &_25);
36380+ _IGNORE_(_25);
36381+ typeid$dest(&_23);
3637436382 }
3637536383 }
3637636384 }
3637736385 {
36378- struct stack/*def*/ *_16 = &(*state).defs;
36379- struct def _17; memset(&_17, 0, sizeof(struct def));
36386+ struct stack/*def*/ *_17 = &(*state).defs;
36387+ struct def _18; memset(&_18, 0, sizeof(struct def));
3638036388 {
36381- struct focus _18; memset(&_18, 0, sizeof(struct focus));
36389+ struct focus _19; memset(&_19, 0, sizeof(struct focus));
3638236390 {
36383- general(&_18);
36391+ general(&_19);
3638436392 }
36385- struct type _19; memset(&_19, 0, sizeof(struct type));
36393+ struct type _20; memset(&_20, 0, sizeof(struct type));
3638636394 {
36387- Expand(&_19, &_retype);
36395+ Expand(&_20, &_retype);
3638836396 }
36389- struct fnstat _20; memset(&_20, 0, sizeof(struct fnstat));
36397+ struct fnstat _21; memset(&_21, 0, sizeof(struct fnstat));
3639036398 {
36391- defined(&_20);
36399+ defined(&_21);
3639236400 }
36393- definit(&_17, &_18, &_19, &_id, &_20, &_pars);
36394- fnstat$dest(&_20);
36395- type$dest(&_19);
36396- focus$dest(&_18);
36401+ definit(&_18, &_19, &_20, &_id, &_21, &_pars);
36402+ fnstat$dest(&_21);
36403+ type$dest(&_20);
36404+ focus$dest(&_19);
3639736405 }
36398- declfin(0 /* _15 */, &*_16, &_17);
36399- def$dest(&_17);
36406+ declfin(0 /* _16 */, &*_17, &_18);
36407+ def$dest(&_18);
3640036408 }
3640136409 {
36402- const struct StreamOut *_17 = &(*streams).out;
36403- struct string _18; memset(&_18, 0, sizeof(struct string));
36404- init$fromliteral(&_18, "", 0);
36405- PutStrLn(0 /* _16 */, &*_17, &_18);
36406- string$dest(&_18);
36407- }
36408- {
3640936410 const struct StreamOut *_18 = &(*streams).out;
3641036411 struct string _19; memset(&_19, 0, sizeof(struct string));
36411- init$fromliteral(&_19, "void ", 5);
36412- PutStr(0 /* _17 */, &*_18, &_19);
36412+ init$fromliteral(&_19, "", 0);
36413+ PutStrLn(0 /* _17 */, &*_18, &_19);
3641336414 string$dest(&_19);
3641436415 }
3641536416 {
3641636417 const struct StreamOut *_19 = &(*streams).out;
3641736418 struct string _20; memset(&_20, 0, sizeof(struct string));
36418- {
36419- nonempty_to_string(&_20, &_id);
36420- }
36419+ init$fromliteral(&_20, "void ", 5);
3642136420 PutStr(0 /* _18 */, &*_19, &_20);
3642236421 string$dest(&_20);
3642336422 }
3642436423 {
36425- const struct stack/*qtypepure*/ *_20 = &(*ps).qts;
36426- EmitGenericParams$(0 /* _19 */, &*streams, &_retype, &*_20, &_sp);
36424+ const struct StreamOut *_20 = &(*streams).out;
36425+ struct string _21; memset(&_21, 0, sizeof(struct string));
36426+ {
36427+ nonempty_to_string(&_21, &_id);
36428+ }
36429+ PutStr(0 /* _19 */, &*_20, &_21);
36430+ string$dest(&_21);
3642736431 }
3642836432 {
36429- const struct StreamOut *_21 = &(*streams).out;
36430- struct string _22; memset(&_22, 0, sizeof(struct string));
36431- init$fromliteral(&_22, ";", 1);
36432- PutStrLn(0 /* _20 */, &*_21, &_22);
36433- string$dest(&_22);
36433+ const struct stack/*qtypepure*/ *_21 = &(*ps).qts;
36434+ EmitGenericParams$(0 /* _20 */, &*streams, &_retype, &*_21, &_sp);
3643436435 }
3643536436 {
3643636437 const struct StreamOut *_22 = &(*streams).out;
3643736438 struct string _23; memset(&_23, 0, sizeof(struct string));
36438- init$fromliteral(&_23, "", 0);
36439+ init$fromliteral(&_23, ";", 1);
3643936440 PutStrLn(0 /* _21 */, &*_22, &_23);
3644036441 string$dest(&_23);
3644136442 }
36443+ {
36444+ const struct StreamOut *_23 = &(*streams).out;
36445+ struct string _24; memset(&_24, 0, sizeof(struct string));
36446+ init$fromliteral(&_24, "", 0);
36447+ PutStrLn(0 /* _22 */, &*_23, &_24);
36448+ string$dest(&_24);
36449+ }
3644236450 free$(&_cur, sizeof(struct def), (void (*)(void *))def$dest);
3644336451 free$(&_pars, sizeof(struct qtype), (void (*)(void *))qtype$dest);
36444- free$(&_prps, sizeof(struct qtypepure), (void (*)(void *))qtypepure$dest);
3644536452 }
3644636453 struct stack/*qtypepureid*/ _parids; memset(&_parids, 0, sizeof(struct stack/*qtypepureid*/));
3644736454 {
@@ -36485,7 +36492,7 @@
3648536492 {
3648636493 struct stack/*par*/ _15; memset(&_15, 0, sizeof(struct stack/*par*/));
3648736494 {
36488- stack(&_15, sizeof(struct par), (void (*)(void *))par$dest, (void (*)(void *, const void *))par$copy, 7025);
36495+ stack(&_15, sizeof(struct par), (void (*)(void *))par$dest, (void (*)(void *, const void *))par$copy, 7026);
3648936496 }
3649036497 pscope(&_14, &_15);
3649136498 free$(&_15, sizeof(struct par), (void (*)(void *))par$dest);
@@ -36492,13 +36499,13 @@
3649236499 }
3649336500 struct stack/*vscope*/ _15; memset(&_15, 0, sizeof(struct stack/*vscope*/));
3649436501 {
36495- stack(&_15, sizeof(struct vscope), (void (*)(void *))vscope$dest, (void (*)(void *, const void *))vscope$copy, 7025);
36502+ stack(&_15, sizeof(struct vscope), (void (*)(void *))vscope$dest, (void (*)(void *, const void *))vscope$copy, 7026);
3649636503 }
3649736504 struct vscope _16; memset(&_16, 0, sizeof(struct vscope));
3649836505 {
3649936506 struct stack/*var*/ _17; memset(&_17, 0, sizeof(struct stack/*var*/));
3650036507 {
36501- stack(&_17, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 7025);
36508+ stack(&_17, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 7026);
3650236509 }
3650336510 vscope(&_16, &_17);
3650436511 free$(&_17, sizeof(struct var), (void (*)(void *))var$dest);
@@ -37484,7 +37491,7 @@
3748437491 varinit(&_56, &_57);
3748537492 qtypepureid$dest(&_57);
3748637493 }
37487- push(0 /* _54 */, &*_55, &_56, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 7210);
37494+ push(0 /* _54 */, &*_55, &_56, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 7211);
3748837495 var$dest(&_56);
3748937496 }
3749037497 {
@@ -37574,7 +37581,7 @@
3757437581 varinit(&_67, &_68);
3757537582 qtypepureid$dest(&_68);
3757637583 }
37577- push(0 /* _65 */, &*_66, &_67, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 7218);
37584+ push(0 /* _65 */, &*_66, &_67, sizeof(struct var), (void (*)(void *))var$dest, (void (*)(void *, const void *))var$copy, 7219);
3757837585 var$dest(&_67);
3757937586 }
3758037587 {
@@ -37647,7 +37654,7 @@
3764737654 }
3764837655 struct stack/*ReducedId*/ _30; memset(&_30, 0, sizeof(struct stack/*ReducedId*/));
3764937656 {
37650- stack(&_30, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 7226);
37657+ stack(&_30, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 7227);
3765137658 }
3765237659 ParseExpr2$(0 /* _28 */, &*streams, &*txtpos, &*state, &_level, &_sp, &_tmpnr, &_store, &_totality, &_action, &_29, &_30);
3765337660 free$(&_30, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest);
@@ -37690,7 +37697,7 @@
3769037697 qtypepureid(&_30, &_31, &*_32);
3769137698 qtypepure$dest(&_31);
3769237699 }
37693- solid(&_29, &_30, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 7232);
37700+ solid(&_29, &_30, sizeof(struct qtypepureid), (void (*)(void *))qtypepureid$dest, (void (*)(void *, const void *))qtypepureid$copy, 7233);
3769437701 qtypepureid$dest(&_30);
3769537702 }
3769637703 struct string _30; memset(&_30, 0, sizeof(struct string));
@@ -37699,7 +37706,7 @@
3769937706 }
3770037707 struct stack/*ReducedId*/ _31; memset(&_31, 0, sizeof(struct stack/*ReducedId*/));
3770137708 {
37702- stack(&_31, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 7232);
37709+ stack(&_31, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest, (void (*)(void *, const void *))ReducedId$copy, 7233);
3770337710 }
3770437711 ParseBlock$(0 /* _28 */, &*streams, &*txtpos, &*state, &_level, &_sp, &_tmpnr, &_29, &_totality, &_action, &_30, &_31);
3770537712 free$(&_31, sizeof(struct ReducedId), (void (*)(void *))ReducedId$dest);
@@ -38052,11 +38059,11 @@
3805238059 {
3805338060 struct stack/*def*/ _1; memset(&_1, 0, sizeof(struct stack/*def*/));
3805438061 {
38055- stack(&_1, sizeof(struct def), (void (*)(void *))def$dest, (void (*)(void *, const void *))def$copy, 7323);
38062+ stack(&_1, sizeof(struct def), (void (*)(void *))def$dest, (void (*)(void *, const void *))def$copy, 7324);
3805638063 }
3805738064 struct stack/*structdef*/ _2; memset(&_2, 0, sizeof(struct stack/*structdef*/));
3805838065 {
38059- stack(&_2, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 7323);
38066+ stack(&_2, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 7324);
3806038067 }
3806138068 state(&_state, &_1, &_2);
3806238069 free$(&_2, sizeof(struct structdef), (void (*)(void *))structdef$dest);
@@ -38561,7 +38568,7 @@
3856138568 nonempty_string$dest(&_5);
3856238569 type_pure$dest(&_4);
3856338570 }
38564- push(0 /* _2 */, &_elems, &_3, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 7791);
38571+ push(0 /* _2 */, &_elems, &_3, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 7792);
3856538572 typepureid$dest(&_3);
3856638573 }
3856738574 {
@@ -38606,7 +38613,7 @@
3860638613 }
3860738614 struct stack/*typepureid*/ _7; memset(&_7, 0, sizeof(struct stack/*typepureid*/));
3860838615 {
38609- stack(&_7, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 7796);
38616+ stack(&_7, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 7797);
3861038617 }
3861138618 constr(&_4, &_5, &_6, &_7);
3861238619 free$(&_7, sizeof(struct typepureid), (void (*)(void *))typepureid$dest);
@@ -38613,7 +38620,7 @@
3861338620 nonempty_string$dest(&_6);
3861438621 type_pure$dest(&_5);
3861538622 }
38616- push(0 /* _3 */, &_constrs, &_4, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 7796);
38623+ push(0 /* _3 */, &_constrs, &_4, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 7797);
3861738624 constr$dest(&_4);
3861838625 }
3861938626 {
@@ -38635,7 +38642,7 @@
3863538642 }
3863638643 struct stack/*typepureid*/ _8; memset(&_8, 0, sizeof(struct stack/*typepureid*/));
3863738644 {
38638- stack(&_8, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 7797);
38645+ stack(&_8, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 7798);
3863938646 }
3864038647 constr(&_5, &_6, &_7, &_8);
3864138648 free$(&_8, sizeof(struct typepureid), (void (*)(void *))typepureid$dest);
@@ -38642,7 +38649,7 @@
3864238649 nonempty_string$dest(&_7);
3864338650 type_pure$dest(&_6);
3864438651 }
38645- push(0 /* _4 */, &_constrs, &_5, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 7797);
38652+ push(0 /* _4 */, &_constrs, &_5, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 7798);
3864638653 constr$dest(&_5);
3864738654 }
3864838655 {
@@ -38664,7 +38671,7 @@
3866438671 }
3866538672 struct stack/*typepureid*/ _9; memset(&_9, 0, sizeof(struct stack/*typepureid*/));
3866638673 {
38667- stack(&_9, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 7798);
38674+ stack(&_9, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 7799);
3866838675 }
3866938676 constr(&_6, &_7, &_8, &_9);
3867038677 free$(&_9, sizeof(struct typepureid), (void (*)(void *))typepureid$dest);
@@ -38671,7 +38678,7 @@
3867138678 nonempty_string$dest(&_8);
3867238679 type_pure$dest(&_7);
3867338680 }
38674- push(0 /* _5 */, &_constrs, &_6, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 7798);
38681+ push(0 /* _5 */, &_constrs, &_6, sizeof(struct constr), (void (*)(void *))constr$dest, (void (*)(void *, const void *))constr$copy, 7799);
3867538682 constr$dest(&_6);
3867638683 }
3867738684 {
@@ -43691,7 +43698,7 @@
4369143698 nonempty_string$dest(&_66);
4369243699 type_pure$dest(&_65);
4369343700 }
43694- push(0 /* _63 */, &_elems, &_64, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 8588);
43701+ push(0 /* _63 */, &_elems, &_64, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 8589);
4369543702 typepureid$dest(&_64);
4369643703 }
4369743704 {
@@ -43715,7 +43722,7 @@
4371543722 nonempty_string$dest(&_67);
4371643723 type_pure$dest(&_66);
4371743724 }
43718- push(0 /* _64 */, &_elems, &_65, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 8589);
43725+ push(0 /* _64 */, &_elems, &_65, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 8590);
4371943726 typepureid$dest(&_65);
4372043727 }
4372143728 {
@@ -43739,7 +43746,7 @@
4373943746 nonempty_string$dest(&_68);
4374043747 type_pure$dest(&_67);
4374143748 }
43742- push(0 /* _65 */, &_elems, &_66, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 8590);
43749+ push(0 /* _65 */, &_elems, &_66, sizeof(struct typepureid), (void (*)(void *))typepureid$dest, (void (*)(void *, const void *))typepureid$copy, 8591);
4374343750 typepureid$dest(&_66);
4374443751 }
4374543752 {
@@ -43764,7 +43771,7 @@
4376443771 nonempty_string$dest(&_70);
4376543772 flavour$dest(&_69);
4376643773 }
43767- push(0 /* _66 */, &*_67, &_68, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 8591);
43774+ push(0 /* _66 */, &*_67, &_68, sizeof(struct structdef), (void (*)(void *))structdef$dest, (void (*)(void *, const void *))structdef$copy, 8592);
4376843775 structdef$dest(&_68);
4376943776 }
4377043777 free$(&_elems, sizeof(struct typepureid), (void (*)(void *))typepureid$dest);
--- trunk/pragmatic/compiler.source.c (revision 410)
+++ trunk/pragmatic/compiler.source.c (revision 411)
@@ -5044,6 +5044,9 @@
50445044 push<var>(sp.current.elems, varhide(nonempty_string('*', nonempty_to_string(id)), txtpos));
50455045 };
50465046
5047+ let mut qtypepureid container = container;
5048+ let _ /*idpath ip*/ = ParsePath$(streams, txtpos, level, sp, state.structs, tmpnr, container);
5049+
50475050 let opt<nonempty_string> to = ParseIdOrGap$(streams, txtpos, level);
50485051 let nonempty_string id =
50495052 switch to
@@ -6354,15 +6357,15 @@
63546357 // Put(streams.out, ')');
63556358 //}
63566359
6357-unit EmitGenericArgsId$(Streams streams, stack<qtypepureid> content)
6360+unit EmitGenericArgsId$(Streams streams, stack<qtypepureid> args)
63586361 {
63596362 Put(streams.out, '(');
63606363
63616364 PutStr(streams.out, nonempty_to_string(resid()));
63626365
6363- for content elem
6366+ for args arg
63646367 {
6365- PutStr(streams.out, ", &("); PutStr(streams.out, nonempty_to_string(elem.id)); PutStr(streams.out, ")");
6368+ PutStr(streams.out, ", &("); PutStr(streams.out, nonempty_to_string(arg.id)); PutStr(streams.out, ")");
63666369 };
63676370
63686371 Put(streams.out, ')');
@@ -6377,12 +6380,12 @@
63776380
63786381 // Emit parameters
63796382 let mut u64 parnr = 0;
6380- for parids elem
6383+ for parids parid
63816384 {
63826385 PutStr(streams.out, ", ");
63836386
63846387 //let qtypepureid par = qtypepureid(elem, preapp('_', GenId$(size<match>(parmatches), ""))); // NOTE: parameters start at 1 (0 reserved for result)
6385- let qtypepureid par = qtypepureid(elem, GenVar$(parnr)); // NOTE: GenVar PRE-increments number, so parameters start at 1 (0 reserved for result)
6388+ let qtypepureid par = qtypepureid(parid, GenVar$(parnr)); // NOTE: GenVar PRE-increments number, so parameters start at 1 (0 reserved for result)
63866389 ParEmitGeneric(streams.out, sp, par);
63876390 };
63886391
@@ -6410,13 +6413,13 @@
64106413 PutStr(streams.out, name); Put(streams.out, '$'); Print<u64>(streams.out, casenr); EmitGenericArgsId$(streams, parids); PutStrLn(streams.out, ";");
64116414 }
64126415
6413-stack<qtypepureid> AttachGenericIds$(stack<qtypepure> content)
6416+stack<qtypepureid> AttachGenericIds$(stack<qtypepure> ids)
64146417 {
64156418 let mut u64 nr = 0;
64166419 let mut stack<qtypepureid> qtpis;
6417- for content elem
6420+ for ids id
64186421 {
6419- push<qtypepureid>(qtpis, qtypepureid(elem, GenPar$(nr))); // pre-increment: start counting from 1 since 0 is reserved for result
6422+ push<qtypepureid>(qtpis, qtypepureid(id, GenPar$(nr))); // pre-increment: start counting from 1 since 0 is reserved for result
64206423 };
64216424 result
64226425 qtpis
@@ -6443,7 +6446,6 @@
64436446 {
64446447 let mut bool first = 1;
64456448 let stack<qtypepureid> content = attachQualifier(elems, par.qt.qualifier);
6446- let stack<qtypepureid> content_ = content;
64476449 for content econtent
64486450 {
64496451 if first then
@@ -6474,7 +6476,7 @@
64746476 };
64756477 };
64766478
6477- ParseMatch$(streams, txtpos, structs, level, sp, tmpnr, elem, casenr, ti, content_, usedids, reduced_ids);
6479+ ParseMatch$(streams, txtpos, structs, level, sp, tmpnr, elem, casenr, ti, content, usedids, reduced_ids);
64786480 };
64796481 };
64806482 }
@@ -6958,11 +6960,10 @@
69586960 case fnpartypes: // pattern-matching function definition syntax
69596961 {
69606962 {
6961- let stack<qtypepure> prps = ps.qts;
69626963 let mut stack<qtype> pars;
6963- for prps prp
6964+ for ps.qts par
69646965 {
6965- push<qtype>(pars, qtype(prp.qualifier, Expand(prp.type)));
6966+ push<qtype>(pars, qtype(par.qualifier, Expand(par.type)));
69666967 };
69676968
69686969 let opt<def> cur = findFnDef(state.defs, nonempty_to_string(id));
--- trunk/pragmatic/memory_tests/mem_tests.c (revision 410)
+++ trunk/pragmatic/memory_tests/mem_tests.c (revision 411)
@@ -584,14 +584,14 @@
584584 }
585585 term: size<string>(s);
586586
587-unit TestIterateStream(StreamIn in, StreamOut out)
587+unit TestIterateStream(Streams streams)
588588 {
589- PutStrLn(out, "Test iterate stream-in");
590- for in c
589+ PutStrLn(streams.out, "Test iterate stream-in");
590+ for streams.in c
591591 {
592- Put(out, c);
592+ Put(streams.out, c);
593593 };
594- PutStrLn(out, ".");
594+ PutStrLn(streams.out, ".");
595595 }
596596
597597 unit TestNestedLoop(StreamOut out)
@@ -696,7 +696,7 @@
696696 Print<stack<string>>(streams.out, orig);
697697 PutStrLn(streams.out, "");
698698
699- TestIterateStream(streams.in, streams.out);
699+ TestIterateStream(streams);
700700
701701 TestNestedLoop(streams.out);
702702
--- trunk/pragmatic/memory_tests/mem_tests_compiled.c (revision 410)
+++ trunk/pragmatic/memory_tests/mem_tests_compiled.c (revision 411)
@@ -3852,27 +3852,31 @@
38523852 }
38533853 }
38543854
3855-void TestIterateStream(void *const _0, const struct StreamIn *const in, const struct StreamOut *const out)
3855+void TestIterateStream(void *const _0, const struct Streams *const streams)
38563856 {
38573857 {
38583858 {
3859- struct string _2; memset(&_2, 0, sizeof(struct string));
3860- init$fromliteral(&_2, "Test iterate stream-in", 22);
3861- PutStrLn(0 /* _1 */, &*out, &_2);
3862- string$dest(&_2);
3859+ const struct StreamOut *_2 = &(*streams).out;
3860+ struct string _3; memset(&_3, 0, sizeof(struct string));
3861+ init$fromliteral(&_3, "Test iterate stream-in", 22);
3862+ PutStrLn(0 /* _1 */, &*_2, &_3);
3863+ string$dest(&_3);
38633864 }
3864- for(int _2 = getc((*in).f); _2 >= 0; _2 = getc((*in).f))
3865+ const struct StreamIn *_2 = &(*streams).in;
3866+ for(int _3 = getc((*_2).f); _3 >= 0; _3 = getc((*_2).f))
38653867 {
3866- const uint8_t _c = (uint8_t)_2;
3868+ const uint8_t _c = (uint8_t)_3;
38673869 {
3868- Put(0 /* _3 */, &*out, &_c);
3870+ const struct StreamOut *_5 = &(*streams).out;
3871+ Put(0 /* _4 */, &*_5, &_c);
38693872 }
38703873 }
38713874 {
3872- struct string _4; memset(&_4, 0, sizeof(struct string));
3873- init$fromliteral(&_4, ".", 1);
3874- PutStrLn(0 /* _3 */, &*out, &_4);
3875- string$dest(&_4);
3875+ const struct StreamOut *_5 = &(*streams).out;
3876+ struct string _6; memset(&_6, 0, sizeof(struct string));
3877+ init$fromliteral(&_6, ".", 1);
3878+ PutStrLn(0 /* _4 */, &*_5, &_6);
3879+ string$dest(&_6);
38763880 }
38773881 }
38783882 }
@@ -5177,9 +5181,7 @@
51775181 string$dest(&_24);
51785182 }
51795183 {
5180- const struct StreamIn *_24 = &(*streams).in;
5181- const struct StreamOut *_25 = &(*streams).out;
5182- TestIterateStream(0 /* _23 */, &*_24, &*_25);
5184+ TestIterateStream(0 /* _23 */, &*streams);
51835185 }
51845186 {
51855187 const struct StreamOut *_25 = &(*streams).out;
Show on old repository browser