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

[php7] remove redundant case in field access generation

Alexander Kuzmenko преди 8 години
родител
ревизия
a666e1b92b
променени са 1 файла, в които са добавени 10 реда и са изтрити 14 реда
  1. 10 14
      src/generators/genphp7.ml

+ 10 - 14
src/generators/genphp7.ml

@@ -2390,22 +2390,18 @@ class virtual type_builder ctx wrapper =
 				);
 				self#write (!access_str ^ field_str)
 			in
-			match (follow expr.etype, access) with
-				| (TInst ({ cl_path = ([], "String") }, _), FInstance (_, _, { cf_name = "length"; cf_kind = Var _ })) ->
-					self#write "strlen(";
-					self#write_expr expr;
-					self#write ")"
-				| (_, FInstance ({ cl_path = [], "String"}, _, { cf_name = "length"; cf_kind = Var _ })) ->
+			match access with
+				| FInstance ({ cl_path = [], "String"}, _, { cf_name = "length"; cf_kind = Var _ }) ->
 					self#write "strlen(";
 					self#write_expr expr;
 					self#write ")"
-				| (_, FInstance (_, _, field)) -> write_access "->" (field_name field)
-				| (_, FStatic (_, ({ cf_kind = Var _ } as field))) ->
+				| FInstance (_, _, field) -> write_access "->" (field_name field)
+				| FStatic (_, ({ cf_kind = Var _ } as field)) ->
 					(match (reveal_expr expr).eexpr with
 						| TTypeExpr _ -> write_access "::" ("$" ^ (field_name field))
 						| _ -> write_access "->" (field_name field)
 					)
-				| (_, FStatic (_, ({ cf_kind = Method MethDynamic } as field))) ->
+				| FStatic (_, ({ cf_kind = Method MethDynamic } as field)) ->
 					(match self#parent_expr with
 						| Some { eexpr = TCall ({ eexpr = TField (e, a) }, _) } when a == access ->
 							self#write "(";
@@ -2414,15 +2410,15 @@ class virtual type_builder ctx wrapper =
 						| _ ->
 							write_access "::" ("$" ^ (field_name field))
 					)
-				| (_, FStatic (_, ({ cf_kind = Method _ } as field))) -> self#write_expr_field_static expr field
-				| (_, FAnon field) ->
+				| FStatic (_, ({ cf_kind = Method _ } as field)) -> self#write_expr_field_static expr field
+				| FAnon field ->
 					let written_as_probable_string = self#write_expr_field_if_string expr (field_name field) in
 					if not written_as_probable_string then write_access "->" (field_name field)
-				| (_, FDynamic field_name) ->
+				| FDynamic field_name ->
 					let written_as_probable_string = self#write_expr_field_if_string expr field_name in
 					if not written_as_probable_string then write_access "->" field_name
-				| (_, FClosure (tcls, field)) -> self#write_expr_field_closure tcls field expr
-				| (_, FEnum (_, field)) ->
+				| FClosure (tcls, field) -> self#write_expr_field_closure tcls field expr
+				| FEnum (_, field) ->
 					if is_enum_constructor_with_args field then
 						if not self#parent_expr_is_call then
 							begin