Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /branches/charisee/src/compiler/typechecker/typechecker.sml
ViewVC logotype

Diff of /branches/charisee/src/compiler/typechecker/typechecker.sml

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

revision 2489, Mon Oct 21 19:43:32 2013 UTC revision 2490, Mon Oct 21 21:17:25 2013 UTC
# Line 33  Line 33 
33        | MethodScope of StrandUtil.method_name        | MethodScope of StrandUtil.method_name
34        | InitScope        | InitScope
35    
36        fun scopeToString GlobalScope = "global scope"
37          | scopeToString (FunctionScope(_, f)) = "function " ^ Atom.toString f
38          | scopeToString StrandScope = "strand initialization"
39          | scopeToString (MethodScope m) = "method " ^ StrandUtil.nameToString m
40          | scopeToString InitScope = "initialization"
41    
42      type env = {      type env = {
43          scope : scope,          scope : scope,
44          bindings : Error.location AtomMap.map,          bindings : Error.location AtomMap.map,
# Line 751  Line 757 
757                                  | Var.StrandOutputVar => ()                                  | Var.StrandOutputVar => ()
758                                  | Var.LocalVar => ()                                  | Var.LocalVar => ()
759                                  | _ => err(cxt, [                                  | _ => err(cxt, [
760                                        S "assignment to immutable variable ", A x                                        S "assignment to immutable variable ", A x,
761                                          S " in ", S(scopeToString(#scope env))
762                                      ])                                      ])
763                                (* end case *);                                (* end case *);
764                                (AST.S_Assign(x', e'), env)                                (AST.S_Assign(x', e'), env)
# Line 771  Line 778 
778                                  | Var.StrandOutputVar => ()                                  | Var.StrandOutputVar => ()
779                                  | Var.LocalVar => ()                                  | Var.LocalVar => ()
780                                  | _ => err(cxt, [                                  | _ => err(cxt, [
781                                        S "assignment to immutable variable ", A x                                        S "assignment to immutable variable ", A x,
782                                          S " in ", S(scopeToString(#scope env))
783                                      ])                                      ])
784                                (* end case *);                                (* end case *);
785                                (AST.S_Assign(x', rhs), env)                                (AST.S_Assign(x', rhs), env)
# Line 1032  Line 1040 
1040                  in                  in
1041                    chk (env, dcls, dcl'::dcls')                    chk (env, dcls, dcl'::dcls')
1042                  end                  end
1043              val env = Basis.env()
1044            in            in
1045              chk ({scope=GlobalScope, bindings=AtomMap.empty, env=Basis.env}, tree, [])              chk ({scope=GlobalScope, bindings=AtomMap.empty, env=env}, tree, [])
1046            end            end
1047              handle TypeError => AST.Program[]              handle TypeError => AST.Program[]
1048    

Legend:
Removed from v.2489  
changed lines
  Added in v.2490

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