Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/src/compiler/FLINT/plambda/flintnm.sml
ViewVC logotype

Diff of /sml/trunk/src/compiler/FLINT/plambda/flintnm.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 49, Sun Mar 22 22:49:56 1998 UTC revision 50, Sun Mar 22 23:05:33 1998 UTC
# Line 145  Line 145 
145                     fn lty1 =>                     fn lty1 =>
146                     tolexp (LT.ltInsert(venv,lvar,lty1,d), d) lexp2)                     tolexp (LT.ltInsert(venv,lvar,lty1,d), d) lexp2)
147    
       | L.TAPP (f,tycs) =>  
             (* similar to APP *)  
             tovalue(venv, d, f,  
                     fn (f_val,f_lty) =>  
                     let val r_lty = LT.lt_pinst(f_lty, tycs)  
                         val x = mkv()  
                         val u = F.VAR x  
                         val (vs,wrap) = (#2(FL.v_pflatten r_lty)) u  
                     in  (F.LET([x], F.TAPP(f_val, map FL.tcc_raw tycs),  
                                wrap(F.RET(vs))), r_lty)  
                     end)  
   
148        | L.RAISE (le, r_lty) =>        | L.RAISE (le, r_lty) =>
149              tovalue(venv, d, le,              tovalue(venv, d, le,
150                      fn (le_val,le_lty) =>                      fn (le_val,le_lty) =>
# Line 446  Line 434 
434                   lty)                   lty)
435              end              end
436    
437          | L.TAPP (f,tycs) =>
438                (* similar to APP *)
439                tovalue(venv, d, f,
440                        fn (f_val,f_lty) =>
441                        let val f_lty = LT.lt_pinst(f_lty, tycs)
442                            val (c_lexp, c_lty) = cont(f_lty)
443                        in  (F.LET([lvar], F.TAPP(f_val, map FL.tcc_raw tycs),
444                                   c_lexp), c_lty)
445                        end)
446    
447        | L.ETAG (le,lty) =>        | L.ETAG (le,lty) =>
448              tovalue(venv, d, le,              tovalue(venv, d, le,
449                      fn (le_lv, le_lty) =>                      fn (le_lv, le_lty) =>

Legend:
Removed from v.49  
changed lines
  Added in v.50

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0