Преглед на файлове

poking around with for loops

Justin Donaldson преди 5 години
родител
ревизия
0b5a972fae
променени са 3 файла, в които са добавени 11 реда и са изтрити 7 реда
  1. 3 3
      src/optimization/analyzerTexpr.ml
  2. 5 2
      src/optimization/analyzerTexprTransformer.ml
  3. 3 2
      src/typing/forLoop.ml

+ 3 - 3
src/optimization/analyzerTexpr.ml

@@ -369,9 +369,9 @@ module TexprFilter = struct
 			let e_true = mk (TConst (TBool true)) com.basic.tbool p in
 			let e = mk (TWhile(Texpr.Builder.mk_parent e_true,e_block,NormalWhile)) e.etype p in
 			loop e
-		| TFor(v,e1,e2) ->
-			let e = Texpr.for_remap com.basic v e1 e2 e.epos in
-			loop e
+		(* | TFor(v,e1,e2) -> *)
+		(* 	let e = Texpr.for_remap com.basic v e1 e2 e.epos in *)
+		(* 	loop e *)
 		| _ ->
 			Type.map_expr loop e
 		in

+ 5 - 2
src/optimization/analyzerTexprTransformer.ml

@@ -342,6 +342,8 @@ let rec func ctx bb tf t p =
 		bb,ef
 	and block_element bb e = match e.eexpr with
 		(* variables *)
+        | TFor(v, e1, e2)->
+            bb
 		| TVar(v,None) ->
 			add_texpr bb e;
 			bb
@@ -616,7 +618,8 @@ let rec func ctx bb tf t p =
 			block_el bb el
 		| TObjectDecl fl ->
 			block_el bb (List.map snd fl)
-		| TFor _ | TWhile(_,_,DoWhile) ->
+		(* | TFor _ *)
+        | TWhile(_,_,DoWhile) ->
 			assert false
 	and block_el bb el =
 		match !b_try_stack with
@@ -758,4 +761,4 @@ and func ctx i =
 	mk (TFunction {tf with tf_expr = e}) t p
 
 let to_texpr ctx =
-	func ctx ctx.entry.bb_id
+	func ctx ctx.entry.bb_id

+ 3 - 2
src/typing/forLoop.ml

@@ -344,8 +344,9 @@ module IterationKind = struct
 		| IteratorCustom(f_next,f_length) ->
 			gen_int_iter e1 pt f_next f_length
 		| IteratorIterator ->
-			begin try optimize_for_loop_iterator ctx v e1 e2 p
-			with Exit -> mk (TFor(v,e1,e2)) t_void p end
+            mk (TFor(v,e1,e2)) t_void p
+			(* begin try optimize_for_loop_iterator ctx v e1 e2 p *)
+			(* with Exit -> mk (TFor(v,e1,e2)) t_void p end *)
 		| IteratorGenericStack c ->
 			let tcell = (try (PMap.find "head" c.cl_fields).cf_type with Not_found -> assert false) in
 			let cell = gen_local ctx tcell p in