Ver Fonte

added Map.toString and made sure Std.string is called on the keys of ObjectMap (fixed issue #1540)

Simon Krajewski há 12 anos atrás
pai
commit
f8e6525469

+ 10 - 0
std/Map.hx

@@ -114,6 +114,15 @@ abstract Map< K, V > (IMap< K, V > ) {
 		return this.iterator();
 		return this.iterator();
 	}
 	}
 	
 	
+	/**
+		Returns a String representation of [this] Map.
+		
+		The exact representation depends on the platform and key-type.
+	**/
+	public inline function toString():String {
+		return this.toString();
+	}
+	
 	@:to static inline function toStringMap(t:IMap < String, V > ):StringMap<V> {
 	@:to static inline function toStringMap(t:IMap < String, V > ):StringMap<V> {
 		return new StringMap<V>();
 		return new StringMap<V>();
 	}
 	}
@@ -154,6 +163,7 @@ private typedef IMap < K, V > = {
 	public function remove(k:K):Bool;
 	public function remove(k:K):Bool;
 	public function keys():Iterator<K>;
 	public function keys():Iterator<K>;
 	public function iterator():Iterator<V>;
 	public function iterator():Iterator<V>;
+	public function toString():String;
 }
 }
 
 
 private typedef Hashable = {
 private typedef Hashable = {

+ 1 - 1
std/cpp/_std/haxe/ds/ObjectMap.hx

@@ -63,7 +63,7 @@ class ObjectMap<K,V> {
 		s.add("{");
 		s.add("{");
 		var it = __Internal.keys();
 		var it = __Internal.keys();
 		for( i in it ) {
 		for( i in it ) {
-			s.add(i);
+			s.add(Std.string(i));
 			s.add(" => ");
 			s.add(" => ");
 			s.add(Std.string(__Internal.get(i)));
 			s.add(Std.string(__Internal.get(i)));
 			if( it.hasNext() )
 			if( it.hasNext() )

+ 1 - 1
std/cs/_std/haxe/ds/ObjectMap.hx

@@ -412,7 +412,7 @@ import cs.NativeArray;
 		s.add("{");
 		s.add("{");
 		var it = keys();
 		var it = keys();
 		for( i in it ) {
 		for( i in it ) {
-			s.add(i);
+			s.add(Std.string(i));
 			s.add(" => ");
 			s.add(" => ");
 			s.add(Std.string(get(i)));
 			s.add(Std.string(get(i)));
 			if( it.hasNext() )
 			if( it.hasNext() )

+ 1 - 1
std/flash/_std/haxe/ds/ObjectMap.hx

@@ -36,7 +36,7 @@ class ObjectMap<K,V> extends flash.utils.Dictionary {
 		var s = "";
 		var s = "";
 		var it = keys();
 		var it = keys();
 		for( i in it ) {
 		for( i in it ) {
-			s += (s == "" ? "" : ",") + i;
+			s += (s == "" ? "" : ",") + Std.string(i);
 			s += " => ";
 			s += " => ";
 			s += Std.string(get(i));
 			s += Std.string(get(i));
 		}
 		}

+ 1 - 1
std/flash8/_std/haxe/ds/ObjectMap.hx

@@ -90,7 +90,7 @@ class ObjectMap <K:{ }, V> {
 		s.add("{");
 		s.add("{");
 		var it = keys();
 		var it = keys();
 		for( i in it ) {
 		for( i in it ) {
-			s.add(i);
+			s.add(Std.string(i));
 			s.add(" => ");
 			s.add(" => ");
 			s.add(Std.string(get(i)));
 			s.add(Std.string(get(i)));
 			if( it.hasNext() )
 			if( it.hasNext() )

+ 1 - 1
std/java/_std/haxe/ds/ObjectMap.hx

@@ -412,7 +412,7 @@ import java.NativeArray;
 		s.add("{");
 		s.add("{");
 		var it = keys();
 		var it = keys();
 		for( i in it ) {
 		for( i in it ) {
-			s.add(i);
+			s.add(Std.string(i));
 			s.add(" => ");
 			s.add(" => ");
 			s.add(Std.string(get(i)));
 			s.add(Std.string(get(i)));
 			if( it.hasNext() )
 			if( it.hasNext() )

+ 1 - 1
std/js/_std/haxe/ds/ObjectMap.hx

@@ -89,7 +89,7 @@ class ObjectMap<K:{ }, V> {
 		s.add("{");
 		s.add("{");
 		var it = keys();
 		var it = keys();
 		for( i in it ) {
 		for( i in it ) {
-			s.add(i);
+			s.add(Std.string(i));
 			s.add(" => ");
 			s.add(" => ");
 			s.add(Std.string(get(i)));
 			s.add(Std.string(get(i)));
 			if( it.hasNext() )
 			if( it.hasNext() )

+ 1 - 1
std/neko/_std/haxe/ds/ObjectMap.hx

@@ -81,7 +81,7 @@ class ObjectMap<K:{},V> {
 		s.add("{");
 		s.add("{");
 		var it = keys();
 		var it = keys();
 		for( i in it ) {
 		for( i in it ) {
-			s.add(i);
+			s.add(Std.string(i));
 			s.add(" => ");
 			s.add(" => ");
 			s.add(Std.string(get(i)));
 			s.add(Std.string(get(i)));
 			if( it.hasNext() )
 			if( it.hasNext() )

+ 1 - 1
std/php/_std/haxe/ds/ObjectMap.hx

@@ -76,7 +76,7 @@ class ObjectMap <K:{ }, V> {
 		var s = "{";
 		var s = "{";
 		var it = keys();
 		var it = keys();
 		for( i in it ) {
 		for( i in it ) {
-			s += i;
+			s += Std.string(i);
 			s += " => ";
 			s += " => ";
 			s += Std.string(get(i));
 			s += Std.string(get(i));
 			if( it.hasNext() )
 			if( it.hasNext() )