source: src/Tests/Expect-r/Rank2.txt @ b617e4b

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsctordeferred_resndemanglerenumforall-pointer-decaygc_noraiijacob/cs343-translationjenkins-sandboxmemorynew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newwith_gc
Last change on this file since b617e4b was b1d6dd5, checked in by Peter A. Buhr <pabuhr@…>, 9 years ago

fix parsing error for EOF message, change cfa-ccp -x flag to -v, regression testing third attempt: consolidate example programs

  • Property mode set to 100644
File size: 108.4 KB
Line 
1nameExpr is g
2decl is g: function
3  with parameters
4    p: pointer to forall
5          U: type
6            with assertions
7              ?=?: pointer to function
8                  with parameters
9                    pointer to instance of type U (not function type)
10                    instance of type U (not function type)
11                  returning
12                    instance of type U (not function type)
13
14
15        function
16        with parameters
17          instance of type U (not function type)
18        returning
19          nothing
20
21  returning
22    nothing
23
24newExpr is Variable Expression: g: function
25    with parameters
26      p: pointer to forall
27            U: type
28              with assertions
29                ?=?: pointer to function
30                    with parameters
31                      pointer to instance of type U (not function type)
32                      instance of type U (not function type)
33                    returning
34                      instance of type U (not function type)
35
36
37          function
38          with parameters
39            instance of type U (not function type)
40          returning
41            nothing
42
43    returning
44      nothing
45
46
47alternatives before prune:
48Cost ( 0, 0, 0 ): Variable Expression: g: function
49    with parameters
50      p: pointer to forall
51            U: type
52              with assertions
53                ?=?: pointer to function
54                    with parameters
55                      pointer to instance of type U (not function type)
56                      instance of type U (not function type)
57                    returning
58                      instance of type U (not function type)
59
60
61          function
62          with parameters
63            instance of type U (not function type)
64          returning
65            nothing
66
67    returning
68      nothing
69
70(types:
71    pointer to function
72        with parameters
73          p: pointer to forall
74                _0_U: type
75                  with assertions
76                    ?=?: pointer to function
77                        with parameters
78                          pointer to instance of type _0_U (not function type)
79                          instance of type _0_U (not function type)
80                        returning
81                          instance of type _0_U (not function type)
82
83
84              function
85              with parameters
86                instance of type _0_U (not function type)
87              returning
88                nothing
89
90        returning
91          nothing
92
93)
94Environment:
95
96there are 1 alternatives before elimination
97there are 1 alternatives after elimination
98nameExpr is f
99decl is f: forall
100    T: type
101      with assertions
102        ?=?: pointer to function
103            with parameters
104              pointer to instance of type T (not function type)
105              instance of type T (not function type)
106            returning
107              instance of type T (not function type)
108
109
110  function
111  with parameters
112    instance of type T (not function type)
113  returning
114    nothing
115
116newExpr is Variable Expression: f: forall
117      T: type
118        with assertions
119          ?=?: pointer to function
120              with parameters
121                pointer to instance of type T (not function type)
122                instance of type T (not function type)
123              returning
124                instance of type T (not function type)
125
126
127    function
128    with parameters
129      instance of type T (not function type)
130    returning
131      nothing
132
133
134alternatives before prune:
135Cost ( 0, 0, 0 ): Variable Expression: f: forall
136      T: type
137        with assertions
138          ?=?: pointer to function
139              with parameters
140                pointer to instance of type T (not function type)
141                instance of type T (not function type)
142              returning
143                instance of type T (not function type)
144
145
146    function
147    with parameters
148      instance of type T (not function type)
149    returning
150      nothing
151
152(types:
153    pointer to forall
154          _1_T: type
155            with assertions
156              ?=?: pointer to function
157                  with parameters
158                    pointer to instance of type _1_T (not function type)
159                    instance of type _1_T (not function type)
160                  returning
161                    instance of type _1_T (not function type)
162
163
164        function
165        with parameters
166          instance of type _1_T (not function type)
167        returning
168          nothing
169
170)
171Environment:
172
173there are 1 alternatives before elimination
174there are 1 alternatives after elimination
175findSubExprs
176Cost ( 0, 0, 0 ): Variable Expression: f: forall
177      T: type
178        with assertions
179          ?=?: pointer to function
180              with parameters
181                pointer to instance of type T (not function type)
182                instance of type T (not function type)
183              returning
184                instance of type T (not function type)
185
186
187    function
188    with parameters
189      instance of type T (not function type)
190    returning
191      nothing
192
193(types:
194    pointer to forall
195          _1_T: type
196            with assertions
197              ?=?: pointer to function
198                  with parameters
199                    pointer to instance of type _1_T (not function type)
200                    instance of type _1_T (not function type)
201                  returning
202                    instance of type _1_T (not function type)
203
204
205        function
206        with parameters
207          instance of type _1_T (not function type)
208        returning
209          nothing
210
211)
212Environment:
213
214working on alternative:
215        Cost ( 0, 0, 0 ):         Variable Expression: g: function
216            with parameters
217              p: pointer to forall
218                    U: type
219                      with assertions
220                        ?=?: pointer to function
221                            with parameters
222                              pointer to instance of type U (not function type)
223                              instance of type U (not function type)
224                            returning
225                              instance of type U (not function type)
226
227
228                  function
229                  with parameters
230                    instance of type U (not function type)
231                  returning
232                    nothing
233
234            returning
235              nothing
236
237(types:
238            pointer to function
239                with parameters
240                  p: pointer to forall
241                        _0_U: type
242                          with assertions
243                            ?=?: pointer to function
244                                with parameters
245                                  pointer to instance of type _0_U (not function type)
246                                  instance of type _0_U (not function type)
247                                returning
248                                  instance of type _0_U (not function type)
249
250
251                      function
252                      with parameters
253                        instance of type _0_U (not function type)
254                      returning
255                        nothing
256
257                returning
258                  nothing
259
260)
261        Environment:
262formal type is pointer to forall
263    _0_U: type
264      with assertions
265        ?=?: pointer to function
266            with parameters
267              pointer to instance of type _0_U (not function type)
268              instance of type _0_U (not function type)
269            returning
270              instance of type _0_U (not function type)
271
272
273  function
274  with parameters
275    instance of type _0_U (not function type)
276  returning
277    nothing
278
279actual type is pointer to forall
280    _1_T: type
281      with assertions
282        ?=?: pointer to function
283            with parameters
284              pointer to instance of type _1_T (not function type)
285              instance of type _1_T (not function type)
286            returning
287              instance of type _1_T (not function type)
288
289
290  function
291  with parameters
292    instance of type _1_T (not function type)
293  returning
294    nothing
295
296need assertions:
297?=?: pointer to function
298          with parameters
299            pointer to instance of type _1_T (not function type)
300            instance of type _1_T (not function type)
301          returning
302            instance of type _1_T (not function type)
303(used)============= original indexer
304===idTable===
305===typeTable===
306===structTable===
307===enumTable===
308===unionTable===
309===contextTable===
310============= new indexer
311===idTable===
312===typeTable===
313===structTable===
314===enumTable===
315===unionTable===
316===contextTable===
317inferRecursive: assertion is ?=?: pointer to function
318  with parameters
319    pointer to instance of type _1_T (not function type)
320    instance of type _1_T (not function type)
321  returning
322    instance of type _1_T (not function type)
323
324inferRecursive: candidate is ?=?: forall
325    DT: incomplete type
326  function
327  with parameters
328    pointer to pointer to instance of type DT (not function type)
329    pointer to instance of type DT (not function type)
330  returning
331    pointer to instance of type DT (not function type)
332
333unifying pointer to function
334  with parameters
335    pointer to instance of type _1_T (not function type)
336    instance of type _1_T (not function type)
337  returning
338    instance of type _1_T (not function type)
339 with pointer to forall
340    _2_DT: incomplete type
341  function
342  with parameters
343    pointer to pointer to instance of type _2_DT (not function type)
344    pointer to instance of type _2_DT (not function type)
345  returning
346    pointer to instance of type _2_DT (not function type)
347
348inferRecursive: candidate is ?=?: function
349  with parameters
350    pointer to signed int
351    signed int
352  returning
353    signed int
354
355unifying pointer to function
356  with parameters
357    pointer to instance of type _1_T (not function type)
358    instance of type _1_T (not function type)
359  returning
360    instance of type _1_T (not function type)
361 with pointer to function
362  with parameters
363    pointer to signed int
364    signed int
365  returning
366    signed int
367
368inferRecursive: candidate is ?=?: pointer to function
369  with parameters
370    pointer to instance of type _0_U (not function type)
371    instance of type _0_U (not function type)
372  returning
373    instance of type _0_U (not function type)
374
375unifying pointer to function
376  with parameters
377    pointer to instance of type _1_T (not function type)
378    instance of type _1_T (not function type)
379  returning
380    instance of type _1_T (not function type)
381 with pointer to function
382  with parameters
383    pointer to instance of type _0_U (not function type)
384    instance of type _0_U (not function type)
385  returning
386    instance of type _0_U (not function type)
387
388success!
389satisfying assertion 12 ?=?: pointer to function
390  with parameters
391    pointer to instance of type _1_T (not function type)
392    instance of type _1_T (not function type)
393  returning
394    instance of type _1_T (not function type)
395 with declaration 18 ?=?: pointer to function
396  with parameters
397    pointer to instance of type _0_U (not function type)
398    instance of type _0_U (not function type)
399  returning
400    instance of type _0_U (not function type)
401
402actual expression:
403        Variable Expression: f: forall
404              T: type
405                with assertions
406                  ?=?: pointer to function
407                      with parameters
408                        pointer to instance of type T (not function type)
409                        instance of type T (not function type)
410                      returning
411                        instance of type T (not function type)
412
413
414            function
415            with parameters
416              instance of type T (not function type)
417            returning
418              nothing
419
420--- results are
421        pointer to forall
422              _1_T: type
423                with assertions
424                  ?=?: pointer to function
425                      with parameters
426                        pointer to instance of type _1_T (not function type)
427                        instance of type _1_T (not function type)
428                      returning
429                        instance of type _1_T (not function type)
430
431
432            function
433            with parameters
434              instance of type _1_T (not function type)
435            returning
436              nothing
437
438
439converting pointer to forall
440            _1_T: type
441              with assertions
442                ?=?: pointer to function
443                    with parameters
444                      pointer to instance of type _1_T (not function type)
445                      instance of type _1_T (not function type)
446                    returning
447                      instance of type _1_T (not function type)
448
449
450          function
451          with parameters
452            instance of type _1_T (not function type)
453          returning
454            nothing
455
456 to pointer to forall
457            _0_U: type
458              with assertions
459                ?=?: pointer to function
460                    with parameters
461                      pointer to instance of type _0_U (not function type)
462                      instance of type _0_U (not function type)
463                    returning
464                      instance of type _0_U (not function type)
465
466
467          function
468          with parameters
469            instance of type _0_U (not function type)
470          returning
471            nothing
472
473cost is( 0, 0, 0 )
474
475converting pointer to function
476          with parameters
477            pointer to instance of type _0_U (not function type)
478            instance of type _0_U (not function type)
479          returning
480            instance of type _0_U (not function type)
481
482 to pointer to function
483          with parameters
484            pointer to instance of type _1_T (not function type)
485            instance of type _1_T (not function type)
486          returning
487            instance of type _1_T (not function type)
488
489cost of conversion is ( 0, 0, 0 )
490Case +++++++++++++
491formals are:
492        p: pointer to forall
493              _0_U: type
494                with assertions
495                  ?=?: pointer to function
496                      with parameters
497                        pointer to instance of type _0_U (not function type)
498                        instance of type _0_U (not function type)
499                      returning
500                        instance of type _0_U (not function type)
501
502
503            function
504            with parameters
505              instance of type _0_U (not function type)
506            returning
507              nothing
508
509actuals are:
510                  Variable Expression: f: forall
511                T: type
512                  with assertions
513                    ?=?: pointer to function
514                        with parameters
515                          pointer to instance of type T (not function type)
516                          instance of type T (not function type)
517                        returning
518                          instance of type T (not function type)
519
520
521              function
522              with parameters
523                instance of type T (not function type)
524              returning
525                nothing
526
527
528bindings are:
529        ( _1_T ) -> instance of type _0_U (not function type)  (no widening)
530cost of conversion is:( 0, 0, 0 )
531alternatives before prune:
532Cost ( 0, 0, 0 ): Application of
533  Variable Expression: g: function
534      with parameters
535        p: pointer to forall
536              U: type
537                with assertions
538                  ?=?: pointer to function
539                      with parameters
540                        pointer to instance of type U (not function type)
541                        instance of type U (not function type)
542                      returning
543                        instance of type U (not function type)
544
545
546            function
547            with parameters
548              instance of type U (not function type)
549            returning
550              nothing
551
552      returning
553        nothing
554
555to arguments
556      Variable Expression: f: forall
557          T: type
558            with assertions
559              ?=?: pointer to function
560                  with parameters
561                    pointer to instance of type T (not function type)
562                    instance of type T (not function type)
563                  returning
564                    instance of type T (not function type)
565
566
567        function
568        with parameters
569          instance of type T (not function type)
570        returning
571          nothing
572
573
574with inferred parameters:
575  ?=?: pointer to function
576    with parameters
577      pointer to instance of type U (not function type)
578      instance of type U (not function type)
579    returning
580      instance of type U (not function type)
581
582(types:
583)
584Environment:   ( _1_T ) -> instance of type _0_U (not function type)  (no widening)
585
586
587there are 1 alternatives before elimination
588there are 1 alternatives after elimination
589alternatives before prune:
590Cost ( 0, 0, 0 ): Cast of:
591  Application of
592    Variable Expression: g: function
593        with parameters
594          p: pointer to forall
595                U: type
596                  with assertions
597                    ?=?: pointer to function
598                        with parameters
599                          pointer to instance of type U (not function type)
600                          instance of type U (not function type)
601                        returning
602                          instance of type U (not function type)
603
604
605              function
606              with parameters
607                instance of type U (not function type)
608              returning
609                nothing
610
611        returning
612          nothing
613
614  to arguments
615          Variable Expression: f: forall
616            T: type
617              with assertions
618                ?=?: pointer to function
619                    with parameters
620                      pointer to instance of type T (not function type)
621                      instance of type T (not function type)
622                    returning
623                      instance of type T (not function type)
624
625
626          function
627          with parameters
628            instance of type T (not function type)
629          returning
630            nothing
631
632
633  with inferred parameters:
634    ?=?: pointer to function
635      with parameters
636        pointer to instance of type U (not function type)
637        instance of type U (not function type)
638      returning
639        instance of type U (not function type)
640
641
642to:
643  nothing
644(types:
645)
646Environment:   ( _1_T ) -> instance of type _0_U (not function type)  (no widening)
647
648
649there are 1 alternatives before elimination
650there are 1 alternatives after elimination
651nameExpr is h
652decl is h: function
653  with parameters
654    null: pointer to signed int
655  returning
656    nothing
657
658newExpr is Variable Expression: h: function
659    with parameters
660      null: pointer to signed int
661    returning
662      nothing
663
664
665alternatives before prune:
666Cost ( 0, 0, 0 ): Variable Expression: h: function
667    with parameters
668      null: pointer to signed int
669    returning
670      nothing
671
672(types:
673    pointer to function
674        with parameters
675          null: pointer to signed int
676        returning
677          nothing
678
679)
680Environment:
681
682there are 1 alternatives before elimination
683there are 1 alternatives after elimination
684nameExpr is id
685decl is id: forall
686    T: type
687      with assertions
688        ?=?: pointer to function
689            with parameters
690              pointer to instance of type T (not function type)
691              instance of type T (not function type)
692            returning
693              instance of type T (not function type)
694
695
696  function
697  with parameters
698    instance of type T (not function type)
699  returning
700    instance of type T (not function type)
701
702newExpr is Variable Expression: id: forall
703      T: type
704        with assertions
705          ?=?: pointer to function
706              with parameters
707                pointer to instance of type T (not function type)
708                instance of type T (not function type)
709              returning
710                instance of type T (not function type)
711
712
713    function
714    with parameters
715      instance of type T (not function type)
716    returning
717      instance of type T (not function type)
718
719
720alternatives before prune:
721Cost ( 0, 0, 0 ): Variable Expression: id: forall
722      T: type
723        with assertions
724          ?=?: pointer to function
725              with parameters
726                pointer to instance of type T (not function type)
727                instance of type T (not function type)
728              returning
729                instance of type T (not function type)
730
731
732    function
733    with parameters
734      instance of type T (not function type)
735    returning
736      instance of type T (not function type)
737
738(types:
739    pointer to forall
740          _0_T: type
741            with assertions
742              ?=?: pointer to function
743                  with parameters
744                    pointer to instance of type _0_T (not function type)
745                    instance of type _0_T (not function type)
746                  returning
747                    instance of type _0_T (not function type)
748
749
750        function
751        with parameters
752          instance of type _0_T (not function type)
753        returning
754          instance of type _0_T (not function type)
755
756)
757Environment:
758
759there are 1 alternatives before elimination
760there are 1 alternatives after elimination
761nameExpr is id
762decl is id: forall
763    T: type
764      with assertions
765        ?=?: pointer to function
766            with parameters
767              pointer to instance of type T (not function type)
768              instance of type T (not function type)
769            returning
770              instance of type T (not function type)
771
772
773  function
774  with parameters
775    instance of type T (not function type)
776  returning
777    instance of type T (not function type)
778
779newExpr is Variable Expression: id: forall
780      T: type
781        with assertions
782          ?=?: pointer to function
783              with parameters
784                pointer to instance of type T (not function type)
785                instance of type T (not function type)
786              returning
787                instance of type T (not function type)
788
789
790    function
791    with parameters
792      instance of type T (not function type)
793    returning
794      instance of type T (not function type)
795
796
797alternatives before prune:
798Cost ( 0, 0, 0 ): Variable Expression: id: forall
799      T: type
800        with assertions
801          ?=?: pointer to function
802              with parameters
803                pointer to instance of type T (not function type)
804                instance of type T (not function type)
805              returning
806                instance of type T (not function type)
807
808
809    function
810    with parameters
811      instance of type T (not function type)
812    returning
813      instance of type T (not function type)
814
815(types:
816    pointer to forall
817          _1_T: type
818            with assertions
819              ?=?: pointer to function
820                  with parameters
821                    pointer to instance of type _1_T (not function type)
822                    instance of type _1_T (not function type)
823                  returning
824                    instance of type _1_T (not function type)
825
826
827        function
828        with parameters
829          instance of type _1_T (not function type)
830        returning
831          instance of type _1_T (not function type)
832
833)
834Environment:
835
836there are 1 alternatives before elimination
837there are 1 alternatives after elimination
838nameExpr is id
839decl is id: forall
840    T: type
841      with assertions
842        ?=?: pointer to function
843            with parameters
844              pointer to instance of type T (not function type)
845              instance of type T (not function type)
846            returning
847              instance of type T (not function type)
848
849
850  function
851  with parameters
852    instance of type T (not function type)
853  returning
854    instance of type T (not function type)
855
856newExpr is Variable Expression: id: forall
857      T: type
858        with assertions
859          ?=?: pointer to function
860              with parameters
861                pointer to instance of type T (not function type)
862                instance of type T (not function type)
863              returning
864                instance of type T (not function type)
865
866
867    function
868    with parameters
869      instance of type T (not function type)
870    returning
871      instance of type T (not function type)
872
873
874alternatives before prune:
875Cost ( 0, 0, 0 ): Variable Expression: id: forall
876      T: type
877        with assertions
878          ?=?: pointer to function
879              with parameters
880                pointer to instance of type T (not function type)
881                instance of type T (not function type)
882              returning
883                instance of type T (not function type)
884
885
886    function
887    with parameters
888      instance of type T (not function type)
889    returning
890      instance of type T (not function type)
891
892(types:
893    pointer to forall
894          _2_T: type
895            with assertions
896              ?=?: pointer to function
897                  with parameters
898                    pointer to instance of type _2_T (not function type)
899                    instance of type _2_T (not function type)
900                  returning
901                    instance of type _2_T (not function type)
902
903
904        function
905        with parameters
906          instance of type _2_T (not function type)
907        returning
908          instance of type _2_T (not function type)
909
910)
911Environment:
912
913there are 1 alternatives before elimination
914there are 1 alternatives after elimination
915nameExpr is 0
916decl is 0: forall
917    T: incomplete type
918  pointer to instance of type T (not function type)
919newExpr is Variable Expression: 0: forall
920      T: incomplete type
921    pointer to instance of type T (not function type)
922
923decl is 0: signed int
924newExpr is Variable Expression: 0: signed int
925
926alternatives before prune:
927Cost ( 0, 0, 0 ): Variable Expression: 0: forall
928      T: incomplete type
929    pointer to instance of type T (not function type)
930(types:
931    forall
932          _3_T: incomplete type
933        lvalue pointer to instance of type _3_T (not function type)
934)
935Environment:
936
937Cost ( 0, 0, 0 ): Variable Expression: 0: signed int
938(types:
939    lvalue signed int
940)
941Environment:
942
943there are 2 alternatives before elimination
944there are 2 alternatives after elimination
945findSubExprs
946Cost ( 0, 0, 0 ): Variable Expression: 0: signed int
947(types:
948    lvalue signed int
949)
950Environment:
951
952Cost ( 0, 0, 0 ): Variable Expression: 0: forall
953      T: incomplete type
954    pointer to instance of type T (not function type)
955(types:
956    forall
957          _3_T: incomplete type
958        lvalue pointer to instance of type _3_T (not function type)
959)
960Environment:
961
962working on alternative:
963        Cost ( 0, 0, 0 ):         Variable Expression: id: forall
964              T: type
965                with assertions
966                  ?=?: pointer to function
967                      with parameters
968                        pointer to instance of type T (not function type)
969                        instance of type T (not function type)
970                      returning
971                        instance of type T (not function type)
972
973
974            function
975            with parameters
976              instance of type T (not function type)
977            returning
978              instance of type T (not function type)
979
980(types:
981            pointer to forall
982                  _2_T: type
983                    with assertions
984                      ?=?: pointer to function
985                          with parameters
986                            pointer to instance of type _2_T (not function type)
987                            instance of type _2_T (not function type)
988                          returning
989                            instance of type _2_T (not function type)
990
991
992                function
993                with parameters
994                  instance of type _2_T (not function type)
995                returning
996                  instance of type _2_T (not function type)
997
998)
999        Environment:
1000formal type is instance of type _2_T (not function type)
1001actual type is lvalue signed int
1002need assertions:
1003?=?: pointer to function
1004          with parameters
1005            pointer to instance of type _2_T (not function type)
1006            instance of type _2_T (not function type)
1007          returning
1008            instance of type _2_T (not function type)
1009(used)============= original indexer
1010===idTable===
1011===typeTable===
1012T
1013===structTable===
1014===enumTable===
1015===unionTable===
1016===contextTable===
1017============= new indexer
1018===idTable===
1019===typeTable===
1020T
1021===structTable===
1022===enumTable===
1023===unionTable===
1024===contextTable===
1025inferRecursive: assertion is ?=?: pointer to function
1026  with parameters
1027    pointer to instance of type _2_T (not function type)
1028    instance of type _2_T (not function type)
1029  returning
1030    instance of type _2_T (not function type)
1031
1032inferRecursive: candidate is ?=?: forall
1033    DT: incomplete type
1034  function
1035  with parameters
1036    pointer to pointer to instance of type DT (not function type)
1037    pointer to instance of type DT (not function type)
1038  returning
1039    pointer to instance of type DT (not function type)
1040
1041unifying pointer to function
1042  with parameters
1043    pointer to instance of type _2_T (not function type)
1044    instance of type _2_T (not function type)
1045  returning
1046    instance of type _2_T (not function type)
1047 with pointer to forall
1048    _4_DT: incomplete type
1049  function
1050  with parameters
1051    pointer to pointer to instance of type _4_DT (not function type)
1052    pointer to instance of type _4_DT (not function type)
1053  returning
1054    pointer to instance of type _4_DT (not function type)
1055
1056inferRecursive: candidate is ?=?: function
1057  with parameters
1058    pointer to signed int
1059    signed int
1060  returning
1061    signed int
1062
1063unifying pointer to function
1064  with parameters
1065    pointer to instance of type _2_T (not function type)
1066    instance of type _2_T (not function type)
1067  returning
1068    instance of type _2_T (not function type)
1069 with pointer to function
1070  with parameters
1071    pointer to signed int
1072    signed int
1073  returning
1074    signed int
1075
1076success!
1077satisfying assertion 28 ?=?: pointer to function
1078  with parameters
1079    pointer to instance of type _2_T (not function type)
1080    instance of type _2_T (not function type)
1081  returning
1082    instance of type _2_T (not function type)
1083 with declaration 4 ?=?: function
1084  with parameters
1085    pointer to signed int
1086    signed int
1087  returning
1088    signed int
1089
1090formal type is instance of type _2_T (not function type)
1091actual type is forall
1092    _3_T: incomplete type
1093  lvalue pointer to instance of type _3_T (not function type)
1094need assertions:
1095?=?: pointer to function
1096          with parameters
1097            pointer to instance of type _2_T (not function type)
1098            instance of type _2_T (not function type)
1099          returning
1100            instance of type _2_T (not function type)
1101(used)============= original indexer
1102===idTable===
1103===typeTable===
1104T
1105===structTable===
1106===enumTable===
1107===unionTable===
1108===contextTable===
1109============= new indexer
1110===idTable===
1111===typeTable===
1112T
1113===structTable===
1114===enumTable===
1115===unionTable===
1116===contextTable===
1117inferRecursive: assertion is ?=?: pointer to function
1118  with parameters
1119    pointer to instance of type _2_T (not function type)
1120    instance of type _2_T (not function type)
1121  returning
1122    instance of type _2_T (not function type)
1123
1124inferRecursive: candidate is ?=?: forall
1125    DT: incomplete type
1126  function
1127  with parameters
1128    pointer to pointer to instance of type DT (not function type)
1129    pointer to instance of type DT (not function type)
1130  returning
1131    pointer to instance of type DT (not function type)
1132
1133unifying pointer to function
1134  with parameters
1135    pointer to instance of type _2_T (not function type)
1136    instance of type _2_T (not function type)
1137  returning
1138    instance of type _2_T (not function type)
1139 with pointer to forall
1140    _5_DT: incomplete type
1141  function
1142  with parameters
1143    pointer to pointer to instance of type _5_DT (not function type)
1144    pointer to instance of type _5_DT (not function type)
1145  returning
1146    pointer to instance of type _5_DT (not function type)
1147
1148success!
1149satisfying assertion 28 ?=?: pointer to function
1150  with parameters
1151    pointer to instance of type _2_T (not function type)
1152    instance of type _2_T (not function type)
1153  returning
1154    instance of type _2_T (not function type)
1155 with declaration 8 ?=?: forall
1156    DT: incomplete type
1157  function
1158  with parameters
1159    pointer to pointer to instance of type DT (not function type)
1160    pointer to instance of type DT (not function type)
1161  returning
1162    pointer to instance of type DT (not function type)
1163
1164inferRecursive: candidate is ?=?: function
1165  with parameters
1166    pointer to signed int
1167    signed int
1168  returning
1169    signed int
1170
1171unifying pointer to function
1172  with parameters
1173    pointer to instance of type _2_T (not function type)
1174    instance of type _2_T (not function type)
1175  returning
1176    instance of type _2_T (not function type)
1177 with pointer to function
1178  with parameters
1179    pointer to signed int
1180    signed int
1181  returning
1182    signed int
1183
1184actual expression:
1185        Variable Expression: 0: signed int
1186--- results are
1187        lvalue signed int
1188
1189converting lvalue signed int
1190 to instance of type _2_T (not function type)
1191cost is( 0, 0, 0 )
1192
1193converting pointer to function
1194          with parameters
1195            pointer to signed int
1196            signed int
1197          returning
1198            signed int
1199
1200 to pointer to function
1201          with parameters
1202            pointer to instance of type _2_T (not function type)
1203            instance of type _2_T (not function type)
1204          returning
1205            instance of type _2_T (not function type)
1206
1207cost of conversion is ( 0, 0, 0 )
1208Case +++++++++++++
1209formals are:
1210        instance of type _2_T (not function type)
1211actuals are:
1212                  Variable Expression: 0: signed int
1213
1214bindings are:
1215        ( _2_T ) -> signed int
1216cost of conversion is:( 0, 4, 0 )
1217actual expression:
1218        Variable Expression: 0: forall
1219              T: incomplete type
1220            pointer to instance of type T (not function type)
1221--- results are
1222        forall
1223              _3_T: incomplete type
1224            lvalue pointer to instance of type _3_T (not function type)
1225
1226converting forall
1227            _3_T: incomplete type
1228          lvalue pointer to instance of type _3_T (not function type)
1229 to instance of type _2_T (not function type)
1230cost is( 0, 0, 0 )
1231
1232converting pointer to forall
1233            _5_DT: incomplete type
1234          function
1235          with parameters
1236            pointer to pointer to instance of type _5_DT (not function type)
1237            pointer to instance of type _5_DT (not function type)
1238          returning
1239            pointer to instance of type _5_DT (not function type)
1240
1241 to pointer to function
1242          with parameters
1243            pointer to instance of type _2_T (not function type)
1244            instance of type _2_T (not function type)
1245          returning
1246            instance of type _2_T (not function type)
1247
1248cost of conversion is ( 0, 0, 0 )
1249Case +++++++++++++
1250formals are:
1251        instance of type _2_T (not function type)
1252actuals are:
1253                  Variable Expression: 0: forall
1254                T: incomplete type
1255              pointer to instance of type T (not function type)
1256
1257bindings are:
1258        ( _2_T ) -> forall
1259            _3_T: incomplete type
1260          pointer to instance of type _3_T (not function type)
1261        ( _3_T _5_DT ) (no widening)
1262cost of conversion is:( 0, 4, 0 )
1263alternatives before prune:
1264Cost ( 0, 4, 0 ): Application of
1265  Variable Expression: id: forall
1266        T: type
1267          with assertions
1268            ?=?: pointer to function
1269                with parameters
1270                  pointer to instance of type T (not function type)
1271                  instance of type T (not function type)
1272                returning
1273                  instance of type T (not function type)
1274
1275
1276      function
1277      with parameters
1278        instance of type T (not function type)
1279      returning
1280        instance of type T (not function type)
1281
1282to arguments
1283      Variable Expression: 0: signed int
1284
1285with inferred parameters:
1286  ?=?: function
1287    with parameters
1288      pointer to signed int
1289      signed int
1290    returning
1291      signed int
1292
1293(types:
1294    instance of type _2_T (not function type)
1295)
1296Environment:   ( _2_T ) -> signed int
1297
1298
1299Cost ( 0, 4, 0 ): Application of
1300  Variable Expression: id: forall
1301        T: type
1302          with assertions
1303            ?=?: pointer to function
1304                with parameters
1305                  pointer to instance of type T (not function type)
1306                  instance of type T (not function type)
1307                returning
1308                  instance of type T (not function type)
1309
1310
1311      function
1312      with parameters
1313        instance of type T (not function type)
1314      returning
1315        instance of type T (not function type)
1316
1317to arguments
1318      Variable Expression: 0: forall
1319          T: incomplete type
1320        pointer to instance of type T (not function type)
1321
1322with inferred parameters:
1323  ?=?: forall
1324      DT: incomplete type
1325    function
1326    with parameters
1327      pointer to pointer to instance of type DT (not function type)
1328      pointer to instance of type DT (not function type)
1329    returning
1330      pointer to instance of type DT (not function type)
1331
1332(types:
1333    instance of type _2_T (not function type)
1334)
1335Environment:   ( _2_T ) -> forall
1336      _3_T: incomplete type
1337    pointer to instance of type _3_T (not function type)
1338  ( _3_T _5_DT ) (no widening)
1339
1340
1341there are 2 alternatives before elimination
1342there are 2 alternatives after elimination
1343findSubExprs
1344Cost ( 0, 4, 0 ): Application of
1345  Variable Expression: id: forall
1346        T: type
1347          with assertions
1348            ?=?: pointer to function
1349                with parameters
1350                  pointer to instance of type T (not function type)
1351                  instance of type T (not function type)
1352                returning
1353                  instance of type T (not function type)
1354
1355
1356      function
1357      with parameters
1358        instance of type T (not function type)
1359      returning
1360        instance of type T (not function type)
1361
1362to arguments
1363      Variable Expression: 0: signed int
1364
1365with inferred parameters:
1366  ?=?: function
1367    with parameters
1368      pointer to signed int
1369      signed int
1370    returning
1371      signed int
1372
1373(types:
1374    signed int
1375)
1376Environment:   ( _2_T ) -> signed int
1377
1378
1379Cost ( 0, 4, 0 ): Application of
1380  Variable Expression: id: forall
1381        T: type
1382          with assertions
1383            ?=?: pointer to function
1384                with parameters
1385                  pointer to instance of type T (not function type)
1386                  instance of type T (not function type)
1387                returning
1388                  instance of type T (not function type)
1389
1390
1391      function
1392      with parameters
1393        instance of type T (not function type)
1394      returning
1395        instance of type T (not function type)
1396
1397to arguments
1398      Variable Expression: 0: forall
1399          T: incomplete type
1400        pointer to instance of type T (not function type)
1401
1402with inferred parameters:
1403  ?=?: forall
1404      DT: incomplete type
1405    function
1406    with parameters
1407      pointer to pointer to instance of type DT (not function type)
1408      pointer to instance of type DT (not function type)
1409    returning
1410      pointer to instance of type DT (not function type)
1411
1412(types:
1413    forall
1414          _3_T: incomplete type
1415        pointer to instance of type _3_T (not function type)
1416)
1417Environment:   ( _2_T ) -> forall
1418      _3_T: incomplete type
1419    pointer to instance of type _3_T (not function type)
1420  ( _3_T _5_DT ) (no widening)
1421
1422
1423working on alternative:
1424        Cost ( 0, 0, 0 ):         Variable Expression: id: forall
1425              T: type
1426                with assertions
1427                  ?=?: pointer to function
1428                      with parameters
1429                        pointer to instance of type T (not function type)
1430                        instance of type T (not function type)
1431                      returning
1432                        instance of type T (not function type)
1433
1434
1435            function
1436            with parameters
1437              instance of type T (not function type)
1438            returning
1439              instance of type T (not function type)
1440
1441(types:
1442            pointer to forall
1443                  _1_T: type
1444                    with assertions
1445                      ?=?: pointer to function
1446                          with parameters
1447                            pointer to instance of type _1_T (not function type)
1448                            instance of type _1_T (not function type)
1449                          returning
1450                            instance of type _1_T (not function type)
1451
1452
1453                function
1454                with parameters
1455                  instance of type _1_T (not function type)
1456                returning
1457                  instance of type _1_T (not function type)
1458
1459)
1460        Environment:
1461formal type is instance of type _1_T (not function type)
1462actual type is signed int
1463need assertions:
1464?=?: pointer to function
1465          with parameters
1466            pointer to instance of type _1_T (not function type)
1467            instance of type _1_T (not function type)
1468          returning
1469            instance of type _1_T (not function type)
1470(used)============= original indexer
1471===idTable===
1472===typeTable===
1473T
1474===structTable===
1475===enumTable===
1476===unionTable===
1477===contextTable===
1478============= new indexer
1479===idTable===
1480===typeTable===
1481T
1482===structTable===
1483===enumTable===
1484===unionTable===
1485===contextTable===
1486inferRecursive: assertion is ?=?: pointer to function
1487  with parameters
1488    pointer to instance of type _1_T (not function type)
1489    instance of type _1_T (not function type)
1490  returning
1491    instance of type _1_T (not function type)
1492
1493inferRecursive: candidate is ?=?: forall
1494    DT: incomplete type
1495  function
1496  with parameters
1497    pointer to pointer to instance of type DT (not function type)
1498    pointer to instance of type DT (not function type)
1499  returning
1500    pointer to instance of type DT (not function type)
1501
1502unifying pointer to function
1503  with parameters
1504    pointer to instance of type _1_T (not function type)
1505    instance of type _1_T (not function type)
1506  returning
1507    instance of type _1_T (not function type)
1508 with pointer to forall
1509    _6_DT: incomplete type
1510  function
1511  with parameters
1512    pointer to pointer to instance of type _6_DT (not function type)
1513    pointer to instance of type _6_DT (not function type)
1514  returning
1515    pointer to instance of type _6_DT (not function type)
1516
1517inferRecursive: candidate is ?=?: function
1518  with parameters
1519    pointer to signed int
1520    signed int
1521  returning
1522    signed int
1523
1524unifying pointer to function
1525  with parameters
1526    pointer to instance of type _1_T (not function type)
1527    instance of type _1_T (not function type)
1528  returning
1529    instance of type _1_T (not function type)
1530 with pointer to function
1531  with parameters
1532    pointer to signed int
1533    signed int
1534  returning
1535    signed int
1536
1537success!
1538satisfying assertion 28 ?=?: pointer to function
1539  with parameters
1540    pointer to instance of type _1_T (not function type)
1541    instance of type _1_T (not function type)
1542  returning
1543    instance of type _1_T (not function type)
1544 with declaration 4 ?=?: function
1545  with parameters
1546    pointer to signed int
1547    signed int
1548  returning
1549    signed int
1550
1551formal type is instance of type _1_T (not function type)
1552actual type is forall
1553    _3_T: incomplete type
1554  pointer to instance of type _3_T (not function type)
1555need assertions:
1556?=?: pointer to function
1557          with parameters
1558            pointer to instance of type _1_T (not function type)
1559            instance of type _1_T (not function type)
1560          returning
1561            instance of type _1_T (not function type)
1562(used)============= original indexer
1563===idTable===
1564===typeTable===
1565T
1566===structTable===
1567===enumTable===
1568===unionTable===
1569===contextTable===
1570============= new indexer
1571===idTable===
1572===typeTable===
1573T
1574===structTable===
1575===enumTable===
1576===unionTable===
1577===contextTable===
1578inferRecursive: assertion is ?=?: pointer to function
1579  with parameters
1580    pointer to instance of type _1_T (not function type)
1581    instance of type _1_T (not function type)
1582  returning
1583    instance of type _1_T (not function type)
1584
1585inferRecursive: candidate is ?=?: forall
1586    DT: incomplete type
1587  function
1588  with parameters
1589    pointer to pointer to instance of type DT (not function type)
1590    pointer to instance of type DT (not function type)
1591  returning
1592    pointer to instance of type DT (not function type)
1593
1594unifying pointer to function
1595  with parameters
1596    pointer to instance of type _1_T (not function type)
1597    instance of type _1_T (not function type)
1598  returning
1599    instance of type _1_T (not function type)
1600 with pointer to forall
1601    _7_DT: incomplete type
1602  function
1603  with parameters
1604    pointer to pointer to instance of type _7_DT (not function type)
1605    pointer to instance of type _7_DT (not function type)
1606  returning
1607    pointer to instance of type _7_DT (not function type)
1608
1609success!
1610satisfying assertion 28 ?=?: pointer to function
1611  with parameters
1612    pointer to instance of type _1_T (not function type)
1613    instance of type _1_T (not function type)
1614  returning
1615    instance of type _1_T (not function type)
1616 with declaration 8 ?=?: forall
1617    DT: incomplete type
1618  function
1619  with parameters
1620    pointer to pointer to instance of type DT (not function type)
1621    pointer to instance of type DT (not function type)
1622  returning
1623    pointer to instance of type DT (not function type)
1624
1625inferRecursive: candidate is ?=?: function
1626  with parameters
1627    pointer to signed int
1628    signed int
1629  returning
1630    signed int
1631
1632unifying pointer to function
1633  with parameters
1634    pointer to instance of type _1_T (not function type)
1635    instance of type _1_T (not function type)
1636  returning
1637    instance of type _1_T (not function type)
1638 with pointer to function
1639  with parameters
1640    pointer to signed int
1641    signed int
1642  returning
1643    signed int
1644
1645actual expression:
1646        Application of
1647          Variable Expression: id: forall
1648                T: type
1649                  with assertions
1650                    ?=?: pointer to function
1651                        with parameters
1652                          pointer to instance of type T (not function type)
1653                          instance of type T (not function type)
1654                        returning
1655                          instance of type T (not function type)
1656
1657
1658              function
1659              with parameters
1660                instance of type T (not function type)
1661              returning
1662                instance of type T (not function type)
1663
1664        to arguments
1665                      Variable Expression: 0: signed int
1666
1667        with inferred parameters:
1668          ?=?: function
1669            with parameters
1670              pointer to signed int
1671              signed int
1672            returning
1673              signed int
1674
1675--- results are
1676        signed int
1677
1678converting signed int
1679 to instance of type _1_T (not function type)
1680cost is( 0, 0, 0 )
1681
1682converting pointer to function
1683          with parameters
1684            pointer to signed int
1685            signed int
1686          returning
1687            signed int
1688
1689 to pointer to function
1690          with parameters
1691            pointer to instance of type _1_T (not function type)
1692            instance of type _1_T (not function type)
1693          returning
1694            instance of type _1_T (not function type)
1695
1696cost of conversion is ( 0, 0, 0 )
1697Case +++++++++++++
1698formals are:
1699        instance of type _1_T (not function type)
1700actuals are:
1701                  Application of
1702            Variable Expression: id: forall
1703                  T: type
1704                    with assertions
1705                      ?=?: pointer to function
1706                          with parameters
1707                            pointer to instance of type T (not function type)
1708                            instance of type T (not function type)
1709                          returning
1710                            instance of type T (not function type)
1711
1712
1713                function
1714                with parameters
1715                  instance of type T (not function type)
1716                returning
1717                  instance of type T (not function type)
1718
1719          to arguments
1720                          Variable Expression: 0: signed int
1721
1722          with inferred parameters:
1723            ?=?: function
1724              with parameters
1725                pointer to signed int
1726                signed int
1727              returning
1728                signed int
1729
1730
1731bindings are:
1732        ( _2_T ) -> signed int  (no widening)
1733        ( _1_T ) -> signed int
1734cost of conversion is:( 0, 4, 0 )
1735actual expression:
1736        Application of
1737          Variable Expression: id: forall
1738                T: type
1739                  with assertions
1740                    ?=?: pointer to function
1741                        with parameters
1742                          pointer to instance of type T (not function type)
1743                          instance of type T (not function type)
1744                        returning
1745                          instance of type T (not function type)
1746
1747
1748              function
1749              with parameters
1750                instance of type T (not function type)
1751              returning
1752                instance of type T (not function type)
1753
1754        to arguments
1755                      Variable Expression: 0: forall
1756                  T: incomplete type
1757                pointer to instance of type T (not function type)
1758
1759        with inferred parameters:
1760          ?=?: forall
1761              DT: incomplete type
1762            function
1763            with parameters
1764              pointer to pointer to instance of type DT (not function type)
1765              pointer to instance of type DT (not function type)
1766            returning
1767              pointer to instance of type DT (not function type)
1768
1769--- results are
1770        forall
1771              _3_T: incomplete type
1772            pointer to instance of type _3_T (not function type)
1773
1774converting forall
1775            _3_T: incomplete type
1776          pointer to instance of type _3_T (not function type)
1777 to instance of type _1_T (not function type)
1778cost is( 0, 0, 0 )
1779
1780converting pointer to forall
1781            _7_DT: incomplete type
1782          function
1783          with parameters
1784            pointer to pointer to instance of type _7_DT (not function type)
1785            pointer to instance of type _7_DT (not function type)
1786          returning
1787            pointer to instance of type _7_DT (not function type)
1788
1789 to pointer to function
1790          with parameters
1791            pointer to instance of type _1_T (not function type)
1792            instance of type _1_T (not function type)
1793          returning
1794            instance of type _1_T (not function type)
1795
1796cost of conversion is ( 0, 0, 0 )
1797Case +++++++++++++
1798formals are:
1799        instance of type _1_T (not function type)
1800actuals are:
1801                  Application of
1802            Variable Expression: id: forall
1803                  T: type
1804                    with assertions
1805                      ?=?: pointer to function
1806                          with parameters
1807                            pointer to instance of type T (not function type)
1808                            instance of type T (not function type)
1809                          returning
1810                            instance of type T (not function type)
1811
1812
1813                function
1814                with parameters
1815                  instance of type T (not function type)
1816                returning
1817                  instance of type T (not function type)
1818
1819          to arguments
1820                          Variable Expression: 0: forall
1821                    T: incomplete type
1822                  pointer to instance of type T (not function type)
1823
1824          with inferred parameters:
1825            ?=?: forall
1826                DT: incomplete type
1827              function
1828              with parameters
1829                pointer to pointer to instance of type DT (not function type)
1830                pointer to instance of type DT (not function type)
1831              returning
1832                pointer to instance of type DT (not function type)
1833
1834
1835bindings are:
1836        ( _2_T ) -> forall
1837            _3_T: incomplete type
1838          pointer to instance of type _3_T (not function type)  (no widening)
1839        ( _1_T ) -> forall
1840            _3_T: incomplete type
1841          pointer to instance of type _3_T (not function type)
1842        ( _3_T _5_DT _7_DT ) (no widening)
1843cost of conversion is:( 0, 4, 0 )
1844alternatives before prune:
1845Cost ( 0, 4, 0 ): Application of
1846  Variable Expression: id: forall
1847        T: type
1848          with assertions
1849            ?=?: pointer to function
1850                with parameters
1851                  pointer to instance of type T (not function type)
1852                  instance of type T (not function type)
1853                returning
1854                  instance of type T (not function type)
1855
1856
1857      function
1858      with parameters
1859        instance of type T (not function type)
1860      returning
1861        instance of type T (not function type)
1862
1863to arguments
1864      Application of
1865      Variable Expression: id: forall
1866            T: type
1867              with assertions
1868                ?=?: pointer to function
1869                    with parameters
1870                      pointer to instance of type T (not function type)
1871                      instance of type T (not function type)
1872                    returning
1873                      instance of type T (not function type)
1874
1875
1876          function
1877          with parameters
1878            instance of type T (not function type)
1879          returning
1880            instance of type T (not function type)
1881
1882    to arguments
1883              Variable Expression: 0: signed int
1884
1885    with inferred parameters:
1886      ?=?: function
1887        with parameters
1888          pointer to signed int
1889          signed int
1890        returning
1891          signed int
1892
1893
1894with inferred parameters:
1895  ?=?: function
1896    with parameters
1897      pointer to signed int
1898      signed int
1899    returning
1900      signed int
1901
1902(types:
1903    instance of type _1_T (not function type)
1904)
1905Environment:   ( _2_T ) -> signed int  (no widening)
1906  ( _1_T ) -> signed int
1907
1908
1909Cost ( 0, 4, 0 ): Application of
1910  Variable Expression: id: forall
1911        T: type
1912          with assertions
1913            ?=?: pointer to function
1914                with parameters
1915                  pointer to instance of type T (not function type)
1916                  instance of type T (not function type)
1917                returning
1918                  instance of type T (not function type)
1919
1920
1921      function
1922      with parameters
1923        instance of type T (not function type)
1924      returning
1925        instance of type T (not function type)
1926
1927to arguments
1928      Application of
1929      Variable Expression: id: forall
1930            T: type
1931              with assertions
1932                ?=?: pointer to function
1933                    with parameters
1934                      pointer to instance of type T (not function type)
1935                      instance of type T (not function type)
1936                    returning
1937                      instance of type T (not function type)
1938
1939
1940          function
1941          with parameters
1942            instance of type T (not function type)
1943          returning
1944            instance of type T (not function type)
1945
1946    to arguments
1947              Variable Expression: 0: forall
1948              T: incomplete type
1949            pointer to instance of type T (not function type)
1950
1951    with inferred parameters:
1952      ?=?: forall
1953          DT: incomplete type
1954        function
1955        with parameters
1956          pointer to pointer to instance of type DT (not function type)
1957          pointer to instance of type DT (not function type)
1958        returning
1959          pointer to instance of type DT (not function type)
1960
1961
1962with inferred parameters:
1963  ?=?: forall
1964      DT: incomplete type
1965    function
1966    with parameters
1967      pointer to pointer to instance of type DT (not function type)
1968      pointer to instance of type DT (not function type)
1969    returning
1970      pointer to instance of type DT (not function type)
1971
1972(types:
1973    instance of type _1_T (not function type)
1974)
1975Environment:   ( _2_T ) -> forall
1976      _3_T: incomplete type
1977    pointer to instance of type _3_T (not function type)  (no widening)
1978  ( _1_T ) -> forall
1979      _3_T: incomplete type
1980    pointer to instance of type _3_T (not function type)
1981  ( _3_T _5_DT _7_DT ) (no widening)
1982
1983
1984there are 2 alternatives before elimination
1985there are 2 alternatives after elimination
1986findSubExprs
1987Cost ( 0, 4, 0 ): Application of
1988  Variable Expression: id: forall
1989        T: type
1990          with assertions
1991            ?=?: pointer to function
1992                with parameters
1993                  pointer to instance of type T (not function type)
1994                  instance of type T (not function type)
1995                returning
1996                  instance of type T (not function type)
1997
1998
1999      function
2000      with parameters
2001        instance of type T (not function type)
2002      returning
2003        instance of type T (not function type)
2004
2005to arguments
2006      Application of
2007      Variable Expression: id: forall
2008            T: type
2009              with assertions
2010                ?=?: pointer to function
2011                    with parameters
2012                      pointer to instance of type T (not function type)
2013                      instance of type T (not function type)
2014                    returning
2015                      instance of type T (not function type)
2016
2017
2018          function
2019          with parameters
2020            instance of type T (not function type)
2021          returning
2022            instance of type T (not function type)
2023
2024    to arguments
2025              Variable Expression: 0: signed int
2026
2027    with inferred parameters:
2028      ?=?: function
2029        with parameters
2030          pointer to signed int
2031          signed int
2032        returning
2033          signed int
2034
2035
2036with inferred parameters:
2037  ?=?: function
2038    with parameters
2039      pointer to signed int
2040      signed int
2041    returning
2042      signed int
2043
2044(types:
2045    signed int
2046)
2047Environment:   ( _2_T ) -> signed int  (no widening)
2048  ( _1_T ) -> signed int
2049
2050
2051Cost ( 0, 4, 0 ): Application of
2052  Variable Expression: id: forall
2053        T: type
2054          with assertions
2055            ?=?: pointer to function
2056                with parameters
2057                  pointer to instance of type T (not function type)
2058                  instance of type T (not function type)
2059                returning
2060                  instance of type T (not function type)
2061
2062
2063      function
2064      with parameters
2065        instance of type T (not function type)
2066      returning
2067        instance of type T (not function type)
2068
2069to arguments
2070      Application of
2071      Variable Expression: id: forall
2072            T: type
2073              with assertions
2074                ?=?: pointer to function
2075                    with parameters
2076                      pointer to instance of type T (not function type)
2077                      instance of type T (not function type)
2078                    returning
2079                      instance of type T (not function type)
2080
2081
2082          function
2083          with parameters
2084            instance of type T (not function type)
2085          returning
2086            instance of type T (not function type)
2087
2088    to arguments
2089              Variable Expression: 0: forall
2090              T: incomplete type
2091            pointer to instance of type T (not function type)
2092
2093    with inferred parameters:
2094      ?=?: forall
2095          DT: incomplete type
2096        function
2097        with parameters
2098          pointer to pointer to instance of type DT (not function type)
2099          pointer to instance of type DT (not function type)
2100        returning
2101          pointer to instance of type DT (not function type)
2102
2103
2104with inferred parameters:
2105  ?=?: forall
2106      DT: incomplete type
2107    function
2108    with parameters
2109      pointer to pointer to instance of type DT (not function type)
2110      pointer to instance of type DT (not function type)
2111    returning
2112      pointer to instance of type DT (not function type)
2113
2114(types:
2115    forall
2116          _3_T: incomplete type
2117        pointer to instance of type _3_T (not function type)
2118)
2119Environment:   ( _2_T ) -> forall
2120      _3_T: incomplete type
2121    pointer to instance of type _3_T (not function type)  (no widening)
2122  ( _1_T ) -> forall
2123      _3_T: incomplete type
2124    pointer to instance of type _3_T (not function type)
2125  ( _3_T _5_DT _7_DT ) (no widening)
2126
2127
2128working on alternative:
2129        Cost ( 0, 0, 0 ):         Variable Expression: id: forall
2130              T: type
2131                with assertions
2132                  ?=?: pointer to function
2133                      with parameters
2134                        pointer to instance of type T (not function type)
2135                        instance of type T (not function type)
2136                      returning
2137                        instance of type T (not function type)
2138
2139
2140            function
2141            with parameters
2142              instance of type T (not function type)
2143            returning
2144              instance of type T (not function type)
2145
2146(types:
2147            pointer to forall
2148                  _0_T: type
2149                    with assertions
2150                      ?=?: pointer to function
2151                          with parameters
2152                            pointer to instance of type _0_T (not function type)
2153                            instance of type _0_T (not function type)
2154                          returning
2155                            instance of type _0_T (not function type)
2156
2157
2158                function
2159                with parameters
2160                  instance of type _0_T (not function type)
2161                returning
2162                  instance of type _0_T (not function type)
2163
2164)
2165        Environment:
2166formal type is instance of type _0_T (not function type)
2167actual type is signed int
2168need assertions:
2169?=?: pointer to function
2170          with parameters
2171            pointer to instance of type _0_T (not function type)
2172            instance of type _0_T (not function type)
2173          returning
2174            instance of type _0_T (not function type)
2175(used)============= original indexer
2176===idTable===
2177===typeTable===
2178T
2179===structTable===
2180===enumTable===
2181===unionTable===
2182===contextTable===
2183============= new indexer
2184===idTable===
2185===typeTable===
2186T
2187===structTable===
2188===enumTable===
2189===unionTable===
2190===contextTable===
2191inferRecursive: assertion is ?=?: pointer to function
2192  with parameters
2193    pointer to instance of type _0_T (not function type)
2194    instance of type _0_T (not function type)
2195  returning
2196    instance of type _0_T (not function type)
2197
2198inferRecursive: candidate is ?=?: forall
2199    DT: incomplete type
2200  function
2201  with parameters
2202    pointer to pointer to instance of type DT (not function type)
2203    pointer to instance of type DT (not function type)
2204  returning
2205    pointer to instance of type DT (not function type)
2206
2207unifying pointer to function
2208  with parameters
2209    pointer to instance of type _0_T (not function type)
2210    instance of type _0_T (not function type)
2211  returning
2212    instance of type _0_T (not function type)
2213 with pointer to forall
2214    _8_DT: incomplete type
2215  function
2216  with parameters
2217    pointer to pointer to instance of type _8_DT (not function type)
2218    pointer to instance of type _8_DT (not function type)
2219  returning
2220    pointer to instance of type _8_DT (not function type)
2221
2222inferRecursive: candidate is ?=?: function
2223  with parameters
2224    pointer to signed int
2225    signed int
2226  returning
2227    signed int
2228
2229unifying pointer to function
2230  with parameters
2231    pointer to instance of type _0_T (not function type)
2232    instance of type _0_T (not function type)
2233  returning
2234    instance of type _0_T (not function type)
2235 with pointer to function
2236  with parameters
2237    pointer to signed int
2238    signed int
2239  returning
2240    signed int
2241
2242success!
2243satisfying assertion 28 ?=?: pointer to function
2244  with parameters
2245    pointer to instance of type _0_T (not function type)
2246    instance of type _0_T (not function type)
2247  returning
2248    instance of type _0_T (not function type)
2249 with declaration 4 ?=?: function
2250  with parameters
2251    pointer to signed int
2252    signed int
2253  returning
2254    signed int
2255
2256formal type is instance of type _0_T (not function type)
2257actual type is forall
2258    _3_T: incomplete type
2259  pointer to instance of type _3_T (not function type)
2260need assertions:
2261?=?: pointer to function
2262          with parameters
2263            pointer to instance of type _0_T (not function type)
2264            instance of type _0_T (not function type)
2265          returning
2266            instance of type _0_T (not function type)
2267(used)============= original indexer
2268===idTable===
2269===typeTable===
2270T
2271===structTable===
2272===enumTable===
2273===unionTable===
2274===contextTable===
2275============= new indexer
2276===idTable===
2277===typeTable===
2278T
2279===structTable===
2280===enumTable===
2281===unionTable===
2282===contextTable===
2283inferRecursive: assertion is ?=?: pointer to function
2284  with parameters
2285    pointer to instance of type _0_T (not function type)
2286    instance of type _0_T (not function type)
2287  returning
2288    instance of type _0_T (not function type)
2289
2290inferRecursive: candidate is ?=?: forall
2291    DT: incomplete type
2292  function
2293  with parameters
2294    pointer to pointer to instance of type DT (not function type)
2295    pointer to instance of type DT (not function type)
2296  returning
2297    pointer to instance of type DT (not function type)
2298
2299unifying pointer to function
2300  with parameters
2301    pointer to instance of type _0_T (not function type)
2302    instance of type _0_T (not function type)
2303  returning
2304    instance of type _0_T (not function type)
2305 with pointer to forall
2306    _9_DT: incomplete type
2307  function
2308  with parameters
2309    pointer to pointer to instance of type _9_DT (not function type)
2310    pointer to instance of type _9_DT (not function type)
2311  returning
2312    pointer to instance of type _9_DT (not function type)
2313
2314success!
2315satisfying assertion 28 ?=?: pointer to function
2316  with parameters
2317    pointer to instance of type _0_T (not function type)
2318    instance of type _0_T (not function type)
2319  returning
2320    instance of type _0_T (not function type)
2321 with declaration 8 ?=?: forall
2322    DT: incomplete type
2323  function
2324  with parameters
2325    pointer to pointer to instance of type DT (not function type)
2326    pointer to instance of type DT (not function type)
2327  returning
2328    pointer to instance of type DT (not function type)
2329
2330inferRecursive: candidate is ?=?: function
2331  with parameters
2332    pointer to signed int
2333    signed int
2334  returning
2335    signed int
2336
2337unifying pointer to function
2338  with parameters
2339    pointer to instance of type _0_T (not function type)
2340    instance of type _0_T (not function type)
2341  returning
2342    instance of type _0_T (not function type)
2343 with pointer to function
2344  with parameters
2345    pointer to signed int
2346    signed int
2347  returning
2348    signed int
2349
2350actual expression:
2351        Application of
2352          Variable Expression: id: forall
2353                T: type
2354                  with assertions
2355                    ?=?: pointer to function
2356                        with parameters
2357                          pointer to instance of type T (not function type)
2358                          instance of type T (not function type)
2359                        returning
2360                          instance of type T (not function type)
2361
2362
2363              function
2364              with parameters
2365                instance of type T (not function type)
2366              returning
2367                instance of type T (not function type)
2368
2369        to arguments
2370                      Application of
2371              Variable Expression: id: forall
2372                    T: type
2373                      with assertions
2374                        ?=?: pointer to function
2375                            with parameters
2376                              pointer to instance of type T (not function type)
2377                              instance of type T (not function type)
2378                            returning
2379                              instance of type T (not function type)
2380
2381
2382                  function
2383                  with parameters
2384                    instance of type T (not function type)
2385                  returning
2386                    instance of type T (not function type)
2387
2388            to arguments
2389                              Variable Expression: 0: signed int
2390
2391            with inferred parameters:
2392              ?=?: function
2393                with parameters
2394                  pointer to signed int
2395                  signed int
2396                returning
2397                  signed int
2398
2399
2400        with inferred parameters:
2401          ?=?: function
2402            with parameters
2403              pointer to signed int
2404              signed int
2405            returning
2406              signed int
2407
2408--- results are
2409        signed int
2410
2411converting signed int
2412 to instance of type _0_T (not function type)
2413cost is( 0, 0, 0 )
2414
2415converting pointer to function
2416          with parameters
2417            pointer to signed int
2418            signed int
2419          returning
2420            signed int
2421
2422 to pointer to function
2423          with parameters
2424            pointer to instance of type _0_T (not function type)
2425            instance of type _0_T (not function type)
2426          returning
2427            instance of type _0_T (not function type)
2428
2429cost of conversion is ( 0, 0, 0 )
2430Case +++++++++++++
2431formals are:
2432        instance of type _0_T (not function type)
2433actuals are:
2434                  Application of
2435            Variable Expression: id: forall
2436                  T: type
2437                    with assertions
2438                      ?=?: pointer to function
2439                          with parameters
2440                            pointer to instance of type T (not function type)
2441                            instance of type T (not function type)
2442                          returning
2443                            instance of type T (not function type)
2444
2445
2446                function
2447                with parameters
2448                  instance of type T (not function type)
2449                returning
2450                  instance of type T (not function type)
2451
2452          to arguments
2453                          Application of
2454                Variable Expression: id: forall
2455                      T: type
2456                        with assertions
2457                          ?=?: pointer to function
2458                              with parameters
2459                                pointer to instance of type T (not function type)
2460                                instance of type T (not function type)
2461                              returning
2462                                instance of type T (not function type)
2463
2464
2465                    function
2466                    with parameters
2467                      instance of type T (not function type)
2468                    returning
2469                      instance of type T (not function type)
2470
2471              to arguments
2472                                  Variable Expression: 0: signed int
2473
2474              with inferred parameters:
2475                ?=?: function
2476                  with parameters
2477                    pointer to signed int
2478                    signed int
2479                  returning
2480                    signed int
2481
2482
2483          with inferred parameters:
2484            ?=?: function
2485              with parameters
2486                pointer to signed int
2487                signed int
2488              returning
2489                signed int
2490
2491
2492bindings are:
2493        ( _2_T ) -> signed int  (no widening)
2494        ( _1_T ) -> signed int  (no widening)
2495        ( _0_T ) -> signed int
2496cost of conversion is:( 0, 4, 0 )
2497actual expression:
2498        Application of
2499          Variable Expression: id: forall
2500                T: type
2501                  with assertions
2502                    ?=?: pointer to function
2503                        with parameters
2504                          pointer to instance of type T (not function type)
2505                          instance of type T (not function type)
2506                        returning
2507                          instance of type T (not function type)
2508
2509
2510              function
2511              with parameters
2512                instance of type T (not function type)
2513              returning
2514                instance of type T (not function type)
2515
2516        to arguments
2517                      Application of
2518              Variable Expression: id: forall
2519                    T: type
2520                      with assertions
2521                        ?=?: pointer to function
2522                            with parameters
2523                              pointer to instance of type T (not function type)
2524                              instance of type T (not function type)
2525                            returning
2526                              instance of type T (not function type)
2527
2528
2529                  function
2530                  with parameters
2531                    instance of type T (not function type)
2532                  returning
2533                    instance of type T (not function type)
2534
2535            to arguments
2536                              Variable Expression: 0: forall
2537                      T: incomplete type
2538                    pointer to instance of type T (not function type)
2539
2540            with inferred parameters:
2541              ?=?: forall
2542                  DT: incomplete type
2543                function
2544                with parameters
2545                  pointer to pointer to instance of type DT (not function type)
2546                  pointer to instance of type DT (not function type)
2547                returning
2548                  pointer to instance of type DT (not function type)
2549
2550
2551        with inferred parameters:
2552          ?=?: forall
2553              DT: incomplete type
2554            function
2555            with parameters
2556              pointer to pointer to instance of type DT (not function type)
2557              pointer to instance of type DT (not function type)
2558            returning
2559              pointer to instance of type DT (not function type)
2560
2561--- results are
2562        forall
2563              _3_T: incomplete type
2564            pointer to instance of type _3_T (not function type)
2565
2566converting forall
2567            _3_T: incomplete type
2568          pointer to instance of type _3_T (not function type)
2569 to instance of type _0_T (not function type)
2570cost is( 0, 0, 0 )
2571
2572converting pointer to forall
2573            _9_DT: incomplete type
2574          function
2575          with parameters
2576            pointer to pointer to instance of type _9_DT (not function type)
2577            pointer to instance of type _9_DT (not function type)
2578          returning
2579            pointer to instance of type _9_DT (not function type)
2580
2581 to pointer to function
2582          with parameters
2583            pointer to instance of type _0_T (not function type)
2584            instance of type _0_T (not function type)
2585          returning
2586            instance of type _0_T (not function type)
2587
2588cost of conversion is ( 0, 0, 0 )
2589Case +++++++++++++
2590formals are:
2591        instance of type _0_T (not function type)
2592actuals are:
2593                  Application of
2594            Variable Expression: id: forall
2595                  T: type
2596                    with assertions
2597                      ?=?: pointer to function
2598                          with parameters
2599                            pointer to instance of type T (not function type)
2600                            instance of type T (not function type)
2601                          returning
2602                            instance of type T (not function type)
2603
2604
2605                function
2606                with parameters
2607                  instance of type T (not function type)
2608                returning
2609                  instance of type T (not function type)
2610
2611          to arguments
2612                          Application of
2613                Variable Expression: id: forall
2614                      T: type
2615                        with assertions
2616                          ?=?: pointer to function
2617                              with parameters
2618                                pointer to instance of type T (not function type)
2619                                instance of type T (not function type)
2620                              returning
2621                                instance of type T (not function type)
2622
2623
2624                    function
2625                    with parameters
2626                      instance of type T (not function type)
2627                    returning
2628                      instance of type T (not function type)
2629
2630              to arguments
2631                                  Variable Expression: 0: forall
2632                        T: incomplete type
2633                      pointer to instance of type T (not function type)
2634
2635              with inferred parameters:
2636                ?=?: forall
2637                    DT: incomplete type
2638                  function
2639                  with parameters
2640                    pointer to pointer to instance of type DT (not function type)
2641                    pointer to instance of type DT (not function type)
2642                  returning
2643                    pointer to instance of type DT (not function type)
2644
2645
2646          with inferred parameters:
2647            ?=?: forall
2648                DT: incomplete type
2649              function
2650              with parameters
2651                pointer to pointer to instance of type DT (not function type)
2652                pointer to instance of type DT (not function type)
2653              returning
2654                pointer to instance of type DT (not function type)
2655
2656
2657bindings are:
2658        ( _2_T ) -> forall
2659            _3_T: incomplete type
2660          pointer to instance of type _3_T (not function type)  (no widening)
2661        ( _1_T ) -> forall
2662            _3_T: incomplete type
2663          pointer to instance of type _3_T (not function type)  (no widening)
2664        ( _0_T ) -> forall
2665            _3_T: incomplete type
2666          pointer to instance of type _3_T (not function type)
2667        ( _3_T _5_DT _7_DT _9_DT ) (no widening)
2668cost of conversion is:( 0, 4, 0 )
2669alternatives before prune:
2670Cost ( 0, 4, 0 ): Application of
2671  Variable Expression: id: forall
2672        T: type
2673          with assertions
2674            ?=?: pointer to function
2675                with parameters
2676                  pointer to instance of type T (not function type)
2677                  instance of type T (not function type)
2678                returning
2679                  instance of type T (not function type)
2680
2681
2682      function
2683      with parameters
2684        instance of type T (not function type)
2685      returning
2686        instance of type T (not function type)
2687
2688to arguments
2689      Application of
2690      Variable Expression: id: forall
2691            T: type
2692              with assertions
2693                ?=?: pointer to function
2694                    with parameters
2695                      pointer to instance of type T (not function type)
2696                      instance of type T (not function type)
2697                    returning
2698                      instance of type T (not function type)
2699
2700
2701          function
2702          with parameters
2703            instance of type T (not function type)
2704          returning
2705            instance of type T (not function type)
2706
2707    to arguments
2708              Application of
2709          Variable Expression: id: forall
2710                T: type
2711                  with assertions
2712                    ?=?: pointer to function
2713                        with parameters
2714                          pointer to instance of type T (not function type)
2715                          instance of type T (not function type)
2716                        returning
2717                          instance of type T (not function type)
2718
2719
2720              function
2721              with parameters
2722                instance of type T (not function type)
2723              returning
2724                instance of type T (not function type)
2725
2726        to arguments
2727                      Variable Expression: 0: signed int
2728
2729        with inferred parameters:
2730          ?=?: function
2731            with parameters
2732              pointer to signed int
2733              signed int
2734            returning
2735              signed int
2736
2737
2738    with inferred parameters:
2739      ?=?: function
2740        with parameters
2741          pointer to signed int
2742          signed int
2743        returning
2744          signed int
2745
2746
2747with inferred parameters:
2748  ?=?: function
2749    with parameters
2750      pointer to signed int
2751      signed int
2752    returning
2753      signed int
2754
2755(types:
2756    instance of type _0_T (not function type)
2757)
2758Environment:   ( _2_T ) -> signed int  (no widening)
2759  ( _1_T ) -> signed int  (no widening)
2760  ( _0_T ) -> signed int
2761
2762
2763Cost ( 0, 4, 0 ): Application of
2764  Variable Expression: id: forall
2765        T: type
2766          with assertions
2767            ?=?: pointer to function
2768                with parameters
2769                  pointer to instance of type T (not function type)
2770                  instance of type T (not function type)
2771                returning
2772                  instance of type T (not function type)
2773
2774
2775      function
2776      with parameters
2777        instance of type T (not function type)
2778      returning
2779        instance of type T (not function type)
2780
2781to arguments
2782      Application of
2783      Variable Expression: id: forall
2784            T: type
2785              with assertions
2786                ?=?: pointer to function
2787                    with parameters
2788                      pointer to instance of type T (not function type)
2789                      instance of type T (not function type)
2790                    returning
2791                      instance of type T (not function type)
2792
2793
2794          function
2795          with parameters
2796            instance of type T (not function type)
2797          returning
2798            instance of type T (not function type)
2799
2800    to arguments
2801              Application of
2802          Variable Expression: id: forall
2803                T: type
2804                  with assertions
2805                    ?=?: pointer to function
2806                        with parameters
2807                          pointer to instance of type T (not function type)
2808                          instance of type T (not function type)
2809                        returning
2810                          instance of type T (not function type)
2811
2812
2813              function
2814              with parameters
2815                instance of type T (not function type)
2816              returning
2817                instance of type T (not function type)
2818
2819        to arguments
2820                      Variable Expression: 0: forall
2821                  T: incomplete type
2822                pointer to instance of type T (not function type)
2823
2824        with inferred parameters:
2825          ?=?: forall
2826              DT: incomplete type
2827            function
2828            with parameters
2829              pointer to pointer to instance of type DT (not function type)
2830              pointer to instance of type DT (not function type)
2831            returning
2832              pointer to instance of type DT (not function type)
2833
2834
2835    with inferred parameters:
2836      ?=?: forall
2837          DT: incomplete type
2838        function
2839        with parameters
2840          pointer to pointer to instance of type DT (not function type)
2841          pointer to instance of type DT (not function type)
2842        returning
2843          pointer to instance of type DT (not function type)
2844
2845
2846with inferred parameters:
2847  ?=?: forall
2848      DT: incomplete type
2849    function
2850    with parameters
2851      pointer to pointer to instance of type DT (not function type)
2852      pointer to instance of type DT (not function type)
2853    returning
2854      pointer to instance of type DT (not function type)
2855
2856(types:
2857    instance of type _0_T (not function type)
2858)
2859Environment:   ( _2_T ) -> forall
2860      _3_T: incomplete type
2861    pointer to instance of type _3_T (not function type)  (no widening)
2862  ( _1_T ) -> forall
2863      _3_T: incomplete type
2864    pointer to instance of type _3_T (not function type)  (no widening)
2865  ( _0_T ) -> forall
2866      _3_T: incomplete type
2867    pointer to instance of type _3_T (not function type)
2868  ( _3_T _5_DT _7_DT _9_DT ) (no widening)
2869
2870
2871there are 2 alternatives before elimination
2872there are 2 alternatives after elimination
2873findSubExprs
2874Cost ( 0, 4, 0 ): Application of
2875  Variable Expression: id: forall
2876        T: type
2877          with assertions
2878            ?=?: pointer to function
2879                with parameters
2880                  pointer to instance of type T (not function type)
2881                  instance of type T (not function type)
2882                returning
2883                  instance of type T (not function type)
2884
2885
2886      function
2887      with parameters
2888        instance of type T (not function type)
2889      returning
2890        instance of type T (not function type)
2891
2892to arguments
2893      Application of
2894      Variable Expression: id: forall
2895            T: type
2896              with assertions
2897                ?=?: pointer to function
2898                    with parameters
2899                      pointer to instance of type T (not function type)
2900                      instance of type T (not function type)
2901                    returning
2902                      instance of type T (not function type)
2903
2904
2905          function
2906          with parameters
2907            instance of type T (not function type)
2908          returning
2909            instance of type T (not function type)
2910
2911    to arguments
2912              Application of
2913          Variable Expression: id: forall
2914                T: type
2915                  with assertions
2916                    ?=?: pointer to function
2917                        with parameters
2918                          pointer to instance of type T (not function type)
2919                          instance of type T (not function type)
2920                        returning
2921                          instance of type T (not function type)
2922
2923
2924              function
2925              with parameters
2926                instance of type T (not function type)
2927              returning
2928                instance of type T (not function type)
2929
2930        to arguments
2931                      Variable Expression: 0: signed int
2932
2933        with inferred parameters:
2934          ?=?: function
2935            with parameters
2936              pointer to signed int
2937              signed int
2938            returning
2939              signed int
2940
2941
2942    with inferred parameters:
2943      ?=?: function
2944        with parameters
2945          pointer to signed int
2946          signed int
2947        returning
2948          signed int
2949
2950
2951with inferred parameters:
2952  ?=?: function
2953    with parameters
2954      pointer to signed int
2955      signed int
2956    returning
2957      signed int
2958
2959(types:
2960    signed int
2961)
2962Environment:   ( _2_T ) -> signed int  (no widening)
2963  ( _1_T ) -> signed int  (no widening)
2964  ( _0_T ) -> signed int
2965
2966
2967Cost ( 0, 4, 0 ): Application of
2968  Variable Expression: id: forall
2969        T: type
2970          with assertions
2971            ?=?: pointer to function
2972                with parameters
2973                  pointer to instance of type T (not function type)
2974                  instance of type T (not function type)
2975                returning
2976                  instance of type T (not function type)
2977
2978
2979      function
2980      with parameters
2981        instance of type T (not function type)
2982      returning
2983        instance of type T (not function type)
2984
2985to arguments
2986      Application of
2987      Variable Expression: id: forall
2988            T: type
2989              with assertions
2990                ?=?: pointer to function
2991                    with parameters
2992                      pointer to instance of type T (not function type)
2993                      instance of type T (not function type)
2994                    returning
2995                      instance of type T (not function type)
2996
2997
2998          function
2999          with parameters
3000            instance of type T (not function type)
3001          returning
3002            instance of type T (not function type)
3003
3004    to arguments
3005              Application of
3006          Variable Expression: id: forall
3007                T: type
3008                  with assertions
3009                    ?=?: pointer to function
3010                        with parameters
3011                          pointer to instance of type T (not function type)
3012                          instance of type T (not function type)
3013                        returning
3014                          instance of type T (not function type)
3015
3016
3017              function
3018              with parameters
3019                instance of type T (not function type)
3020              returning
3021                instance of type T (not function type)
3022
3023        to arguments
3024                      Variable Expression: 0: forall
3025                  T: incomplete type
3026                pointer to instance of type T (not function type)
3027
3028        with inferred parameters:
3029          ?=?: forall
3030              DT: incomplete type
3031            function
3032            with parameters
3033              pointer to pointer to instance of type DT (not function type)
3034              pointer to instance of type DT (not function type)
3035            returning
3036              pointer to instance of type DT (not function type)
3037
3038
3039    with inferred parameters:
3040      ?=?: forall
3041          DT: incomplete type
3042        function
3043        with parameters
3044          pointer to pointer to instance of type DT (not function type)
3045          pointer to instance of type DT (not function type)
3046        returning
3047          pointer to instance of type DT (not function type)
3048
3049
3050with inferred parameters:
3051  ?=?: forall
3052      DT: incomplete type
3053    function
3054    with parameters
3055      pointer to pointer to instance of type DT (not function type)
3056      pointer to instance of type DT (not function type)
3057    returning
3058      pointer to instance of type DT (not function type)
3059
3060(types:
3061    forall
3062          _3_T: incomplete type
3063        pointer to instance of type _3_T (not function type)
3064)
3065Environment:   ( _2_T ) -> forall
3066      _3_T: incomplete type
3067    pointer to instance of type _3_T (not function type)  (no widening)
3068  ( _1_T ) -> forall
3069      _3_T: incomplete type
3070    pointer to instance of type _3_T (not function type)  (no widening)
3071  ( _0_T ) -> forall
3072      _3_T: incomplete type
3073    pointer to instance of type _3_T (not function type)
3074  ( _3_T _5_DT _7_DT _9_DT ) (no widening)
3075
3076
3077working on alternative:
3078        Cost ( 0, 0, 0 ):         Variable Expression: h: function
3079            with parameters
3080              null: pointer to signed int
3081            returning
3082              nothing
3083
3084(types:
3085            pointer to function
3086                with parameters
3087                  null: pointer to signed int
3088                returning
3089                  nothing
3090
3091)
3092        Environment:
3093formal type is pointer to signed int
3094actual type is signed int
3095formal type is pointer to signed int
3096actual type is forall
3097    _3_T: incomplete type
3098  pointer to instance of type _3_T (not function type)
3099need assertions:
3100============= original indexer
3101===idTable===
3102===typeTable===
3103T
3104===structTable===
3105===enumTable===
3106===unionTable===
3107===contextTable===
3108============= new indexer
3109===idTable===
3110===typeTable===
3111T
3112===structTable===
3113===enumTable===
3114===unionTable===
3115===contextTable===
3116actual expression:
3117        Application of
3118          Variable Expression: id: forall
3119                T: type
3120                  with assertions
3121                    ?=?: pointer to function
3122                        with parameters
3123                          pointer to instance of type T (not function type)
3124                          instance of type T (not function type)
3125                        returning
3126                          instance of type T (not function type)
3127
3128
3129              function
3130              with parameters
3131                instance of type T (not function type)
3132              returning
3133                instance of type T (not function type)
3134
3135        to arguments
3136                      Application of
3137              Variable Expression: id: forall
3138                    T: type
3139                      with assertions
3140                        ?=?: pointer to function
3141                            with parameters
3142                              pointer to instance of type T (not function type)
3143                              instance of type T (not function type)
3144                            returning
3145                              instance of type T (not function type)
3146
3147
3148                  function
3149                  with parameters
3150                    instance of type T (not function type)
3151                  returning
3152                    instance of type T (not function type)
3153
3154            to arguments
3155                              Application of
3156                  Variable Expression: id: forall
3157                        T: type
3158                          with assertions
3159                            ?=?: pointer to function
3160                                with parameters
3161                                  pointer to instance of type T (not function type)
3162                                  instance of type T (not function type)
3163                                returning
3164                                  instance of type T (not function type)
3165
3166
3167                      function
3168                      with parameters
3169                        instance of type T (not function type)
3170                      returning
3171                        instance of type T (not function type)
3172
3173                to arguments
3174                                      Variable Expression: 0: forall
3175                          T: incomplete type
3176                        pointer to instance of type T (not function type)
3177
3178                with inferred parameters:
3179                  ?=?: forall
3180                      DT: incomplete type
3181                    function
3182                    with parameters
3183                      pointer to pointer to instance of type DT (not function type)
3184                      pointer to instance of type DT (not function type)
3185                    returning
3186                      pointer to instance of type DT (not function type)
3187
3188
3189            with inferred parameters:
3190              ?=?: forall
3191                  DT: incomplete type
3192                function
3193                with parameters
3194                  pointer to pointer to instance of type DT (not function type)
3195                  pointer to instance of type DT (not function type)
3196                returning
3197                  pointer to instance of type DT (not function type)
3198
3199
3200        with inferred parameters:
3201          ?=?: forall
3202              DT: incomplete type
3203            function
3204            with parameters
3205              pointer to pointer to instance of type DT (not function type)
3206              pointer to instance of type DT (not function type)
3207            returning
3208              pointer to instance of type DT (not function type)
3209
3210--- results are
3211        forall
3212              _3_T: incomplete type
3213            pointer to instance of type _3_T (not function type)
3214
3215converting forall
3216            _3_T: incomplete type
3217          pointer to instance of type _3_T (not function type)
3218 to pointer to signed int
3219cost is( 0, 0, 0 )
3220Case +++++++++++++
3221formals are:
3222        null: pointer to signed int
3223actuals are:
3224                  Application of
3225            Variable Expression: id: forall
3226                  T: type
3227                    with assertions
3228                      ?=?: pointer to function
3229                          with parameters
3230                            pointer to instance of type T (not function type)
3231                            instance of type T (not function type)
3232                          returning
3233                            instance of type T (not function type)
3234
3235
3236                function
3237                with parameters
3238                  instance of type T (not function type)
3239                returning
3240                  instance of type T (not function type)
3241
3242          to arguments
3243                          Application of
3244                Variable Expression: id: forall
3245                      T: type
3246                        with assertions
3247                          ?=?: pointer to function
3248                              with parameters
3249                                pointer to instance of type T (not function type)
3250                                instance of type T (not function type)
3251                              returning
3252                                instance of type T (not function type)
3253
3254
3255                    function
3256                    with parameters
3257                      instance of type T (not function type)
3258                    returning
3259                      instance of type T (not function type)
3260
3261              to arguments
3262                                  Application of
3263                    Variable Expression: id: forall
3264                          T: type
3265                            with assertions
3266                              ?=?: pointer to function
3267                                  with parameters
3268                                    pointer to instance of type T (not function type)
3269                                    instance of type T (not function type)
3270                                  returning
3271                                    instance of type T (not function type)
3272
3273
3274                        function
3275                        with parameters
3276                          instance of type T (not function type)
3277                        returning
3278                          instance of type T (not function type)
3279
3280                  to arguments
3281                                          Variable Expression: 0: forall
3282                            T: incomplete type
3283                          pointer to instance of type T (not function type)
3284
3285                  with inferred parameters:
3286                    ?=?: forall
3287                        DT: incomplete type
3288                      function
3289                      with parameters
3290                        pointer to pointer to instance of type DT (not function type)
3291                        pointer to instance of type DT (not function type)
3292                      returning
3293                        pointer to instance of type DT (not function type)
3294
3295
3296              with inferred parameters:
3297                ?=?: forall
3298                    DT: incomplete type
3299                  function
3300                  with parameters
3301                    pointer to pointer to instance of type DT (not function type)
3302                    pointer to instance of type DT (not function type)
3303                  returning
3304                    pointer to instance of type DT (not function type)
3305
3306
3307          with inferred parameters:
3308            ?=?: forall
3309                DT: incomplete type
3310              function
3311              with parameters
3312                pointer to pointer to instance of type DT (not function type)
3313                pointer to instance of type DT (not function type)
3314              returning
3315                pointer to instance of type DT (not function type)
3316
3317
3318bindings are:
3319        ( _2_T ) -> forall
3320            _3_T: incomplete type
3321          pointer to instance of type _3_T (not function type)  (no widening)
3322        ( _1_T ) -> forall
3323            _3_T: incomplete type
3324          pointer to instance of type _3_T (not function type)  (no widening)
3325        ( _0_T ) -> forall
3326            _3_T: incomplete type
3327          pointer to instance of type _3_T (not function type)  (no widening)
3328        ( _3_T _5_DT _7_DT _9_DT ) -> signed int  (no widening)
3329cost of conversion is:( 0, 1, 0 )
3330alternatives before prune:
3331Cost ( 0, 1, 0 ): Application of
3332  Variable Expression: h: function
3333      with parameters
3334        null: pointer to signed int
3335      returning
3336        nothing
3337
3338to arguments
3339      Application of
3340      Variable Expression: id: forall
3341            T: type
3342              with assertions
3343                ?=?: pointer to function
3344                    with parameters
3345                      pointer to instance of type T (not function type)
3346                      instance of type T (not function type)
3347                    returning
3348                      instance of type T (not function type)
3349
3350
3351          function
3352          with parameters
3353            instance of type T (not function type)
3354          returning
3355            instance of type T (not function type)
3356
3357    to arguments
3358              Application of
3359          Variable Expression: id: forall
3360                T: type
3361                  with assertions
3362                    ?=?: pointer to function
3363                        with parameters
3364                          pointer to instance of type T (not function type)
3365                          instance of type T (not function type)
3366                        returning
3367                          instance of type T (not function type)
3368
3369
3370              function
3371              with parameters
3372                instance of type T (not function type)
3373              returning
3374                instance of type T (not function type)
3375
3376        to arguments
3377                      Application of
3378              Variable Expression: id: forall
3379                    T: type
3380                      with assertions
3381                        ?=?: pointer to function
3382                            with parameters
3383                              pointer to instance of type T (not function type)
3384                              instance of type T (not function type)
3385                            returning
3386                              instance of type T (not function type)
3387
3388
3389                  function
3390                  with parameters
3391                    instance of type T (not function type)
3392                  returning
3393                    instance of type T (not function type)
3394
3395            to arguments
3396                              Variable Expression: 0: forall
3397                      T: incomplete type
3398                    pointer to instance of type T (not function type)
3399
3400            with inferred parameters:
3401              ?=?: forall
3402                  DT: incomplete type
3403                function
3404                with parameters
3405                  pointer to pointer to instance of type DT (not function type)
3406                  pointer to instance of type DT (not function type)
3407                returning
3408                  pointer to instance of type DT (not function type)
3409
3410
3411        with inferred parameters:
3412          ?=?: forall
3413              DT: incomplete type
3414            function
3415            with parameters
3416              pointer to pointer to instance of type DT (not function type)
3417              pointer to instance of type DT (not function type)
3418            returning
3419              pointer to instance of type DT (not function type)
3420
3421
3422    with inferred parameters:
3423      ?=?: forall
3424          DT: incomplete type
3425        function
3426        with parameters
3427          pointer to pointer to instance of type DT (not function type)
3428          pointer to instance of type DT (not function type)
3429        returning
3430          pointer to instance of type DT (not function type)
3431
3432
3433(types:
3434)
3435Environment:   ( _2_T ) -> forall
3436      _3_T: incomplete type
3437    pointer to instance of type _3_T (not function type)  (no widening)
3438  ( _1_T ) -> forall
3439      _3_T: incomplete type
3440    pointer to instance of type _3_T (not function type)  (no widening)
3441  ( _0_T ) -> forall
3442      _3_T: incomplete type
3443    pointer to instance of type _3_T (not function type)  (no widening)
3444  ( _3_T _5_DT _7_DT _9_DT ) -> signed int  (no widening)
3445
3446
3447there are 1 alternatives before elimination
3448there are 1 alternatives after elimination
3449alternatives before prune:
3450Cost ( 0, 0, 0 ): Cast of:
3451  Application of
3452    Variable Expression: h: function
3453        with parameters
3454          null: pointer to signed int
3455        returning
3456          nothing
3457
3458  to arguments
3459          Application of
3460        Variable Expression: id: forall
3461              T: type
3462                with assertions
3463                  ?=?: pointer to function
3464                      with parameters
3465                        pointer to instance of type T (not function type)
3466                        instance of type T (not function type)
3467                      returning
3468                        instance of type T (not function type)
3469
3470
3471            function
3472            with parameters
3473              instance of type T (not function type)
3474            returning
3475              instance of type T (not function type)
3476
3477      to arguments
3478                  Application of
3479            Variable Expression: id: forall
3480                  T: type
3481                    with assertions
3482                      ?=?: pointer to function
3483                          with parameters
3484                            pointer to instance of type T (not function type)
3485                            instance of type T (not function type)
3486                          returning
3487                            instance of type T (not function type)
3488
3489
3490                function
3491                with parameters
3492                  instance of type T (not function type)
3493                returning
3494                  instance of type T (not function type)
3495
3496          to arguments
3497                          Application of
3498                Variable Expression: id: forall
3499                      T: type
3500                        with assertions
3501                          ?=?: pointer to function
3502                              with parameters
3503                                pointer to instance of type T (not function type)
3504                                instance of type T (not function type)
3505                              returning
3506                                instance of type T (not function type)
3507
3508
3509                    function
3510                    with parameters
3511                      instance of type T (not function type)
3512                    returning
3513                      instance of type T (not function type)
3514
3515              to arguments
3516                                  Variable Expression: 0: forall
3517                        T: incomplete type
3518                      pointer to instance of type T (not function type)
3519
3520              with inferred parameters:
3521                ?=?: forall
3522                    DT: incomplete type
3523                  function
3524                  with parameters
3525                    pointer to pointer to instance of type DT (not function type)
3526                    pointer to instance of type DT (not function type)
3527                  returning
3528                    pointer to instance of type DT (not function type)
3529
3530
3531          with inferred parameters:
3532            ?=?: forall
3533                DT: incomplete type
3534              function
3535              with parameters
3536                pointer to pointer to instance of type DT (not function type)
3537                pointer to instance of type DT (not function type)
3538              returning
3539                pointer to instance of type DT (not function type)
3540
3541
3542      with inferred parameters:
3543        ?=?: forall
3544            DT: incomplete type
3545          function
3546          with parameters
3547            pointer to pointer to instance of type DT (not function type)
3548            pointer to instance of type DT (not function type)
3549          returning
3550            pointer to instance of type DT (not function type)
3551
3552
3553
3554to:
3555  nothing
3556(types:
3557)
3558Environment:   ( _2_T ) -> forall
3559      _3_T: incomplete type
3560    pointer to instance of type _3_T (not function type)  (no widening)
3561  ( _1_T ) -> forall
3562      _3_T: incomplete type
3563    pointer to instance of type _3_T (not function type)  (no widening)
3564  ( _0_T ) -> forall
3565      _3_T: incomplete type
3566    pointer to instance of type _3_T (not function type)  (no widening)
3567  ( _3_T _5_DT _7_DT _9_DT ) -> signed int  (no widening)
3568
3569
3570there are 1 alternatives before elimination
3571there are 1 alternatives after elimination
3572int ___operator_assign__Fi_Pii_(int *, int );
3573void *___operator_assign__A0_1_0__FPd0_PPd0Pd0_(void **, void *);
3574void __a__F__(){
3575    void __f__A1_0_0____operator_assign__PFt0_Pt0t0__F_t0_(void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, void (*___operator_assign__PF2tT_P2tT2tT_)(), void *);
3576    void __g__F_PA1_0_0____operator_assign__PFt0_Pt0t0__F_t0__(void (*__p__PA1_0_0____operator_assign__PFt0_Pt0t0__F_t0_)(void (*_adapterF2tU_P2tU2tU_)(void (*)(), void *, void *, void *), long unsigned int U, void (*___operator_assign__PF2tU_P2tU2tU_)(), void *));
3577    __g__F_PA1_0_0____operator_assign__PFt0_Pt0t0__F_t0__(__f__A1_0_0____operator_assign__PFt0_Pt0t0__F_t0_);
3578}
3579void __g__F__(){
3580    void __h__F_Pi_(int *__null__Pi);
3581    void __id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, void (*___operator_assign__PF2tT_P2tT2tT_)(), void *, void *);
3582    void *___constant_zero__A0_1_0__Pd0;
3583    int ___constant_zero__i;
3584    void *_thunk0(void **_p0, void *_p1){
3585        return ___operator_assign__A0_1_0__FPd0_PPd0Pd0_(_p0, _p1);
3586    }
3587    void *_thunk1(void **_p0, void *_p1){
3588        return ___operator_assign__A0_1_0__FPd0_PPd0Pd0_(_p0, _p1);
3589    }
3590    void *_thunk2(void **_p0, void *_p1){
3591        return ___operator_assign__A0_1_0__FPd0_PPd0Pd0_(_p0, _p1);
3592    }
3593    void *_temp0;
3594    void _adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
3595        ((*((_3_T **)_ret))=((void *(*)(void **, void *))_adaptee)(_p0, (*((_3_T **)_p1))));
3596    }
3597    void *_temp1;
3598    void *_temp2;
3599    __h__F_Pi_((__id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(_adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_, sizeof(_3_T *), ((void (*)())(&_thunk2)), (&_temp2), (&(__id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(_adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_, sizeof(_3_T *), ((void (*)())(&_thunk1)), (&_temp1), (&(__id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(_adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_, sizeof(_3_T *), ((void (*)())(&_thunk0)), (&_temp0), (&___constant_zero__A0_1_0__Pd0)) , _temp0))) , _temp1))) , _temp2));
3600}
Note: See TracBrowser for help on using the repository browser.