Browse Source

dodge C++ issue with `String` as value

Simon Krajewski 9 years ago
parent
commit
c89e1b2ef6

+ 12 - 3
tests/unit/src/unit/issues/Issue4653.hx

@@ -3,18 +3,27 @@ package unit.issues;
 @:genericBuild(unit.issues.misc.Issue4653Macro.getType())
 private class C<T> { }
 
-@:genericBuild(unit.issues.misc.Issue4666Macro.getType())
+@:genericBuild(unit.issues.misc.Issue4653Macro.getStringType())
 private class C2<T> { }
 
+@:genericBuild(unit.issues.misc.Issue4666Macro.getType())
+private class C3<T> { }
+
+private class NotString {
+	static public function fromCharCode(i:Int) {
+		return String.fromCharCode(i);
+	}
+}
+
 class Issue4653 extends Test {
 	function test() {
 		var s = C;
 		eq("A", s.fromCharCode(65));
 
-		var s2 = cast("foo", C<Dynamic>);
+		var s2 = cast("foo", C2<Dynamic>);
 		eq("FOO", s2.toUpperCase());
 
-		var d = C2;
+		var d = C3;
 		// no idea how to test this properly
 	}
 }

+ 4 - 0
tests/unit/src/unit/issues/misc/Issue4653Macro.hx

@@ -2,6 +2,10 @@ package unit.issues.misc;
 
 class Issue4653Macro {
 	static public function getType() {
+		return macro : NotString;
+	}
+
+	static public function getStringType() {
 		return macro : String;
 	}
 }