Fix Symbol.new_of_string - it should not save
authorSiraaj Khandkar <siraaj@khandkar.net>
Tue, 18 Sep 2018 20:55:25 +0000 (16:55 -0400)
committerSiraaj Khandkar <siraaj@khandkar.net>
Tue, 18 Sep 2018 20:55:25 +0000 (16:55 -0400)
also rename it to unique_of_string to clarify the main idea

compiler/src/lib/tiger/tiger_env.ml
compiler/src/lib/tiger/tiger_symbol.ml
compiler/src/lib/tiger/tiger_symbol.mli

index 1e4cd1d..504e9bd 100644 (file)
@@ -28,7 +28,7 @@ let set_val t k v =
   {t with vals = Map.set t.vals ~k ~v}
 
 let loop_begin t =
-  let loop = Sym.new_of_string "loop" in
+  let loop = Sym.unique_of_string "loop" in
   let t = {t with loop = Some loop} in
   (loop, t)
 
index b5d895b..747cb03 100644 (file)
@@ -9,20 +9,19 @@ let counter = ref 0
 
 let symbols = H.create 16
 
-let next name =
+let unique_of_string name =
   incr counter;
   let symbol = !counter in
   {name; symbol}
 
-let new_of_string name =
-  let t = next name in
-  H.replace symbols ~key:t.name ~data:t.symbol;
-  t
-
 let of_string name =
   match H.find_opt symbols name with
-  | Some s -> {name; symbol=s}
-  | None   -> new_of_string name
+  | Some symbol ->
+      {name; symbol}
+  | None ->
+      let t = unique_of_string name in
+      H.replace symbols ~key:t.name ~data:t.symbol;
+      t
 
 let to_string {name; _} =
   name
index 1dd5acc..8b3f8ec 100644 (file)
@@ -1,6 +1,6 @@
 type t
 
-val new_of_string : string -> t
+val unique_of_string : string -> t
 
 val of_string : string -> t
 
This page took 0.02588 seconds and 4 git commands to generate.