Ver Fonte

[as3] protect "Object" class name (#6838)

Alexander Kuzmenko há 7 anos atrás
pai
commit
40d544ed42
2 ficheiros alterados com 9 adições e 3 exclusões
  1. 2 2
      src/generators/genas3.ml
  2. 7 1
      std/flash/_std/Type.hx

+ 2 - 2
src/generators/genas3.ml

@@ -75,7 +75,7 @@ let is_fixed_override cf t =
 
 let protect name =
 	match name with
-	| "Error" | "Namespace" -> "_" ^ name
+	| "Error" | "Namespace" | "Object" -> "_" ^ name
 	| _ -> name
 
 let s_path ctx stat path p =
@@ -123,7 +123,7 @@ let reserved =
 	(* we don't include get+set since they are not 'real' keywords, but they can't be used as method names *)
 	"function";"class";"var";"if";"else";"while";"do";"for";"break";"continue";"return";"extends";"implements";
 	"import";"switch";"case";"default";"static";"public";"private";"try";"catch";"new";"this";"throw";"interface";
-	"override";"package";"null";"true";"false";"void";"object"
+	"override";"package";"null";"true";"false";"void"
 	];
 	h
 

+ 7 - 1
std/flash/_std/Type.hx

@@ -80,7 +80,13 @@ enum ValueType {
 		#end
 		default:
 		}
-		return str.split("::").join(".");
+		var parts = str.split("::");
+		#if as3
+		if(parts[parts.length - 1] == "_Object") {
+			parts[parts.length - 1] = "Object";
+		}
+		#end
+		return parts.join(".");
 	}
 
 	public static function getEnumName( e : Enum<Dynamic> ) : String {