|
@@ -0,0 +1,44 @@
|
|
|
+package unit.issues;
|
|
|
+
|
|
|
+class Issue2874 extends unit.Test
|
|
|
+{
|
|
|
+ private function test()
|
|
|
+ {
|
|
|
+ var a = new Arr(["1","2"]);
|
|
|
+ var a2 = a.map(function(v) return Std.parseInt(v));
|
|
|
+ eq(1,a2[0]);
|
|
|
+ eq(2,a2[1]);
|
|
|
+ // var a3:Arr<Int> = a.map(function(v) return Std.parseInt(v));
|
|
|
+ // eq(1,a3[0]);
|
|
|
+ // eq(2,a3[1]);
|
|
|
+ }
|
|
|
+
|
|
|
+ private function testArray()
|
|
|
+ {
|
|
|
+ var a = ["1","2"];
|
|
|
+ var a2 = a.map(function(v) return Std.parseInt(v));
|
|
|
+ eq(1,a2[0]);
|
|
|
+ eq(2,a2[1]);
|
|
|
+ // var a3:Array<Int> = a.map(function(v) return Std.parseInt(v));
|
|
|
+ // eq(1,a3[0]);
|
|
|
+ // eq(2,a3[1]);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+@:arrayAccess abstract Arr<T>(Array<T>)
|
|
|
+{
|
|
|
+ @:extern inline public function new(a)
|
|
|
+ {
|
|
|
+ this = a;
|
|
|
+ }
|
|
|
+
|
|
|
+ @:extern inline public function map<X>(fn:T->X):Arr<X>
|
|
|
+ {
|
|
|
+ var arr2 = [];
|
|
|
+ for (v in this)
|
|
|
+ {
|
|
|
+ arr2.push(fn(v));
|
|
|
+ }
|
|
|
+ return new Arr(arr2);
|
|
|
+ }
|
|
|
+}
|