source: src/Tests/Expect-r/InferParam.txt @ ea9b9d3

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsctordeferred_resndemanglerenumforall-pointer-decaygc_noraiijacob/cs343-translationjenkins-sandboxmemorynew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newstringwith_gc
Last change on this file since ea9b9d3 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: 78.8 KB
Line 
1nameExpr is i
2decl is i: function
3  with parameters
4    float
5  returning
6    nothing
7
8newExpr is Variable Expression: i: function
9    with parameters
10      float
11    returning
12      nothing
13
14
15alternatives before prune:
16Cost ( 0, 0, 0 ): Variable Expression: i: function
17    with parameters
18      float
19    returning
20      nothing
21
22(types:
23    pointer to function
24        with parameters
25          float
26        returning
27          nothing
28
29)
30Environment:
31
32there are 1 alternatives before elimination
33there are 1 alternatives after elimination
34nameExpr is g
35decl is g: forall
36    T: type
37      with assertions
38        ?=?: pointer to function
39            with parameters
40              pointer to instance of type T (not function type)
41              instance of type T (not function type)
42            returning
43              instance of type T (not function type)
44
45
46    U: type
47      with assertions
48        ?=?: pointer to function
49            with parameters
50              pointer to instance of type U (not function type)
51              instance of type U (not function type)
52            returning
53              instance of type U (not function type)
54
55        f: pointer to function
56            with parameters
57              instance of type T (not function type)
58            returning
59              instance of type U (not function type)
60
61
62  function
63  with parameters
64    instance of type T (not function type)
65  returning
66    instance of type U (not function type)
67
68newExpr is Variable Expression: g: forall
69      T: type
70        with assertions
71          ?=?: pointer to function
72              with parameters
73                pointer to instance of type T (not function type)
74                instance of type T (not function type)
75              returning
76                instance of type T (not function type)
77
78
79      U: type
80        with assertions
81          ?=?: pointer to function
82              with parameters
83                pointer to instance of type U (not function type)
84                instance of type U (not function type)
85              returning
86                instance of type U (not function type)
87
88          f: pointer to function
89              with parameters
90                instance of type T (not function type)
91              returning
92                instance of type U (not function type)
93
94
95    function
96    with parameters
97      instance of type T (not function type)
98    returning
99      instance of type U (not function type)
100
101
102alternatives before prune:
103Cost ( 0, 0, 0 ): Variable Expression: g: forall
104      T: type
105        with assertions
106          ?=?: pointer to function
107              with parameters
108                pointer to instance of type T (not function type)
109                instance of type T (not function type)
110              returning
111                instance of type T (not function type)
112
113
114      U: type
115        with assertions
116          ?=?: pointer to function
117              with parameters
118                pointer to instance of type U (not function type)
119                instance of type U (not function type)
120              returning
121                instance of type U (not function type)
122
123          f: pointer to function
124              with parameters
125                instance of type T (not function type)
126              returning
127                instance of type U (not function type)
128
129
130    function
131    with parameters
132      instance of type T (not function type)
133    returning
134      instance of type U (not function type)
135
136(types:
137    pointer to forall
138          _0_T: type
139            with assertions
140              ?=?: pointer to function
141                  with parameters
142                    pointer to instance of type _0_T (not function type)
143                    instance of type _0_T (not function type)
144                  returning
145                    instance of type _0_T (not function type)
146
147
148          _1_U: type
149            with assertions
150              ?=?: pointer to function
151                  with parameters
152                    pointer to instance of type _1_U (not function type)
153                    instance of type _1_U (not function type)
154                  returning
155                    instance of type _1_U (not function type)
156
157              f: pointer to function
158                  with parameters
159                    instance of type _0_T (not function type)
160                  returning
161                    instance of type _1_U (not function type)
162
163
164        function
165        with parameters
166          instance of type _0_T (not function type)
167        returning
168          instance of type _1_U (not function type)
169
170)
171Environment:
172
173there are 1 alternatives before elimination
174there are 1 alternatives after elimination
175nameExpr is a
176decl is a: signed int
177newExpr is Variable Expression: a: signed int
178
179alternatives before prune:
180Cost ( 0, 0, 0 ): Variable Expression: a: signed int
181(types:
182    lvalue signed int
183)
184Environment:
185
186there are 1 alternatives before elimination
187there are 1 alternatives after elimination
188findSubExprs
189Cost ( 0, 0, 0 ): Variable Expression: a: signed int
190(types:
191    lvalue signed int
192)
193Environment:
194
195working on alternative:
196        Cost ( 0, 0, 0 ):         Variable Expression: g: forall
197              T: type
198                with assertions
199                  ?=?: pointer to function
200                      with parameters
201                        pointer to instance of type T (not function type)
202                        instance of type T (not function type)
203                      returning
204                        instance of type T (not function type)
205
206
207              U: type
208                with assertions
209                  ?=?: pointer to function
210                      with parameters
211                        pointer to instance of type U (not function type)
212                        instance of type U (not function type)
213                      returning
214                        instance of type U (not function type)
215
216                  f: pointer to function
217                      with parameters
218                        instance of type T (not function type)
219                      returning
220                        instance of type U (not function type)
221
222
223            function
224            with parameters
225              instance of type T (not function type)
226            returning
227              instance of type U (not function type)
228
229(types:
230            pointer to forall
231                  _0_T: type
232                    with assertions
233                      ?=?: pointer to function
234                          with parameters
235                            pointer to instance of type _0_T (not function type)
236                            instance of type _0_T (not function type)
237                          returning
238                            instance of type _0_T (not function type)
239
240
241                  _1_U: type
242                    with assertions
243                      ?=?: pointer to function
244                          with parameters
245                            pointer to instance of type _1_U (not function type)
246                            instance of type _1_U (not function type)
247                          returning
248                            instance of type _1_U (not function type)
249
250                      f: pointer to function
251                          with parameters
252                            instance of type _0_T (not function type)
253                          returning
254                            instance of type _1_U (not function type)
255
256
257                function
258                with parameters
259                  instance of type _0_T (not function type)
260                returning
261                  instance of type _1_U (not function type)
262
263)
264        Environment:
265formal type is instance of type _0_T (not function type)
266actual type is lvalue signed int
267need assertions:
268?=?: pointer to function
269          with parameters
270            pointer to instance of type _1_U (not function type)
271            instance of type _1_U (not function type)
272          returning
273            instance of type _1_U (not function type)
274(used)f: pointer to function
275          with parameters
276            instance of type _0_T (not function type)
277          returning
278            instance of type _1_U (not function type)
279(used)?=?: pointer to function
280          with parameters
281            pointer to instance of type _0_T (not function type)
282            instance of type _0_T (not function type)
283          returning
284            instance of type _0_T (not function type)
285(used)============= original indexer
286===idTable===
287===typeTable===
288===structTable===
289===enumTable===
290===unionTable===
291===contextTable===
292============= new indexer
293===idTable===
294===typeTable===
295===structTable===
296===enumTable===
297===unionTable===
298===contextTable===
299inferRecursive: assertion is ?=?: pointer to function
300  with parameters
301    pointer to instance of type _1_U (not function type)
302    instance of type _1_U (not function type)
303  returning
304    instance of type _1_U (not function type)
305
306inferRecursive: candidate is ?=?: function
307  with parameters
308    pointer to double
309    double
310  returning
311    double
312
313unifying pointer to function
314  with parameters
315    pointer to instance of type _1_U (not function type)
316    instance of type _1_U (not function type)
317  returning
318    instance of type _1_U (not function type)
319 with pointer to function
320  with parameters
321    pointer to double
322    double
323  returning
324    double
325
326success!
327satisfying assertion 20 ?=?: pointer to function
328  with parameters
329    pointer to instance of type _1_U (not function type)
330    instance of type _1_U (not function type)
331  returning
332    instance of type _1_U (not function type)
333 with declaration 12 ?=?: function
334  with parameters
335    pointer to double
336    double
337  returning
338    double
339
340inferRecursive: assertion is f: pointer to function
341  with parameters
342    instance of type _0_T (not function type)
343  returning
344    instance of type _1_U (not function type)
345
346inferRecursive: candidate is f: function
347  with parameters
348    signed int
349  returning
350    double
351
352unifying pointer to function
353  with parameters
354    instance of type _0_T (not function type)
355  returning
356    instance of type _1_U (not function type)
357 with pointer to function
358  with parameters
359    signed int
360  returning
361    double
362
363success!
364satisfying assertion 23 f: pointer to function
365  with parameters
366    instance of type _0_T (not function type)
367  returning
368    instance of type _1_U (not function type)
369 with declaration 32 f: function
370  with parameters
371    signed int
372  returning
373    double
374
375inferRecursive: assertion is ?=?: pointer to function
376  with parameters
377    pointer to instance of type _0_T (not function type)
378    instance of type _0_T (not function type)
379  returning
380    instance of type _0_T (not function type)
381
382inferRecursive: candidate is ?=?: function
383  with parameters
384    pointer to double
385    double
386  returning
387    double
388
389unifying pointer to function
390  with parameters
391    pointer to instance of type _0_T (not function type)
392    instance of type _0_T (not function type)
393  returning
394    instance of type _0_T (not function type)
395 with pointer to function
396  with parameters
397    pointer to double
398    double
399  returning
400    double
401
402inferRecursive: candidate is ?=?: function
403  with parameters
404    pointer to float
405    float
406  returning
407    float
408
409unifying pointer to function
410  with parameters
411    pointer to instance of type _0_T (not function type)
412    instance of type _0_T (not function type)
413  returning
414    instance of type _0_T (not function type)
415 with pointer to function
416  with parameters
417    pointer to float
418    float
419  returning
420    float
421
422inferRecursive: candidate is ?=?: function
423  with parameters
424    pointer to signed int
425    signed int
426  returning
427    signed int
428
429unifying pointer to function
430  with parameters
431    pointer to instance of type _0_T (not function type)
432    instance of type _0_T (not function type)
433  returning
434    instance of type _0_T (not function type)
435 with pointer to function
436  with parameters
437    pointer to signed int
438    signed int
439  returning
440    signed int
441
442success!
443satisfying assertion 16 ?=?: pointer to function
444  with parameters
445    pointer to instance of type _0_T (not function type)
446    instance of type _0_T (not function type)
447  returning
448    instance of type _0_T (not function type)
449 with declaration 4 ?=?: function
450  with parameters
451    pointer to signed int
452    signed int
453  returning
454    signed int
455
456inferRecursive: candidate is f: function
457  with parameters
458    signed int
459  returning
460    float
461
462unifying pointer to function
463  with parameters
464    instance of type _0_T (not function type)
465  returning
466    instance of type _1_U (not function type)
467 with pointer to function
468  with parameters
469    signed int
470  returning
471    float
472
473inferRecursive: candidate is ?=?: function
474  with parameters
475    pointer to float
476    float
477  returning
478    float
479
480unifying pointer to function
481  with parameters
482    pointer to instance of type _1_U (not function type)
483    instance of type _1_U (not function type)
484  returning
485    instance of type _1_U (not function type)
486 with pointer to function
487  with parameters
488    pointer to float
489    float
490  returning
491    float
492
493success!
494satisfying assertion 20 ?=?: pointer to function
495  with parameters
496    pointer to instance of type _1_U (not function type)
497    instance of type _1_U (not function type)
498  returning
499    instance of type _1_U (not function type)
500 with declaration 8 ?=?: function
501  with parameters
502    pointer to float
503    float
504  returning
505    float
506
507inferRecursive: assertion is f: pointer to function
508  with parameters
509    instance of type _0_T (not function type)
510  returning
511    instance of type _1_U (not function type)
512
513inferRecursive: candidate is f: function
514  with parameters
515    signed int
516  returning
517    double
518
519unifying pointer to function
520  with parameters
521    instance of type _0_T (not function type)
522  returning
523    instance of type _1_U (not function type)
524 with pointer to function
525  with parameters
526    signed int
527  returning
528    double
529
530inferRecursive: candidate is f: function
531  with parameters
532    signed int
533  returning
534    float
535
536unifying pointer to function
537  with parameters
538    instance of type _0_T (not function type)
539  returning
540    instance of type _1_U (not function type)
541 with pointer to function
542  with parameters
543    signed int
544  returning
545    float
546
547success!
548satisfying assertion 23 f: pointer to function
549  with parameters
550    instance of type _0_T (not function type)
551  returning
552    instance of type _1_U (not function type)
553 with declaration 29 f: function
554  with parameters
555    signed int
556  returning
557    float
558
559inferRecursive: assertion is ?=?: pointer to function
560  with parameters
561    pointer to instance of type _0_T (not function type)
562    instance of type _0_T (not function type)
563  returning
564    instance of type _0_T (not function type)
565
566inferRecursive: candidate is ?=?: function
567  with parameters
568    pointer to double
569    double
570  returning
571    double
572
573unifying pointer to function
574  with parameters
575    pointer to instance of type _0_T (not function type)
576    instance of type _0_T (not function type)
577  returning
578    instance of type _0_T (not function type)
579 with pointer to function
580  with parameters
581    pointer to double
582    double
583  returning
584    double
585
586inferRecursive: candidate is ?=?: function
587  with parameters
588    pointer to float
589    float
590  returning
591    float
592
593unifying pointer to function
594  with parameters
595    pointer to instance of type _0_T (not function type)
596    instance of type _0_T (not function type)
597  returning
598    instance of type _0_T (not function type)
599 with pointer to function
600  with parameters
601    pointer to float
602    float
603  returning
604    float
605
606inferRecursive: candidate is ?=?: function
607  with parameters
608    pointer to signed int
609    signed int
610  returning
611    signed int
612
613unifying pointer to function
614  with parameters
615    pointer to instance of type _0_T (not function type)
616    instance of type _0_T (not function type)
617  returning
618    instance of type _0_T (not function type)
619 with pointer to function
620  with parameters
621    pointer to signed int
622    signed int
623  returning
624    signed int
625
626success!
627satisfying assertion 16 ?=?: pointer to function
628  with parameters
629    pointer to instance of type _0_T (not function type)
630    instance of type _0_T (not function type)
631  returning
632    instance of type _0_T (not function type)
633 with declaration 4 ?=?: function
634  with parameters
635    pointer to signed int
636    signed int
637  returning
638    signed int
639
640inferRecursive: candidate is ?=?: function
641  with parameters
642    pointer to signed int
643    signed int
644  returning
645    signed int
646
647unifying pointer to function
648  with parameters
649    pointer to instance of type _1_U (not function type)
650    instance of type _1_U (not function type)
651  returning
652    instance of type _1_U (not function type)
653 with pointer to function
654  with parameters
655    pointer to signed int
656    signed int
657  returning
658    signed int
659
660success!
661satisfying assertion 20 ?=?: pointer to function
662  with parameters
663    pointer to instance of type _1_U (not function type)
664    instance of type _1_U (not function type)
665  returning
666    instance of type _1_U (not function type)
667 with declaration 4 ?=?: function
668  with parameters
669    pointer to signed int
670    signed int
671  returning
672    signed int
673
674inferRecursive: assertion is f: pointer to function
675  with parameters
676    instance of type _0_T (not function type)
677  returning
678    instance of type _1_U (not function type)
679
680inferRecursive: candidate is f: function
681  with parameters
682    signed int
683  returning
684    double
685
686unifying pointer to function
687  with parameters
688    instance of type _0_T (not function type)
689  returning
690    instance of type _1_U (not function type)
691 with pointer to function
692  with parameters
693    signed int
694  returning
695    double
696
697inferRecursive: candidate is f: function
698  with parameters
699    signed int
700  returning
701    float
702
703unifying pointer to function
704  with parameters
705    instance of type _0_T (not function type)
706  returning
707    instance of type _1_U (not function type)
708 with pointer to function
709  with parameters
710    signed int
711  returning
712    float
713
714actual expression:
715        Variable Expression: a: signed int
716--- results are
717        lvalue signed int
718
719converting lvalue signed int
720 to instance of type _0_T (not function type)
721cost is( 0, 0, 0 )
722
723converting pointer to function
724          with parameters
725            pointer to signed int
726            signed int
727          returning
728            signed int
729
730 to pointer to function
731          with parameters
732            pointer to instance of type _0_T (not function type)
733            instance of type _0_T (not function type)
734          returning
735            instance of type _0_T (not function type)
736
737cost of conversion is ( 0, 0, 0 )
738
739converting pointer to function
740          with parameters
741            pointer to double
742            double
743          returning
744            double
745
746 to pointer to function
747          with parameters
748            pointer to instance of type _1_U (not function type)
749            instance of type _1_U (not function type)
750          returning
751            instance of type _1_U (not function type)
752
753cost of conversion is ( 0, 0, 0 )
754
755converting pointer to function
756          with parameters
757            signed int
758          returning
759            double
760
761 to pointer to function
762          with parameters
763            instance of type _0_T (not function type)
764          returning
765            instance of type _1_U (not function type)
766
767cost of conversion is ( 0, 0, 0 )
768Case +++++++++++++
769formals are:
770        instance of type _0_T (not function type)
771actuals are:
772                  Variable Expression: a: signed int
773
774bindings are:
775        ( _0_T ) -> signed int
776        ( _1_U ) -> double  (no widening)
777cost of conversion is:( 0, 9, 0 )
778actual expression:
779        Variable Expression: a: signed int
780--- results are
781        lvalue signed int
782
783converting lvalue signed int
784 to instance of type _0_T (not function type)
785cost is( 0, 0, 0 )
786
787converting pointer to function
788          with parameters
789            pointer to signed int
790            signed int
791          returning
792            signed int
793
794 to pointer to function
795          with parameters
796            pointer to instance of type _0_T (not function type)
797            instance of type _0_T (not function type)
798          returning
799            instance of type _0_T (not function type)
800
801cost of conversion is ( 0, 0, 0 )
802
803converting pointer to function
804          with parameters
805            pointer to float
806            float
807          returning
808            float
809
810 to pointer to function
811          with parameters
812            pointer to instance of type _1_U (not function type)
813            instance of type _1_U (not function type)
814          returning
815            instance of type _1_U (not function type)
816
817cost of conversion is ( 0, 0, 0 )
818
819converting pointer to function
820          with parameters
821            signed int
822          returning
823            float
824
825 to pointer to function
826          with parameters
827            instance of type _0_T (not function type)
828          returning
829            instance of type _1_U (not function type)
830
831cost of conversion is ( 0, 0, 0 )
832Case +++++++++++++
833formals are:
834        instance of type _0_T (not function type)
835actuals are:
836                  Variable Expression: a: signed int
837
838bindings are:
839        ( _0_T ) -> signed int
840        ( _1_U ) -> float  (no widening)
841cost of conversion is:( 0, 9, 0 )
842alternatives before prune:
843Cost ( 0, 9, 0 ): Application of
844  Variable Expression: g: forall
845        T: type
846          with assertions
847            ?=?: pointer to function
848                with parameters
849                  pointer to instance of type T (not function type)
850                  instance of type T (not function type)
851                returning
852                  instance of type T (not function type)
853
854
855        U: type
856          with assertions
857            ?=?: pointer to function
858                with parameters
859                  pointer to instance of type U (not function type)
860                  instance of type U (not function type)
861                returning
862                  instance of type U (not function type)
863
864            f: pointer to function
865                with parameters
866                  instance of type T (not function type)
867                returning
868                  instance of type U (not function type)
869
870
871      function
872      with parameters
873        instance of type T (not function type)
874      returning
875        instance of type U (not function type)
876
877to arguments
878      Variable Expression: a: signed int
879
880with inferred parameters:
881  ?=?: function
882    with parameters
883      pointer to signed int
884      signed int
885    returning
886      signed int
887
888  ?=?: function
889    with parameters
890      pointer to double
891      double
892    returning
893      double
894
895  f: function
896    with parameters
897      signed int
898    returning
899      double
900
901(types:
902    instance of type _1_U (not function type)
903)
904Environment:   ( _0_T ) -> signed int
905  ( _1_U ) -> double  (no widening)
906
907
908Cost ( 0, 9, 0 ): Application of
909  Variable Expression: g: forall
910        T: type
911          with assertions
912            ?=?: pointer to function
913                with parameters
914                  pointer to instance of type T (not function type)
915                  instance of type T (not function type)
916                returning
917                  instance of type T (not function type)
918
919
920        U: type
921          with assertions
922            ?=?: pointer to function
923                with parameters
924                  pointer to instance of type U (not function type)
925                  instance of type U (not function type)
926                returning
927                  instance of type U (not function type)
928
929            f: pointer to function
930                with parameters
931                  instance of type T (not function type)
932                returning
933                  instance of type U (not function type)
934
935
936      function
937      with parameters
938        instance of type T (not function type)
939      returning
940        instance of type U (not function type)
941
942to arguments
943      Variable Expression: a: signed int
944
945with inferred parameters:
946  ?=?: function
947    with parameters
948      pointer to signed int
949      signed int
950    returning
951      signed int
952
953  ?=?: function
954    with parameters
955      pointer to float
956      float
957    returning
958      float
959
960  f: function
961    with parameters
962      signed int
963    returning
964      float
965
966(types:
967    instance of type _1_U (not function type)
968)
969Environment:   ( _0_T ) -> signed int
970  ( _1_U ) -> float  (no widening)
971
972
973there are 2 alternatives before elimination
974there are 2 alternatives after elimination
975findSubExprs
976Cost ( 0, 9, 0 ): Application of
977  Variable Expression: g: forall
978        T: type
979          with assertions
980            ?=?: pointer to function
981                with parameters
982                  pointer to instance of type T (not function type)
983                  instance of type T (not function type)
984                returning
985                  instance of type T (not function type)
986
987
988        U: type
989          with assertions
990            ?=?: pointer to function
991                with parameters
992                  pointer to instance of type U (not function type)
993                  instance of type U (not function type)
994                returning
995                  instance of type U (not function type)
996
997            f: pointer to function
998                with parameters
999                  instance of type T (not function type)
1000                returning
1001                  instance of type U (not function type)
1002
1003
1004      function
1005      with parameters
1006        instance of type T (not function type)
1007      returning
1008        instance of type U (not function type)
1009
1010to arguments
1011      Variable Expression: a: signed int
1012
1013with inferred parameters:
1014  ?=?: function
1015    with parameters
1016      pointer to signed int
1017      signed int
1018    returning
1019      signed int
1020
1021  ?=?: function
1022    with parameters
1023      pointer to float
1024      float
1025    returning
1026      float
1027
1028  f: function
1029    with parameters
1030      signed int
1031    returning
1032      float
1033
1034(types:
1035    float
1036)
1037Environment:   ( _0_T ) -> signed int
1038  ( _1_U ) -> float  (no widening)
1039
1040
1041Cost ( 0, 9, 0 ): Application of
1042  Variable Expression: g: forall
1043        T: type
1044          with assertions
1045            ?=?: pointer to function
1046                with parameters
1047                  pointer to instance of type T (not function type)
1048                  instance of type T (not function type)
1049                returning
1050                  instance of type T (not function type)
1051
1052
1053        U: type
1054          with assertions
1055            ?=?: pointer to function
1056                with parameters
1057                  pointer to instance of type U (not function type)
1058                  instance of type U (not function type)
1059                returning
1060                  instance of type U (not function type)
1061
1062            f: pointer to function
1063                with parameters
1064                  instance of type T (not function type)
1065                returning
1066                  instance of type U (not function type)
1067
1068
1069      function
1070      with parameters
1071        instance of type T (not function type)
1072      returning
1073        instance of type U (not function type)
1074
1075to arguments
1076      Variable Expression: a: signed int
1077
1078with inferred parameters:
1079  ?=?: function
1080    with parameters
1081      pointer to signed int
1082      signed int
1083    returning
1084      signed int
1085
1086  ?=?: function
1087    with parameters
1088      pointer to double
1089      double
1090    returning
1091      double
1092
1093  f: function
1094    with parameters
1095      signed int
1096    returning
1097      double
1098
1099(types:
1100    double
1101)
1102Environment:   ( _0_T ) -> signed int
1103  ( _1_U ) -> double  (no widening)
1104
1105
1106working on alternative:
1107        Cost ( 0, 0, 0 ):         Variable Expression: i: function
1108            with parameters
1109              float
1110            returning
1111              nothing
1112
1113(types:
1114            pointer to function
1115                with parameters
1116                  float
1117                returning
1118                  nothing
1119
1120)
1121        Environment:
1122formal type is float
1123actual type is float
1124need assertions:
1125============= original indexer
1126===idTable===
1127===typeTable===
1128===structTable===
1129===enumTable===
1130===unionTable===
1131===contextTable===
1132============= new indexer
1133===idTable===
1134===typeTable===
1135===structTable===
1136===enumTable===
1137===unionTable===
1138===contextTable===
1139formal type is float
1140actual type is double
1141need assertions:
1142============= original indexer
1143===idTable===
1144===typeTable===
1145===structTable===
1146===enumTable===
1147===unionTable===
1148===contextTable===
1149============= new indexer
1150===idTable===
1151===typeTable===
1152===structTable===
1153===enumTable===
1154===unionTable===
1155===contextTable===
1156actual expression:
1157        Application of
1158          Variable Expression: g: forall
1159                T: type
1160                  with assertions
1161                    ?=?: pointer to function
1162                        with parameters
1163                          pointer to instance of type T (not function type)
1164                          instance of type T (not function type)
1165                        returning
1166                          instance of type T (not function type)
1167
1168
1169                U: type
1170                  with assertions
1171                    ?=?: pointer to function
1172                        with parameters
1173                          pointer to instance of type U (not function type)
1174                          instance of type U (not function type)
1175                        returning
1176                          instance of type U (not function type)
1177
1178                    f: pointer to function
1179                        with parameters
1180                          instance of type T (not function type)
1181                        returning
1182                          instance of type U (not function type)
1183
1184
1185              function
1186              with parameters
1187                instance of type T (not function type)
1188              returning
1189                instance of type U (not function type)
1190
1191        to arguments
1192                      Variable Expression: a: signed int
1193
1194        with inferred parameters:
1195          ?=?: function
1196            with parameters
1197              pointer to signed int
1198              signed int
1199            returning
1200              signed int
1201
1202          ?=?: function
1203            with parameters
1204              pointer to float
1205              float
1206            returning
1207              float
1208
1209          f: function
1210            with parameters
1211              signed int
1212            returning
1213              float
1214
1215--- results are
1216        float
1217
1218converting float
1219 to float
1220cost is( 0, 0, 0 )
1221Case +++++++++++++
1222formals are:
1223        float
1224actuals are:
1225                  Application of
1226            Variable Expression: g: forall
1227                  T: type
1228                    with assertions
1229                      ?=?: pointer to function
1230                          with parameters
1231                            pointer to instance of type T (not function type)
1232                            instance of type T (not function type)
1233                          returning
1234                            instance of type T (not function type)
1235
1236
1237                  U: type
1238                    with assertions
1239                      ?=?: pointer to function
1240                          with parameters
1241                            pointer to instance of type U (not function type)
1242                            instance of type U (not function type)
1243                          returning
1244                            instance of type U (not function type)
1245
1246                      f: pointer to function
1247                          with parameters
1248                            instance of type T (not function type)
1249                          returning
1250                            instance of type U (not function type)
1251
1252
1253                function
1254                with parameters
1255                  instance of type T (not function type)
1256                returning
1257                  instance of type U (not function type)
1258
1259          to arguments
1260                          Variable Expression: a: signed int
1261
1262          with inferred parameters:
1263            ?=?: function
1264              with parameters
1265                pointer to signed int
1266                signed int
1267              returning
1268                signed int
1269
1270            ?=?: function
1271              with parameters
1272                pointer to float
1273                float
1274              returning
1275                float
1276
1277            f: function
1278              with parameters
1279                signed int
1280              returning
1281                float
1282
1283
1284bindings are:
1285        ( _0_T ) -> signed int  (no widening)
1286        ( _1_U ) -> float  (no widening)
1287cost of conversion is:( 0, 0, 0 )
1288actual expression:
1289        Application of
1290          Variable Expression: g: forall
1291                T: type
1292                  with assertions
1293                    ?=?: pointer to function
1294                        with parameters
1295                          pointer to instance of type T (not function type)
1296                          instance of type T (not function type)
1297                        returning
1298                          instance of type T (not function type)
1299
1300
1301                U: type
1302                  with assertions
1303                    ?=?: pointer to function
1304                        with parameters
1305                          pointer to instance of type U (not function type)
1306                          instance of type U (not function type)
1307                        returning
1308                          instance of type U (not function type)
1309
1310                    f: pointer to function
1311                        with parameters
1312                          instance of type T (not function type)
1313                        returning
1314                          instance of type U (not function type)
1315
1316
1317              function
1318              with parameters
1319                instance of type T (not function type)
1320              returning
1321                instance of type U (not function type)
1322
1323        to arguments
1324                      Variable Expression: a: signed int
1325
1326        with inferred parameters:
1327          ?=?: function
1328            with parameters
1329              pointer to signed int
1330              signed int
1331            returning
1332              signed int
1333
1334          ?=?: function
1335            with parameters
1336              pointer to double
1337              double
1338            returning
1339              double
1340
1341          f: function
1342            with parameters
1343              signed int
1344            returning
1345              double
1346
1347--- results are
1348        double
1349
1350converting double
1351 to float
1352cost is( 1, 0, 0 )
1353Case +++++++++++++
1354formals are:
1355        float
1356actuals are:
1357                  Cast of:
1358            Application of
1359              Variable Expression: g: forall
1360                    T: type
1361                      with assertions
1362                        ?=?: pointer to function
1363                            with parameters
1364                              pointer to instance of type T (not function type)
1365                              instance of type T (not function type)
1366                            returning
1367                              instance of type T (not function type)
1368
1369
1370                    U: type
1371                      with assertions
1372                        ?=?: pointer to function
1373                            with parameters
1374                              pointer to instance of type U (not function type)
1375                              instance of type U (not function type)
1376                            returning
1377                              instance of type U (not function type)
1378
1379                        f: pointer to function
1380                            with parameters
1381                              instance of type T (not function type)
1382                            returning
1383                              instance of type U (not function type)
1384
1385
1386                  function
1387                  with parameters
1388                    instance of type T (not function type)
1389                  returning
1390                    instance of type U (not function type)
1391
1392            to arguments
1393                              Variable Expression: a: signed int
1394
1395            with inferred parameters:
1396              ?=?: function
1397                with parameters
1398                  pointer to signed int
1399                  signed int
1400                returning
1401                  signed int
1402
1403              ?=?: function
1404                with parameters
1405                  pointer to double
1406                  double
1407                returning
1408                  double
1409
1410              f: function
1411                with parameters
1412                  signed int
1413                returning
1414                  double
1415
1416
1417          to:
1418            float
1419
1420bindings are:
1421        ( _0_T ) -> signed int  (no widening)
1422        ( _1_U ) -> double  (no widening)
1423cost of conversion is:( 1, 0, 0 )
1424alternatives before prune:
1425Cost ( 0, 0, 0 ): Application of
1426  Variable Expression: i: function
1427      with parameters
1428        float
1429      returning
1430        nothing
1431
1432to arguments
1433      Application of
1434      Variable Expression: g: forall
1435            T: type
1436              with assertions
1437                ?=?: pointer to function
1438                    with parameters
1439                      pointer to instance of type T (not function type)
1440                      instance of type T (not function type)
1441                    returning
1442                      instance of type T (not function type)
1443
1444
1445            U: type
1446              with assertions
1447                ?=?: pointer to function
1448                    with parameters
1449                      pointer to instance of type U (not function type)
1450                      instance of type U (not function type)
1451                    returning
1452                      instance of type U (not function type)
1453
1454                f: pointer to function
1455                    with parameters
1456                      instance of type T (not function type)
1457                    returning
1458                      instance of type U (not function type)
1459
1460
1461          function
1462          with parameters
1463            instance of type T (not function type)
1464          returning
1465            instance of type U (not function type)
1466
1467    to arguments
1468              Variable Expression: a: signed int
1469
1470    with inferred parameters:
1471      ?=?: function
1472        with parameters
1473          pointer to signed int
1474          signed int
1475        returning
1476          signed int
1477
1478      ?=?: function
1479        with parameters
1480          pointer to float
1481          float
1482        returning
1483          float
1484
1485      f: function
1486        with parameters
1487          signed int
1488        returning
1489          float
1490
1491
1492(types:
1493)
1494Environment:   ( _0_T ) -> signed int  (no widening)
1495  ( _1_U ) -> float  (no widening)
1496
1497
1498Cost ( 1, 0, 0 ): Application of
1499  Variable Expression: i: function
1500      with parameters
1501        float
1502      returning
1503        nothing
1504
1505to arguments
1506      Cast of:
1507      Application of
1508        Variable Expression: g: forall
1509              T: type
1510                with assertions
1511                  ?=?: pointer to function
1512                      with parameters
1513                        pointer to instance of type T (not function type)
1514                        instance of type T (not function type)
1515                      returning
1516                        instance of type T (not function type)
1517
1518
1519              U: type
1520                with assertions
1521                  ?=?: pointer to function
1522                      with parameters
1523                        pointer to instance of type U (not function type)
1524                        instance of type U (not function type)
1525                      returning
1526                        instance of type U (not function type)
1527
1528                  f: pointer to function
1529                      with parameters
1530                        instance of type T (not function type)
1531                      returning
1532                        instance of type U (not function type)
1533
1534
1535            function
1536            with parameters
1537              instance of type T (not function type)
1538            returning
1539              instance of type U (not function type)
1540
1541      to arguments
1542                  Variable Expression: a: signed int
1543
1544      with inferred parameters:
1545        ?=?: function
1546          with parameters
1547            pointer to signed int
1548            signed int
1549          returning
1550            signed int
1551
1552        ?=?: function
1553          with parameters
1554            pointer to double
1555            double
1556          returning
1557            double
1558
1559        f: function
1560          with parameters
1561            signed int
1562          returning
1563            double
1564
1565
1566    to:
1567      float
1568
1569(types:
1570)
1571Environment:   ( _0_T ) -> signed int  (no widening)
1572  ( _1_U ) -> double  (no widening)
1573
1574
1575there are 1 alternatives before elimination
1576there are 1 alternatives after elimination
1577alternatives before prune:
1578Cost ( 0, 0, 0 ): Cast of:
1579  Application of
1580    Variable Expression: i: function
1581        with parameters
1582          float
1583        returning
1584          nothing
1585
1586  to arguments
1587          Application of
1588        Variable Expression: g: forall
1589              T: type
1590                with assertions
1591                  ?=?: pointer to function
1592                      with parameters
1593                        pointer to instance of type T (not function type)
1594                        instance of type T (not function type)
1595                      returning
1596                        instance of type T (not function type)
1597
1598
1599              U: type
1600                with assertions
1601                  ?=?: pointer to function
1602                      with parameters
1603                        pointer to instance of type U (not function type)
1604                        instance of type U (not function type)
1605                      returning
1606                        instance of type U (not function type)
1607
1608                  f: pointer to function
1609                      with parameters
1610                        instance of type T (not function type)
1611                      returning
1612                        instance of type U (not function type)
1613
1614
1615            function
1616            with parameters
1617              instance of type T (not function type)
1618            returning
1619              instance of type U (not function type)
1620
1621      to arguments
1622                  Variable Expression: a: signed int
1623
1624      with inferred parameters:
1625        ?=?: function
1626          with parameters
1627            pointer to signed int
1628            signed int
1629          returning
1630            signed int
1631
1632        ?=?: function
1633          with parameters
1634            pointer to float
1635            float
1636          returning
1637            float
1638
1639        f: function
1640          with parameters
1641            signed int
1642          returning
1643            float
1644
1645
1646
1647to:
1648  nothing
1649(types:
1650)
1651Environment:   ( _0_T ) -> signed int  (no widening)
1652  ( _1_U ) -> float  (no widening)
1653
1654
1655there are 1 alternatives before elimination
1656there are 1 alternatives after elimination
1657nameExpr is i
1658decl is i: function
1659  with parameters
1660    float
1661  returning
1662    nothing
1663
1664newExpr is Variable Expression: i: function
1665    with parameters
1666      float
1667    returning
1668      nothing
1669
1670
1671alternatives before prune:
1672Cost ( 0, 0, 0 ): Variable Expression: i: function
1673    with parameters
1674      float
1675    returning
1676      nothing
1677
1678(types:
1679    pointer to function
1680        with parameters
1681          float
1682        returning
1683          nothing
1684
1685)
1686Environment:
1687
1688there are 1 alternatives before elimination
1689there are 1 alternatives after elimination
1690nameExpr is k
1691decl is k: forall
1692    T: type
1693      with assertions
1694        ?=?: pointer to function
1695            with parameters
1696              pointer to instance of type T (not function type)
1697              instance of type T (not function type)
1698            returning
1699              instance of type T (not function type)
1700
1701
1702    U: type
1703      with assertions
1704        ?=?: pointer to function
1705            with parameters
1706              pointer to instance of type U (not function type)
1707              instance of type U (not function type)
1708            returning
1709              instance of type U (not function type)
1710
1711        f: pointer to function
1712            with parameters
1713              instance of type T (not function type)
1714            returning
1715              instance of type U (not function type)
1716
1717        j: pointer to function
1718            with parameters
1719              instance of type T (not function type)
1720              instance of type U (not function type)
1721            returning
1722              instance of type U (not function type)
1723
1724
1725  function
1726  with parameters
1727    instance of type T (not function type)
1728  returning
1729    instance of type U (not function type)
1730
1731newExpr is Variable Expression: k: forall
1732      T: type
1733        with assertions
1734          ?=?: pointer to function
1735              with parameters
1736                pointer to instance of type T (not function type)
1737                instance of type T (not function type)
1738              returning
1739                instance of type T (not function type)
1740
1741
1742      U: type
1743        with assertions
1744          ?=?: pointer to function
1745              with parameters
1746                pointer to instance of type U (not function type)
1747                instance of type U (not function type)
1748              returning
1749                instance of type U (not function type)
1750
1751          f: pointer to function
1752              with parameters
1753                instance of type T (not function type)
1754              returning
1755                instance of type U (not function type)
1756
1757          j: pointer to function
1758              with parameters
1759                instance of type T (not function type)
1760                instance of type U (not function type)
1761              returning
1762                instance of type U (not function type)
1763
1764
1765    function
1766    with parameters
1767      instance of type T (not function type)
1768    returning
1769      instance of type U (not function type)
1770
1771
1772alternatives before prune:
1773Cost ( 0, 0, 0 ): Variable Expression: k: forall
1774      T: type
1775        with assertions
1776          ?=?: pointer to function
1777              with parameters
1778                pointer to instance of type T (not function type)
1779                instance of type T (not function type)
1780              returning
1781                instance of type T (not function type)
1782
1783
1784      U: type
1785        with assertions
1786          ?=?: pointer to function
1787              with parameters
1788                pointer to instance of type U (not function type)
1789                instance of type U (not function type)
1790              returning
1791                instance of type U (not function type)
1792
1793          f: pointer to function
1794              with parameters
1795                instance of type T (not function type)
1796              returning
1797                instance of type U (not function type)
1798
1799          j: pointer to function
1800              with parameters
1801                instance of type T (not function type)
1802                instance of type U (not function type)
1803              returning
1804                instance of type U (not function type)
1805
1806
1807    function
1808    with parameters
1809      instance of type T (not function type)
1810    returning
1811      instance of type U (not function type)
1812
1813(types:
1814    pointer to forall
1815          _0_T: type
1816            with assertions
1817              ?=?: pointer to function
1818                  with parameters
1819                    pointer to instance of type _0_T (not function type)
1820                    instance of type _0_T (not function type)
1821                  returning
1822                    instance of type _0_T (not function type)
1823
1824
1825          _1_U: type
1826            with assertions
1827              ?=?: pointer to function
1828                  with parameters
1829                    pointer to instance of type _1_U (not function type)
1830                    instance of type _1_U (not function type)
1831                  returning
1832                    instance of type _1_U (not function type)
1833
1834              f: pointer to function
1835                  with parameters
1836                    instance of type _0_T (not function type)
1837                  returning
1838                    instance of type _1_U (not function type)
1839
1840              j: pointer to function
1841                  with parameters
1842                    instance of type _0_T (not function type)
1843                    instance of type _1_U (not function type)
1844                  returning
1845                    instance of type _1_U (not function type)
1846
1847
1848        function
1849        with parameters
1850          instance of type _0_T (not function type)
1851        returning
1852          instance of type _1_U (not function type)
1853
1854)
1855Environment:
1856
1857there are 1 alternatives before elimination
1858there are 1 alternatives after elimination
1859nameExpr is b
1860decl is b: signed int
1861newExpr is Variable Expression: b: signed int
1862
1863alternatives before prune:
1864Cost ( 0, 0, 0 ): Variable Expression: b: signed int
1865(types:
1866    lvalue signed int
1867)
1868Environment:
1869
1870there are 1 alternatives before elimination
1871there are 1 alternatives after elimination
1872findSubExprs
1873Cost ( 0, 0, 0 ): Variable Expression: b: signed int
1874(types:
1875    lvalue signed int
1876)
1877Environment:
1878
1879working on alternative:
1880        Cost ( 0, 0, 0 ):         Variable Expression: k: forall
1881              T: type
1882                with assertions
1883                  ?=?: pointer to function
1884                      with parameters
1885                        pointer to instance of type T (not function type)
1886                        instance of type T (not function type)
1887                      returning
1888                        instance of type T (not function type)
1889
1890
1891              U: type
1892                with assertions
1893                  ?=?: pointer to function
1894                      with parameters
1895                        pointer to instance of type U (not function type)
1896                        instance of type U (not function type)
1897                      returning
1898                        instance of type U (not function type)
1899
1900                  f: pointer to function
1901                      with parameters
1902                        instance of type T (not function type)
1903                      returning
1904                        instance of type U (not function type)
1905
1906                  j: pointer to function
1907                      with parameters
1908                        instance of type T (not function type)
1909                        instance of type U (not function type)
1910                      returning
1911                        instance of type U (not function type)
1912
1913
1914            function
1915            with parameters
1916              instance of type T (not function type)
1917            returning
1918              instance of type U (not function type)
1919
1920(types:
1921            pointer to forall
1922                  _0_T: type
1923                    with assertions
1924                      ?=?: pointer to function
1925                          with parameters
1926                            pointer to instance of type _0_T (not function type)
1927                            instance of type _0_T (not function type)
1928                          returning
1929                            instance of type _0_T (not function type)
1930
1931
1932                  _1_U: type
1933                    with assertions
1934                      ?=?: pointer to function
1935                          with parameters
1936                            pointer to instance of type _1_U (not function type)
1937                            instance of type _1_U (not function type)
1938                          returning
1939                            instance of type _1_U (not function type)
1940
1941                      f: pointer to function
1942                          with parameters
1943                            instance of type _0_T (not function type)
1944                          returning
1945                            instance of type _1_U (not function type)
1946
1947                      j: pointer to function
1948                          with parameters
1949                            instance of type _0_T (not function type)
1950                            instance of type _1_U (not function type)
1951                          returning
1952                            instance of type _1_U (not function type)
1953
1954
1955                function
1956                with parameters
1957                  instance of type _0_T (not function type)
1958                returning
1959                  instance of type _1_U (not function type)
1960
1961)
1962        Environment:
1963formal type is instance of type _0_T (not function type)
1964actual type is lvalue signed int
1965need assertions:
1966j: pointer to function
1967          with parameters
1968            instance of type _0_T (not function type)
1969            instance of type _1_U (not function type)
1970          returning
1971            instance of type _1_U (not function type)
1972(used)f: pointer to function
1973          with parameters
1974            instance of type _0_T (not function type)
1975          returning
1976            instance of type _1_U (not function type)
1977(used)?=?: pointer to function
1978          with parameters
1979            pointer to instance of type _1_U (not function type)
1980            instance of type _1_U (not function type)
1981          returning
1982            instance of type _1_U (not function type)
1983(used)?=?: pointer to function
1984          with parameters
1985            pointer to instance of type _0_T (not function type)
1986            instance of type _0_T (not function type)
1987          returning
1988            instance of type _0_T (not function type)
1989(used)============= original indexer
1990===idTable===
1991===typeTable===
1992===structTable===
1993===enumTable===
1994===unionTable===
1995===contextTable===
1996============= new indexer
1997===idTable===
1998===typeTable===
1999===structTable===
2000===enumTable===
2001===unionTable===
2002===contextTable===
2003inferRecursive: assertion is j: pointer to function
2004  with parameters
2005    instance of type _0_T (not function type)
2006    instance of type _1_U (not function type)
2007  returning
2008    instance of type _1_U (not function type)
2009
2010inferRecursive: candidate is j: function
2011  with parameters
2012    signed int
2013    float
2014  returning
2015    float
2016
2017unifying pointer to function
2018  with parameters
2019    instance of type _0_T (not function type)
2020    instance of type _1_U (not function type)
2021  returning
2022    instance of type _1_U (not function type)
2023 with pointer to function
2024  with parameters
2025    signed int
2026    float
2027  returning
2028    float
2029
2030success!
2031satisfying assertion 62 j: pointer to function
2032  with parameters
2033    instance of type _0_T (not function type)
2034    instance of type _1_U (not function type)
2035  returning
2036    instance of type _1_U (not function type)
2037 with declaration 47 j: function
2038  with parameters
2039    signed int
2040    float
2041  returning
2042    float
2043
2044inferRecursive: assertion is f: pointer to function
2045  with parameters
2046    instance of type _0_T (not function type)
2047  returning
2048    instance of type _1_U (not function type)
2049
2050inferRecursive: candidate is f: function
2051  with parameters
2052    signed int
2053  returning
2054    double
2055
2056unifying pointer to function
2057  with parameters
2058    instance of type _0_T (not function type)
2059  returning
2060    instance of type _1_U (not function type)
2061 with pointer to function
2062  with parameters
2063    signed int
2064  returning
2065    double
2066
2067inferRecursive: candidate is f: function
2068  with parameters
2069    signed int
2070  returning
2071    float
2072
2073unifying pointer to function
2074  with parameters
2075    instance of type _0_T (not function type)
2076  returning
2077    instance of type _1_U (not function type)
2078 with pointer to function
2079  with parameters
2080    signed int
2081  returning
2082    float
2083
2084success!
2085satisfying assertion 58 f: pointer to function
2086  with parameters
2087    instance of type _0_T (not function type)
2088  returning
2089    instance of type _1_U (not function type)
2090 with declaration 29 f: function
2091  with parameters
2092    signed int
2093  returning
2094    float
2095
2096inferRecursive: assertion is ?=?: pointer to function
2097  with parameters
2098    pointer to instance of type _1_U (not function type)
2099    instance of type _1_U (not function type)
2100  returning
2101    instance of type _1_U (not function type)
2102
2103inferRecursive: candidate is ?=?: function
2104  with parameters
2105    pointer to double
2106    double
2107  returning
2108    double
2109
2110unifying pointer to function
2111  with parameters
2112    pointer to instance of type _1_U (not function type)
2113    instance of type _1_U (not function type)
2114  returning
2115    instance of type _1_U (not function type)
2116 with pointer to function
2117  with parameters
2118    pointer to double
2119    double
2120  returning
2121    double
2122
2123inferRecursive: candidate is ?=?: function
2124  with parameters
2125    pointer to float
2126    float
2127  returning
2128    float
2129
2130unifying pointer to function
2131  with parameters
2132    pointer to instance of type _1_U (not function type)
2133    instance of type _1_U (not function type)
2134  returning
2135    instance of type _1_U (not function type)
2136 with pointer to function
2137  with parameters
2138    pointer to float
2139    float
2140  returning
2141    float
2142
2143success!
2144satisfying assertion 55 ?=?: pointer to function
2145  with parameters
2146    pointer to instance of type _1_U (not function type)
2147    instance of type _1_U (not function type)
2148  returning
2149    instance of type _1_U (not function type)
2150 with declaration 8 ?=?: function
2151  with parameters
2152    pointer to float
2153    float
2154  returning
2155    float
2156
2157inferRecursive: assertion is ?=?: pointer to function
2158  with parameters
2159    pointer to instance of type _0_T (not function type)
2160    instance of type _0_T (not function type)
2161  returning
2162    instance of type _0_T (not function type)
2163
2164inferRecursive: candidate is ?=?: function
2165  with parameters
2166    pointer to double
2167    double
2168  returning
2169    double
2170
2171unifying pointer to function
2172  with parameters
2173    pointer to instance of type _0_T (not function type)
2174    instance of type _0_T (not function type)
2175  returning
2176    instance of type _0_T (not function type)
2177 with pointer to function
2178  with parameters
2179    pointer to double
2180    double
2181  returning
2182    double
2183
2184inferRecursive: candidate is ?=?: function
2185  with parameters
2186    pointer to float
2187    float
2188  returning
2189    float
2190
2191unifying 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 with pointer to function
2198  with parameters
2199    pointer to float
2200    float
2201  returning
2202    float
2203
2204inferRecursive: candidate is ?=?: function
2205  with parameters
2206    pointer to signed int
2207    signed int
2208  returning
2209    signed int
2210
2211unifying pointer to function
2212  with parameters
2213    pointer to instance of type _0_T (not function type)
2214    instance of type _0_T (not function type)
2215  returning
2216    instance of type _0_T (not function type)
2217 with pointer to function
2218  with parameters
2219    pointer to signed int
2220    signed int
2221  returning
2222    signed int
2223
2224success!
2225satisfying assertion 51 ?=?: pointer to function
2226  with parameters
2227    pointer to instance of type _0_T (not function type)
2228    instance of type _0_T (not function type)
2229  returning
2230    instance of type _0_T (not function type)
2231 with declaration 4 ?=?: function
2232  with parameters
2233    pointer to signed int
2234    signed int
2235  returning
2236    signed int
2237
2238inferRecursive: candidate is ?=?: function
2239  with parameters
2240    pointer to signed int
2241    signed int
2242  returning
2243    signed int
2244
2245unifying pointer to function
2246  with parameters
2247    pointer to instance of type _1_U (not function type)
2248    instance of type _1_U (not function type)
2249  returning
2250    instance of type _1_U (not function type)
2251 with pointer to function
2252  with parameters
2253    pointer to signed int
2254    signed int
2255  returning
2256    signed int
2257
2258actual expression:
2259        Variable Expression: b: signed int
2260--- results are
2261        lvalue signed int
2262
2263converting lvalue signed int
2264 to instance of type _0_T (not function type)
2265cost is( 0, 0, 0 )
2266
2267converting pointer to function
2268          with parameters
2269            pointer to signed int
2270            signed int
2271          returning
2272            signed int
2273
2274 to pointer to function
2275          with parameters
2276            pointer to instance of type _0_T (not function type)
2277            instance of type _0_T (not function type)
2278          returning
2279            instance of type _0_T (not function type)
2280
2281cost of conversion is ( 0, 0, 0 )
2282
2283converting pointer to function
2284          with parameters
2285            pointer to float
2286            float
2287          returning
2288            float
2289
2290 to pointer to function
2291          with parameters
2292            pointer to instance of type _1_U (not function type)
2293            instance of type _1_U (not function type)
2294          returning
2295            instance of type _1_U (not function type)
2296
2297cost of conversion is ( 0, 0, 0 )
2298
2299converting pointer to function
2300          with parameters
2301            signed int
2302          returning
2303            float
2304
2305 to pointer to function
2306          with parameters
2307            instance of type _0_T (not function type)
2308          returning
2309            instance of type _1_U (not function type)
2310
2311cost of conversion is ( 0, 0, 0 )
2312
2313converting pointer to function
2314          with parameters
2315            signed int
2316            float
2317          returning
2318            float
2319
2320 to pointer to function
2321          with parameters
2322            instance of type _0_T (not function type)
2323            instance of type _1_U (not function type)
2324          returning
2325            instance of type _1_U (not function type)
2326
2327cost of conversion is ( 0, 0, 0 )
2328Case +++++++++++++
2329formals are:
2330        instance of type _0_T (not function type)
2331actuals are:
2332                  Variable Expression: b: signed int
2333
2334bindings are:
2335        ( _0_T ) -> signed int
2336        ( _1_U ) -> float  (no widening)
2337cost of conversion is:( 0, 12, 0 )
2338alternatives before prune:
2339Cost ( 0, 12, 0 ): Application of
2340  Variable Expression: k: forall
2341        T: type
2342          with assertions
2343            ?=?: pointer to function
2344                with parameters
2345                  pointer to instance of type T (not function type)
2346                  instance of type T (not function type)
2347                returning
2348                  instance of type T (not function type)
2349
2350
2351        U: type
2352          with assertions
2353            ?=?: pointer to function
2354                with parameters
2355                  pointer to instance of type U (not function type)
2356                  instance of type U (not function type)
2357                returning
2358                  instance of type U (not function type)
2359
2360            f: pointer to function
2361                with parameters
2362                  instance of type T (not function type)
2363                returning
2364                  instance of type U (not function type)
2365
2366            j: pointer to function
2367                with parameters
2368                  instance of type T (not function type)
2369                  instance of type U (not function type)
2370                returning
2371                  instance of type U (not function type)
2372
2373
2374      function
2375      with parameters
2376        instance of type T (not function type)
2377      returning
2378        instance of type U (not function type)
2379
2380to arguments
2381      Variable Expression: b: signed int
2382
2383with inferred parameters:
2384  ?=?: function
2385    with parameters
2386      pointer to signed int
2387      signed int
2388    returning
2389      signed int
2390
2391  ?=?: function
2392    with parameters
2393      pointer to float
2394      float
2395    returning
2396      float
2397
2398  f: function
2399    with parameters
2400      signed int
2401    returning
2402      float
2403
2404  j: function
2405    with parameters
2406      signed int
2407      float
2408    returning
2409      float
2410
2411(types:
2412    instance of type _1_U (not function type)
2413)
2414Environment:   ( _0_T ) -> signed int
2415  ( _1_U ) -> float  (no widening)
2416
2417
2418there are 1 alternatives before elimination
2419there are 1 alternatives after elimination
2420findSubExprs
2421Cost ( 0, 12, 0 ): Application of
2422  Variable Expression: k: forall
2423        T: type
2424          with assertions
2425            ?=?: pointer to function
2426                with parameters
2427                  pointer to instance of type T (not function type)
2428                  instance of type T (not function type)
2429                returning
2430                  instance of type T (not function type)
2431
2432
2433        U: type
2434          with assertions
2435            ?=?: pointer to function
2436                with parameters
2437                  pointer to instance of type U (not function type)
2438                  instance of type U (not function type)
2439                returning
2440                  instance of type U (not function type)
2441
2442            f: pointer to function
2443                with parameters
2444                  instance of type T (not function type)
2445                returning
2446                  instance of type U (not function type)
2447
2448            j: pointer to function
2449                with parameters
2450                  instance of type T (not function type)
2451                  instance of type U (not function type)
2452                returning
2453                  instance of type U (not function type)
2454
2455
2456      function
2457      with parameters
2458        instance of type T (not function type)
2459      returning
2460        instance of type U (not function type)
2461
2462to arguments
2463      Variable Expression: b: signed int
2464
2465with inferred parameters:
2466  ?=?: function
2467    with parameters
2468      pointer to signed int
2469      signed int
2470    returning
2471      signed int
2472
2473  ?=?: function
2474    with parameters
2475      pointer to float
2476      float
2477    returning
2478      float
2479
2480  f: function
2481    with parameters
2482      signed int
2483    returning
2484      float
2485
2486  j: function
2487    with parameters
2488      signed int
2489      float
2490    returning
2491      float
2492
2493(types:
2494    float
2495)
2496Environment:   ( _0_T ) -> signed int
2497  ( _1_U ) -> float  (no widening)
2498
2499
2500working on alternative:
2501        Cost ( 0, 0, 0 ):         Variable Expression: i: function
2502            with parameters
2503              float
2504            returning
2505              nothing
2506
2507(types:
2508            pointer to function
2509                with parameters
2510                  float
2511                returning
2512                  nothing
2513
2514)
2515        Environment:
2516formal type is float
2517actual type is float
2518need assertions:
2519============= original indexer
2520===idTable===
2521===typeTable===
2522===structTable===
2523===enumTable===
2524===unionTable===
2525===contextTable===
2526============= new indexer
2527===idTable===
2528===typeTable===
2529===structTable===
2530===enumTable===
2531===unionTable===
2532===contextTable===
2533actual expression:
2534        Application of
2535          Variable Expression: k: forall
2536                T: type
2537                  with assertions
2538                    ?=?: pointer to function
2539                        with parameters
2540                          pointer to instance of type T (not function type)
2541                          instance of type T (not function type)
2542                        returning
2543                          instance of type T (not function type)
2544
2545
2546                U: type
2547                  with assertions
2548                    ?=?: pointer to function
2549                        with parameters
2550                          pointer to instance of type U (not function type)
2551                          instance of type U (not function type)
2552                        returning
2553                          instance of type U (not function type)
2554
2555                    f: pointer to function
2556                        with parameters
2557                          instance of type T (not function type)
2558                        returning
2559                          instance of type U (not function type)
2560
2561                    j: pointer to function
2562                        with parameters
2563                          instance of type T (not function type)
2564                          instance of type U (not function type)
2565                        returning
2566                          instance of type U (not function type)
2567
2568
2569              function
2570              with parameters
2571                instance of type T (not function type)
2572              returning
2573                instance of type U (not function type)
2574
2575        to arguments
2576                      Variable Expression: b: signed int
2577
2578        with inferred parameters:
2579          ?=?: function
2580            with parameters
2581              pointer to signed int
2582              signed int
2583            returning
2584              signed int
2585
2586          ?=?: function
2587            with parameters
2588              pointer to float
2589              float
2590            returning
2591              float
2592
2593          f: function
2594            with parameters
2595              signed int
2596            returning
2597              float
2598
2599          j: function
2600            with parameters
2601              signed int
2602              float
2603            returning
2604              float
2605
2606--- results are
2607        float
2608
2609converting float
2610 to float
2611cost is( 0, 0, 0 )
2612Case +++++++++++++
2613formals are:
2614        float
2615actuals are:
2616                  Application of
2617            Variable Expression: k: forall
2618                  T: type
2619                    with assertions
2620                      ?=?: pointer to function
2621                          with parameters
2622                            pointer to instance of type T (not function type)
2623                            instance of type T (not function type)
2624                          returning
2625                            instance of type T (not function type)
2626
2627
2628                  U: type
2629                    with assertions
2630                      ?=?: pointer to function
2631                          with parameters
2632                            pointer to instance of type U (not function type)
2633                            instance of type U (not function type)
2634                          returning
2635                            instance of type U (not function type)
2636
2637                      f: pointer to function
2638                          with parameters
2639                            instance of type T (not function type)
2640                          returning
2641                            instance of type U (not function type)
2642
2643                      j: pointer to function
2644                          with parameters
2645                            instance of type T (not function type)
2646                            instance of type U (not function type)
2647                          returning
2648                            instance of type U (not function type)
2649
2650
2651                function
2652                with parameters
2653                  instance of type T (not function type)
2654                returning
2655                  instance of type U (not function type)
2656
2657          to arguments
2658                          Variable Expression: b: signed int
2659
2660          with inferred parameters:
2661            ?=?: function
2662              with parameters
2663                pointer to signed int
2664                signed int
2665              returning
2666                signed int
2667
2668            ?=?: function
2669              with parameters
2670                pointer to float
2671                float
2672              returning
2673                float
2674
2675            f: function
2676              with parameters
2677                signed int
2678              returning
2679                float
2680
2681            j: function
2682              with parameters
2683                signed int
2684                float
2685              returning
2686                float
2687
2688
2689bindings are:
2690        ( _0_T ) -> signed int  (no widening)
2691        ( _1_U ) -> float  (no widening)
2692cost of conversion is:( 0, 0, 0 )
2693alternatives before prune:
2694Cost ( 0, 0, 0 ): Application of
2695  Variable Expression: i: function
2696      with parameters
2697        float
2698      returning
2699        nothing
2700
2701to arguments
2702      Application of
2703      Variable Expression: k: forall
2704            T: type
2705              with assertions
2706                ?=?: pointer to function
2707                    with parameters
2708                      pointer to instance of type T (not function type)
2709                      instance of type T (not function type)
2710                    returning
2711                      instance of type T (not function type)
2712
2713
2714            U: type
2715              with assertions
2716                ?=?: pointer to function
2717                    with parameters
2718                      pointer to instance of type U (not function type)
2719                      instance of type U (not function type)
2720                    returning
2721                      instance of type U (not function type)
2722
2723                f: pointer to function
2724                    with parameters
2725                      instance of type T (not function type)
2726                    returning
2727                      instance of type U (not function type)
2728
2729                j: pointer to function
2730                    with parameters
2731                      instance of type T (not function type)
2732                      instance of type U (not function type)
2733                    returning
2734                      instance of type U (not function type)
2735
2736
2737          function
2738          with parameters
2739            instance of type T (not function type)
2740          returning
2741            instance of type U (not function type)
2742
2743    to arguments
2744              Variable Expression: b: signed int
2745
2746    with inferred parameters:
2747      ?=?: function
2748        with parameters
2749          pointer to signed int
2750          signed int
2751        returning
2752          signed int
2753
2754      ?=?: function
2755        with parameters
2756          pointer to float
2757          float
2758        returning
2759          float
2760
2761      f: function
2762        with parameters
2763          signed int
2764        returning
2765          float
2766
2767      j: function
2768        with parameters
2769          signed int
2770          float
2771        returning
2772          float
2773
2774
2775(types:
2776)
2777Environment:   ( _0_T ) -> signed int  (no widening)
2778  ( _1_U ) -> float  (no widening)
2779
2780
2781there are 1 alternatives before elimination
2782there are 1 alternatives after elimination
2783alternatives before prune:
2784Cost ( 0, 0, 0 ): Cast of:
2785  Application of
2786    Variable Expression: i: function
2787        with parameters
2788          float
2789        returning
2790          nothing
2791
2792  to arguments
2793          Application of
2794        Variable Expression: k: forall
2795              T: type
2796                with assertions
2797                  ?=?: pointer to function
2798                      with parameters
2799                        pointer to instance of type T (not function type)
2800                        instance of type T (not function type)
2801                      returning
2802                        instance of type T (not function type)
2803
2804
2805              U: type
2806                with assertions
2807                  ?=?: pointer to function
2808                      with parameters
2809                        pointer to instance of type U (not function type)
2810                        instance of type U (not function type)
2811                      returning
2812                        instance of type U (not function type)
2813
2814                  f: pointer to function
2815                      with parameters
2816                        instance of type T (not function type)
2817                      returning
2818                        instance of type U (not function type)
2819
2820                  j: pointer to function
2821                      with parameters
2822                        instance of type T (not function type)
2823                        instance of type U (not function type)
2824                      returning
2825                        instance of type U (not function type)
2826
2827
2828            function
2829            with parameters
2830              instance of type T (not function type)
2831            returning
2832              instance of type U (not function type)
2833
2834      to arguments
2835                  Variable Expression: b: signed int
2836
2837      with inferred parameters:
2838        ?=?: function
2839          with parameters
2840            pointer to signed int
2841            signed int
2842          returning
2843            signed int
2844
2845        ?=?: function
2846          with parameters
2847            pointer to float
2848            float
2849          returning
2850            float
2851
2852        f: function
2853          with parameters
2854            signed int
2855          returning
2856            float
2857
2858        j: function
2859          with parameters
2860            signed int
2861            float
2862          returning
2863            float
2864
2865
2866
2867to:
2868  nothing
2869(types:
2870)
2871Environment:   ( _0_T ) -> signed int  (no widening)
2872  ( _1_U ) -> float  (no widening)
2873
2874
2875there are 1 alternatives before elimination
2876there are 1 alternatives after elimination
2877int ___operator_assign__Fi_Pii_(int *, int );
2878float ___operator_assign__Ff_Pff_(float *, float );
2879double ___operator_assign__Fd_Pdd_(double *, double );
2880void __g__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0__Ft1_t0_(void (*_adapterF2tU_2tT_)(void (*)(), void *, void *), void (*_adapterF2tU_P2tU2tU_)(void (*)(), void *, void *, void *), void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, long unsigned int U, void (*___operator_assign__PF2tT_P2tT2tT_)(), void (*___operator_assign__PF2tU_P2tU2tU_)(), void (*__f__PF2tU_2tT_)(), void *, void *);
2881float __f__Ff_i_(int );
2882double __f__Fd_i_(int );
2883void __i__F_f_(float );
2884void __h__F__(){
2885    int __a__i;
2886    float _temp0;
2887    void _adapterFi_Pii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
2888        ((*((int *)_ret))=((int (*)(int *, int ))_adaptee)(_p0, (*((int *)_p1))));
2889    }
2890    void _adapterFf_Pff_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
2891        ((*((float *)_ret))=((float (*)(float *, float ))_adaptee)(_p0, (*((float *)_p1))));
2892    }
2893    void _adapterFf_i_(void (*_adaptee)(), void *_ret, void *_p0){
2894        ((*((float *)_ret))=((float (*)(int ))_adaptee)((*((int *)_p0))));
2895    }
2896    __i__F_f_((__g__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0__Ft1_t0_(_adapterFf_i_, _adapterFf_Pff_, _adapterFi_Pii_, sizeof(int ), sizeof(float ), ((void (*)())___operator_assign__Fi_Pii_), ((void (*)())___operator_assign__Ff_Pff_), ((void (*)())__f__Ff_i_), (&_temp0), (&__a__i)) , _temp0));
2897}
2898;
2899float __j__Ff_if_(int , float );
2900void __k__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0___j__PFt1_t0t1__Ft1_t0_(void (*_adapterF2tU_2tT2tU_)(void (*)(), void *, void *, void *), void (*_adapterF2tU_2tT_)(void (*)(), void *, void *), void (*_adapterF2tU_P2tU2tU_)(void (*)(), void *, void *, void *), void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, long unsigned int U, void (*___operator_assign__PF2tT_P2tT2tT_)(), void (*___operator_assign__PF2tU_P2tU2tU_)(), void (*__f__PF2tU_2tT_)(), void (*__j__PF2tU_2tT2tU_)(), void *, void *);
2901void __l__F__(){
2902    int __b__i;
2903    float _temp1;
2904    void _adapterFi_Pii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
2905        ((*((int *)_ret))=((int (*)(int *, int ))_adaptee)(_p0, (*((int *)_p1))));
2906    }
2907    void _adapterFf_Pff_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
2908        ((*((float *)_ret))=((float (*)(float *, float ))_adaptee)(_p0, (*((float *)_p1))));
2909    }
2910    void _adapterFf_i_(void (*_adaptee)(), void *_ret, void *_p0){
2911        ((*((float *)_ret))=((float (*)(int ))_adaptee)((*((int *)_p0))));
2912    }
2913    void _adapterFf_if_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
2914        ((*((float *)_ret))=((float (*)(int , float ))_adaptee)((*((int *)_p0)), (*((float *)_p1))));
2915    }
2916    __i__F_f_((__k__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0___j__PFt1_t0t1__Ft1_t0_(_adapterFf_if_, _adapterFf_i_, _adapterFf_Pff_, _adapterFi_Pii_, sizeof(int ), sizeof(float ), ((void (*)())___operator_assign__Fi_Pii_), ((void (*)())___operator_assign__Ff_Pff_), ((void (*)())__f__Ff_i_), ((void (*)())__j__Ff_if_), (&_temp1), (&__b__i)) , _temp1));
2917}
Note: See TracBrowser for help on using the repository browser.