Browse Source

remove some outdated type patterns from pre-abstract era (and hope it won't break for some mysterious reason)

Dan Korostelev 10 years ago
parent
commit
44e5ea5096
6 changed files with 10 additions and 88 deletions
  1. 1 7
      gencommon.ml
  2. 0 7
      gencpp.ml
  3. 1 23
      gencs.ml
  4. 7 42
      genjava.ml
  5. 0 4
      genphp.ml
  6. 1 5
      genswf9.ml

+ 1 - 7
gencommon.ml

@@ -263,7 +263,6 @@ let get_tdef mt = match mt with | TTypeDecl t -> t | _ -> assert false
 let mk_mt_access mt pos = { eexpr = TTypeExpr(mt); etype = anon_of_mt mt; epos = pos }
 
 let is_void t = match follow t with
-	| TEnum({ e_path = ([], "Void") }, [])
 	| TAbstract ({ a_path = ([], "Void") },[]) ->
 			true
 	| _ -> false
@@ -3706,7 +3705,6 @@ struct
 					in
 
 					let may_cast = match follow call_expr.etype with
-						| TEnum({ e_path = ([], "Void")}, [])
 						| TAbstract ({ a_path = ([], "Void") },[]) -> (fun e -> e)
 						| _ -> mk_cast call_expr.etype
 					in
@@ -3757,7 +3755,6 @@ struct
 						let vo, _ = List.nth args (i * 2 + 1) in
 
 						let needs_cast, is_float = match t, like_float t && not (like_i64 t) with
-							| TInst({ cl_path = ([], "Float") }, []), _
 							| TAbstract({ a_path = ([], "Float") },[]), _ -> false, true
 							| _, true -> true, true
 							| _ -> false,false
@@ -5253,7 +5250,6 @@ struct
 
 	let add_assign gen add_statement expr =
 		match expr.eexpr, follow expr.etype with
-			| _, TEnum({ e_path = ([],"Void") },[])
 			| _, TAbstract ({ a_path = ([],"Void") },[])
 			| TThrow _, _ ->
 				add_statement expr;
@@ -5290,7 +5286,6 @@ struct
 				right
 			| _ ->
 				match follow right.etype with
-					| TEnum( { e_path = ([], "Void") }, [] )
 					| TAbstract ({ a_path = ([], "Void") },[]) ->
 						right
 					| _ -> trace (debug_expr right); assert false (* a statement is required *)
@@ -8377,7 +8372,6 @@ struct
 			(* as Array<Dynamic> *)
 			let args, ret = get_args t in
 			let ret = match follow ret with
-				| TEnum({ e_path = ([], "Void") }, [])
 				| TAbstract ({ a_path = ([], "Void") },[]) -> ret
 				| _ -> ret
 			in
@@ -9318,7 +9312,7 @@ struct
 		let conforms_cfs has_next next =
 			try (match follow has_next.cf_type with
 				| TFun([],ret) when
-					(match follow ret with | TEnum({ e_path = ([], "Bool") }, []) -> () | _ -> raise Not_found) ->
+					(match follow ret with | TAbstract({ a_path = ([], "Bool") }, []) -> () | _ -> raise Not_found) ->
 						()
 				| _ -> raise Not_found);
 			(match follow next.cf_type with

+ 0 - 7
gencpp.ml

@@ -566,10 +566,6 @@ and type_string_suff suffix haxe_type =
    | TAbstract ({ a_path = ([],"Float") },[]) -> "Float"
    | TAbstract ({ a_path = ([],"Int") },[]) -> "int"
    | TAbstract( { a_path = ([], "EnumValue") }, _  ) -> "Dynamic"
-   | TEnum ({ e_path = ([],"Void") },[]) -> "Void"
-   | TEnum ({ e_path = ([],"Bool") },[]) -> "bool"
-   | TInst ({ cl_path = ([],"Float") },[]) -> "Float"
-   | TInst ({ cl_path = ([],"Int") },[]) -> "int"
    | TEnum (enum,params) ->  "::" ^ (join_class_path_remap enum.e_path "::") ^ suffix
    | TInst (klass,params) ->  (class_string klass suffix params)
    | TType (type_def,params) ->
@@ -2665,8 +2661,6 @@ let find_referenced_types ctx obj super_deps constructor_deps header_only for_de
          visited := in_type :: !visited;
          begin match follow in_type with
          | TMono r -> (match !r with None -> () | Some t -> visit_type t)
-         (*| TEnum ({ e_path = ([],"Void") },[]) -> ()
-         | TEnum ({ e_path = ([],"Bool") },[]) -> () *)
          | TEnum (enum,params) -> add_type enum.e_path
          (* If a class has a template parameter, then we treat it as dynamic - except
             for the Array, Class, FastIterator or Pointer classes, for which we do a fully typed object *)
@@ -4179,7 +4173,6 @@ let rec s_type t =
 and s_fun t void =
    match follow t with
    | TFun _ -> "(" ^ s_type t ^ ")"
-   | TEnum ({ e_path = ([],"Void") },[]) when void -> "(" ^ s_type t ^ ")"
    | TAbstract ({ a_path = ([],"Void") },[]) when void -> "(" ^ s_type t ^ ")"
    | TMono r -> (match !r with | None -> s_type t | Some t -> s_fun t void)
    | TLazy f -> s_fun (!f()) void

+ 1 - 23
gencs.ml

@@ -39,11 +39,8 @@ let rec is_cs_basic_type t =
 	match follow t with
 		| TInst( { cl_path = (["haxe"], "Int32") }, [] )
 		| TInst( { cl_path = (["haxe"], "Int64") }, [] )
-		| TInst( { cl_path = ([], "Int") }, [] )
 		| TAbstract ({ a_path = ([], "Int") },[])
-		| TInst( { cl_path = ([], "Float") }, [] )
 		| TAbstract ({ a_path = ([], "Float") },[])
-		| TEnum( { e_path = ([], "Bool") }, [] )
 		| TAbstract ({ a_path = ([], "Bool") },[]) ->
 			true
 		| TAbstract ({ a_path = (["cs"], "Pointer") },_) ->
@@ -111,9 +108,7 @@ let is_tparam t =
 let rec is_int_float t =
 	match follow t with
 		| TInst( { cl_path = (["haxe"], "Int32") }, [] )
-		| TInst( { cl_path = ([], "Int") }, [] )
 		| TAbstract ({ a_path = ([], "Int") },[])
-		| TInst( { cl_path = ([], "Float") }, [] )
 		| TAbstract ({ a_path = ([], "Float") },[]) ->
 			true
 		| TAbstract _ when like_float t && not (like_i64 t) ->
@@ -123,7 +118,6 @@ let rec is_int_float t =
 
 let is_bool t =
 	match follow t with
-		| TEnum( { e_path = ([], "Bool") }, [] )
 		| TAbstract ({ a_path = ([], "Bool") },[]) ->
 			true
 		| _ -> false
@@ -780,15 +774,10 @@ let configure gen =
 	in
 
 	gen.gfollow#add ~name:"follow_basic" (fun t -> match t with
-			| TEnum ({ e_path = ([], "Bool") }, [])
 			| TAbstract ({ a_path = ([], "Bool") },[])
-			| TEnum ({ e_path = ([], "Void") }, [])
 			| TAbstract ({ a_path = ([], "Void") },[])
-			| TInst ({ cl_path = ([],"Float") },[])
 			| TAbstract ({ a_path = ([],"Float") },[])
-			| TInst ({ cl_path = ([],"Int") },[])
 			| TAbstract ({ a_path = ([],"Int") },[])
-			| TType ({ t_path = [],"UInt" },[])
 			| TAbstract ({ a_path = [],"UInt" },[])
 			| TType ({ t_path = ["cs"], "Int64" },[])
 			| TAbstract ({ a_path = ["cs"], "Int64" },[])
@@ -943,15 +932,10 @@ let configure gen =
 	let rec t_s t =
 		match real_type t with
 			(* basic types *)
-			| TEnum ({ e_path = ([], "Bool") }, [])
 			| TAbstract ({ a_path = ([], "Bool") },[]) -> "bool"
-			| TEnum ({ e_path = ([], "Void") }, [])
 			| TAbstract ({ a_path = ([], "Void") },[]) -> "object"
-			| TInst ({ cl_path = ([],"Float") },[])
 			| TAbstract ({ a_path = ([],"Float") },[]) -> "double"
-			| TInst ({ cl_path = ([],"Int") },[])
 			| TAbstract ({ a_path = ([],"Int") },[]) -> "int"
-			| TType ({ t_path = [],"UInt" },[])
 			| TAbstract ({ a_path = [],"UInt" },[]) -> "uint"
 			| TType ({ t_path = ["cs"], "Int64" },[])
 			| TAbstract ({ a_path = ["cs"], "Int64" },[]) -> "long"
@@ -1024,7 +1008,6 @@ let configure gen =
 
 	let rett_s t =
 		match t with
-			| TEnum ({e_path = ([], "Void")}, [])
 			| TAbstract ({ a_path = ([], "Void") },[]) -> "void"
 			| _ -> t_s t
 	in
@@ -1963,7 +1946,6 @@ let configure gen =
 				let is_override = is_override || match cf.cf_name, follow cf.cf_type with
 					| "Equals", TFun([_,_,targ], tret) ->
 						(match follow targ, follow tret with
-							| TDynamic _, TEnum({ e_path = ([], "Bool") }, [])
 							| TDynamic _, TAbstract({ a_path = ([], "Bool") }, []) -> true
 							| _ -> false)
 					| "GetHashCode", TFun([],_) -> true
@@ -2703,7 +2685,7 @@ let configure gen =
 
 		let is_unsafe = { eexpr = TConst(TBool is_unsafe); etype = basic.tbool; epos = pos } in
 
-		let should_cast = match main_expr.etype with | TInst({ cl_path = ([], "Float") }, []) -> false | _ -> true in
+		let should_cast = match main_expr.etype with | TAbstract({ a_path = ([], "Float") }, []) -> false | _ -> true in
 		let infer = mk_static_field_access_infer runtime_cl fn_name field_expr.epos [] in
 		let first_args =
 			[ field_expr; { eexpr = TConst(TString field); etype = basic.tstring; epos = pos } ]
@@ -2813,13 +2795,10 @@ let configure gen =
 		| TType({ t_path = ([], "Null") }, [t]) ->
 			(match follow t with
 				| TInst({ cl_path = ([], "String") }, [])
-				| TInst({ cl_path = ([], "Float") }, [])
 				| TAbstract ({ a_path = ([], "Float") },[])
 				| TInst({ cl_path = (["haxe"], "Int32")}, [] )
 				| TInst({ cl_path = (["haxe"], "Int64")}, [] )
-				| TInst({ cl_path = ([], "Int") }, [])
 				| TAbstract ({ a_path = ([], "Int") },[])
-				| TEnum({ e_path = ([], "Bool") }, [])
 				| TAbstract ({ a_path = ([], "Bool") },[]) -> Some t
 				| TAbstract _ when like_float t -> Some t
 				| t when is_cs_basic_type t -> Some t
@@ -2988,7 +2967,6 @@ let configure gen =
 		match e.eexpr with
 			| TSwitch(cond, cases, def) ->
 				(match gen.gfollow#run_f cond.etype with
-					| TInst({ cl_path = ([], "Int") },[])
 					| TAbstract ({ a_path = ([], "Int") },[])
 					| TInst({ cl_path = ([], "String") },[]) ->
 						(List.exists (fun (c,_) ->

+ 7 - 42
genjava.ml

@@ -85,15 +85,14 @@ let is_java_basic_type t =
 		| TInst( { cl_path = (["haxe"], "Int64") }, [] )
 		| TAbstract( { a_path = ([], "Single") }, [] )
 		| TAbstract( { a_path = (["java"], ("Int8" | "Int16" | "Char16")) }, [] )
-		| TInst( { cl_path = ([], "Int") }, [] ) | TAbstract( { a_path =	([], "Int") }, [] )
-		| TInst( { cl_path = ([], "Float") }, [] ) | TAbstract( { a_path =	([], "Float") }, [] )
-		| TEnum( { e_path = ([], "Bool") }, [] ) | TAbstract( { a_path =	([], "Bool") }, [] ) ->
+		| TAbstract( { a_path =	([], "Int") }, [] )
+		| TAbstract( { a_path =	([], "Float") }, [] )
+		| TAbstract( { a_path =	([], "Bool") }, [] ) ->
 			true
 		| _ -> false
 
 let is_bool t =
 	match follow t with
-		| TEnum( { e_path = ([], "Bool") }, [] )
 		| TAbstract ({ a_path = ([], "Bool") },[]) ->
 			true
 		| _ -> false
@@ -101,8 +100,8 @@ let is_bool t =
 let is_int_float gen t =
 	match follow (gen.greal_type t) with
 		| TInst( { cl_path = (["haxe"], "Int32") }, [] )
-		| TInst( { cl_path = ([], "Int") }, [] ) | TAbstract( { a_path =	([], "Int") }, [] )
-		| TInst( { cl_path = ([], "Float") }, [] ) | TAbstract( { a_path =	([], "Float") }, [] ) ->
+		| TAbstract( { a_path =	([], "Int") }, [] )
+		| TAbstract( { a_path =	([], "Float") }, [] ) ->
 			true
 		| (TAbstract _ as t) when like_float t && not (like_i64 t)-> true
 		| _ -> false
@@ -207,7 +206,6 @@ struct
 						] ) }
 					in
 					(match follow_module follow md with
-						| TClassDecl({ cl_path = ([], "Float") })
 						| TAbstractDecl({ a_path = ([], "Float") }) ->
 							{
 								eexpr = TCall(
@@ -217,7 +215,6 @@ struct
 								etype = basic.tbool;
 								epos = e.epos
 							}
-						| TClassDecl{ cl_path = ([], "Int") }
 						| TAbstractDecl{ a_path = ([], "Int") } ->
 							{
 								eexpr = TCall(
@@ -227,8 +224,7 @@ struct
 								etype = basic.tbool;
 								epos = e.epos
 							}
-						| TAbstractDecl{ a_path = ([], "Bool") }
-						| TEnumDecl{ e_path = ([], "Bool") } ->
+						| TAbstractDecl{ a_path = ([], "Bool") } ->
 							mk_is true obj bool_md
 						| TAbstractDecl{ a_path = ([], "Single") } ->
 							mk_is true obj f_md
@@ -811,13 +807,10 @@ let configure gen =
 							List.map (fun t ->
 								let f_t = gen.gfollow#run_f t in
 								match f_t  with
-									| TEnum ({ e_path = ([], "Bool") }, [])
 									| TAbstract ({ a_path = ([], "Bool") },[])
-									| TInst ({ cl_path = ([],"Float") },[])
 									| TAbstract ({ a_path = ([],"Float") },[])
 									| TInst ({ cl_path = ["haxe"],"Int32" },[])
 									| TInst ({ cl_path = ["haxe"],"Int64" },[])
-									| TInst ({ cl_path = ([],"Int") },[])
 									| TAbstract ({ a_path = ([],"Int") },[])
 									| TType ({ t_path = ["java"], "Int64" },[])
 									| TAbstract ({ a_path = ["java"], "Int64" },[])
@@ -854,13 +847,9 @@ let configure gen =
 	let write_field w name = write w (change_field name) in
 
 	gen.gfollow#add ~name:"follow_basic" (fun t -> match t with
-			| TEnum ({ e_path = ([], "Bool") }, [])
 			| TAbstract ({ a_path = ([], "Bool") },[])
-			| TEnum ({ e_path = ([], "Void") }, [])
 			| TAbstract ({ a_path = ([], "Void") },[])
-			| TInst ({ cl_path = ([],"Float") },[])
 			| TAbstract ({ a_path = ([],"Float") },[])
-			| TInst ({ cl_path = ([],"Int") },[])
 			| TAbstract ({ a_path = ([],"Int") },[])
 			| TInst( { cl_path = (["haxe"], "Int32") }, [] )
 			| TInst( { cl_path = (["haxe"], "Int64") }, [] )
@@ -984,14 +973,10 @@ let configure gen =
 	let rec t_s pos t =
 		match real_type t with
 			(* basic types *)
-			| TEnum ({ e_path = ([], "Bool") }, [])
 			| TAbstract ({ a_path = ([], "Bool") },[]) -> "boolean"
-			| TEnum ({ e_path = ([], "Void") }, [])
 			| TAbstract ({ a_path = ([], "Void") },[]) ->
 					path_s_import pos (["java";"lang"], "Object") []
-			| TInst ({ cl_path = ([],"Float") },[])
 			| TAbstract ({ a_path = ([],"Float") },[]) -> "double"
-			| TInst ({ cl_path = ([],"Int") },[])
 			| TAbstract ({ a_path = ([],"Int") },[]) -> "int"
 			| TType ({ t_path = ["java"], "Int64" },[])
 			| TAbstract ({ a_path = ["java"], "Int64" },[]) -> "long"
@@ -1048,13 +1033,10 @@ let configure gen =
 
 	and param_t_s pos t =
 		match run_follow gen t with
-			| TEnum ({ e_path = ([], "Bool") }, [])
 			| TAbstract ({ a_path = ([], "Bool") },[]) ->
 					path_s_import pos (["java";"lang"], "Boolean") []
-			| TInst ({ cl_path = ([],"Float") },[])
 			| TAbstract ({ a_path = ([],"Float") },[]) ->
 					path_s_import pos (["java";"lang"], "Double") []
-			| TInst ({ cl_path = ([],"Int") },[])
 			| TAbstract ({ a_path = ([],"Int") },[]) ->
 					path_s_import pos (["java";"lang"], "Integer") []
 			| TType ({ t_path = ["java"], "Int64" },[])
@@ -1093,7 +1075,6 @@ let configure gen =
 
 	let rett_s pos t =
 		match t with
-			| TEnum ({e_path = ([], "Void")}, [])
 			| TAbstract ({ a_path = ([], "Void") },[]) -> "void"
 			| _ -> t_s pos t
 	in
@@ -1201,11 +1182,8 @@ let configure gen =
 								| TAbstract( { a_path = (["java"], "Int64") }, [] )
 								| TInst( { cl_path = (["haxe"], "Int64") }, [] ) -> write w "0L"
 								| TInst( { cl_path = (["haxe"], "Int32") }, [] )
-								| TInst({ cl_path = ([], "Int") },[])
 								| TAbstract ({ a_path = ([], "Int") },[]) -> expr_s w ({ e with eexpr = TConst(TInt Int32.zero) })
-								| TInst({ cl_path = ([], "Float") },[])
 								| TAbstract ({ a_path = ([], "Float") },[]) -> expr_s w ({ e with eexpr = TConst(TFloat "0.0") })
-								| TEnum({ e_path = ([], "Bool") }, [])
 								| TAbstract ({ a_path = ([], "Bool") },[]) -> write w "false"
 								| TAbstract _ when like_int e.etype ->
 									expr_s w (mk_cast e.etype { e with eexpr = TConst(TInt Int32.zero) })
@@ -1600,9 +1578,7 @@ let configure gen =
 						(match cf.cf_type with
 							| TFun([_,_,t], ret) ->
 								(match (real_type t, real_type ret) with
-									| TDynamic _, TEnum( { e_path = ([], "Bool") }, [])
 									| TDynamic _, TAbstract ({ a_path = ([], "Bool") },[])
-									| TAnon _, TEnum( { e_path = ([], "Bool") }, [])
 									| TAnon _, TAbstract ({ a_path = ([], "Bool") },[]) -> true
 									| _ -> List.memq cf cl.cl_overrides
 								)
@@ -1620,7 +1596,6 @@ let configure gen =
 						(match cf.cf_type with
 							| TFun([], ret) ->
 								(match real_type ret with
-									| TInst( { cl_path = ([], "Int") }, [])
 									| TAbstract ({ a_path = ([], "Int") },[]) ->
 										true
 									| _ -> gen.gcon.error "A hashCode() function should return an Int!" cf.cf_pos; false
@@ -1973,7 +1948,7 @@ let configure gen =
 
 		let is_unsafe = { eexpr = TConst(TBool is_unsafe); etype = basic.tbool; epos = pos } in
 
-		let should_cast = match main_expr.etype with | TInst({ cl_path = ([], "Float") }, []) -> false | _ -> true in
+		let should_cast = match main_expr.etype with | TAbstract({ a_path = ([], "Float") }, []) -> false | _ -> true in
 		let infer = mk_static_field_access_infer runtime_cl fn_name field_expr.epos [] in
 		let first_args =
 			[ field_expr; { eexpr = TConst(TString field); etype = basic.tstring; epos = pos } ]
@@ -2082,13 +2057,10 @@ let configure gen =
 		| TType({ t_path = ([], "Null") }, [t]) ->
 			(match follow t with
 				| TInst({ cl_path = ([], "String") }, [])
-				| TInst({ cl_path = ([], "Float") }, [])
 				| TAbstract ({ a_path = ([], "Float") },[])
 				| TInst({ cl_path = (["haxe"], "Int32")}, [] )
 				| TInst({ cl_path = (["haxe"], "Int64")}, [] )
-				| TInst({ cl_path = ([], "Int") }, [])
 				| TAbstract ({ a_path = ([], "Int") },[])
-				| TEnum({ e_path = ([], "Bool") }, [])
 				| TAbstract ({ a_path = ([], "Bool") },[]) -> Some t
 				| t when is_java_basic_type t -> Some t
 				| _ -> None )
@@ -2124,21 +2096,15 @@ let configure gen =
 				let is_ref = match follow e1.etype, follow e2.etype with
 					| TDynamic _, _
 					| _, TDynamic _
-					| TInst({ cl_path = ([], "Float") },[]), _
 					| TAbstract ({ a_path = ([], "Float") },[]) , _
 					| TInst( { cl_path = (["haxe"], "Int32") }, [] ), _
 					| TInst( { cl_path = (["haxe"], "Int64") }, [] ), _
-					| TInst({ cl_path = ([], "Int") },[]), _
 					| TAbstract ({ a_path = ([], "Int") },[]) , _
-					| TEnum({ e_path = ([], "Bool") },[]), _
 					| TAbstract ({ a_path = ([], "Bool") },[]) , _
-					| _, TInst({ cl_path = ([], "Float") },[])
 					| _, TAbstract ({ a_path = ([], "Float") },[])
-					| _, TInst({ cl_path = ([], "Int") },[])
 					| _, TAbstract ({ a_path = ([], "Int") },[])
 					| _, TInst( { cl_path = (["haxe"], "Int32") }, [] )
 					| _, TInst( { cl_path = (["haxe"], "Int64") }, [] )
-					| _, TEnum({ e_path = ([], "Bool") },[])
 					| _, TAbstract ({ a_path = ([], "Bool") },[])
 					| TInst( { cl_kind = KTypeParameter _ }, [] ), _
 					| _, TInst( { cl_kind = KTypeParameter _ }, [] ) -> false
@@ -2236,7 +2202,6 @@ let configure gen =
 			| TSwitch(cond, cases, def) ->
 				(match gen.gfollow#run_f cond.etype with
 					| TInst( { cl_path = (["haxe"], "Int32") }, [] )
-					| TInst({ cl_path = ([], "Int") },[])
 					| TAbstract ({ a_path = ([], "Int") },[])
 					| TInst({ cl_path = ([], "String") },[]) ->
 						(List.exists (fun (c,_) ->

+ 0 - 4
genphp.ml

@@ -111,10 +111,6 @@ and type_string_suff suffix haxe_type =
 	| TAbstract ({ a_path = [],"Float" },[]) -> "double"
 	| TAbstract ({ a_path = [],"Bool" },[]) -> "bool"
 	| TAbstract ({ a_path = [],"Void" },[]) -> "Void"
-	| TEnum ({ e_path = ([],"Void") },[]) -> "Void"
-	| TEnum ({ e_path = ([],"Bool") },[]) -> "bool"
-	| TInst ({ cl_path = ([],"Float") },[]) -> "double"
-	| TInst ({ cl_path = ([],"Int") },[]) -> "int"
 	| TEnum (enum,params) ->  (join_class_path enum.e_path "::") ^ suffix
 	| TInst (klass,params) ->  (class_string klass suffix params)
 	| TAbstract (abs,params) ->  (join_class_path abs.a_path "::") ^ suffix

+ 1 - 5
genswf9.ml

@@ -191,11 +191,7 @@ let rec follow_basic t =
 		| TAbstract ({ a_path = ([],"Float") },[])
 		| TAbstract ({ a_path = [],"UInt" },[])
 		| TAbstract ({ a_path = ([],"Bool") },[])
-		| TInst ({ cl_path = (["haxe"],"Int32") },[])
-		| TInst ({ cl_path = ([],"Int") },[])
-		| TInst ({ cl_path = ([],"Float") },[])
-		| TType ({ t_path = [],"UInt" },[])
-		| TEnum ({ e_path = ([],"Bool") },[]) -> t
+		| TInst ({ cl_path = (["haxe"],"Int32") },[]) -> t
 		| t -> t)
 	| TType ({ t_path = ["flash";"utils"],"Object" },[])
 	| TType ({ t_path = ["flash";"utils"],"Function" },[])