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

SCM Repository

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

Diff of /trunk/src/compiler/typechecker/typechecker.sml

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

revision 3146, Fri Mar 27 16:18:00 2015 UTC revision 3147, Fri Mar 27 16:30:20 2015 UTC
# Line 89  Line 89 
89              setLoc(x', loc);              setLoc(x', loc);
90              {              {
91                scope = scope,                scope = scope,
92                bindings = AtomMap.insert(bindings, x, Error.location cxt),                bindings = AtomMap.insert(bindings, x, loc),
93                env = Env.insertLocal(env, x, x')                env = Env.insertLocal(env, x, x')
94              }              }
95            end            end
# Line 500  Line 500 
500                  in                  in
501                    case stripMark e                    case stripMark e
502                     of PT.E_Var f => (case Env.findVar (#env env, f)                     of PT.E_Var f => (case Env.findVar (#env env, f)
503                           of SOME f' => checkFieldApp (AST.E_Var f', Var.monoTypeOf f')                           of SOME f' => (
504                                  markUsed (f', true);
505                                  checkFieldApp (AST.E_Var f', Var.monoTypeOf f'))
506                            | NONE => (case Env.findFunc (#env env, f)                            | NONE => (case Env.findFunc (#env env, f)
507                                 of Env.PrimFun[] => err(cxt, [S "unknown function ", A f])                                 of Env.PrimFun[] => err(cxt, [S "unknown function ", A f])
508                                  | Env.PrimFun[f'] =>                                  | Env.PrimFun[f'] =>
# Line 512  Line 514 
514                                        else checkFunApp f'                                        else checkFunApp f'
515                                  | Env.PrimFun ovldList =>                                  | Env.PrimFun ovldList =>
516                                      resolveOverload (cxt, f, tys, args, ovldList)                                      resolveOverload (cxt, f, tys, args, ovldList)
517                                  | Env.UserFun f' => checkFunApp f'                                  | Env.UserFun f' => (
518                                        markUsed (f', true);
519                                        checkFunApp f')
520                                (* end case *))                                (* end case *))
521                            (* end case *))                            (* end case *))
522                      | _ => checkFieldApp (checkExpr (env, cxt, e))                      | _ => checkFieldApp (checkExpr (env, cxt, e))
# Line 789  Line 793 
793                              (* check that x' is mutable *)                              (* check that x' is mutable *)
794                                case Var.kindOf x'                                case Var.kindOf x'
795                                 of Var.StrandStateVar => ()                                 of Var.StrandStateVar => ()
796                                  | Var.StrandOutputVar => ()                                  | Var.StrandOutputVar => markUsed (x', true)
797                                  | Var.LocalVar => ()                                  | Var.LocalVar => ()
798                                  | _ => err(cxt, [                                  | _ => err(cxt, [
799                                        S "assignment to immutable variable ", A x,                                        S "assignment to immutable variable ", A x,
# Line 810  Line 814 
814                              (* check that x' is mutable *)                              (* check that x' is mutable *)
815                                case Var.kindOf x'                                case Var.kindOf x'
816                                 of Var.StrandStateVar => ()                                 of Var.StrandStateVar => ()
817                                  | Var.StrandOutputVar => ()                                  | Var.StrandOutputVar => markUsed (x', true)
818                                  | Var.LocalVar => ()                                  | Var.LocalVar => ()
819                                  | _ => err(cxt, [                                  | _ => err(cxt, [
820                                        S "assignment to immutable variable ", A x,                                        S "assignment to immutable variable ", A x,

Legend:
Removed from v.3146  
changed lines
  Added in v.3147

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