@@ -5714,6 +5714,9 @@ struct
mk_cast to_t e)
| TAbstract (a_to, _), TAbstract(a_from, _) when a_to == a_from ->
e
+ | TAbstract _, TInst({ cl_kind = KTypeParameter _ }, _)
+ | TInst({ cl_kind = KTypeParameter _ }, _), TAbstract _ ->
+ do_unsafe_cast()
| TAbstract _, _
| _, TAbstract _ ->
(try
@@ -6,6 +6,9 @@ class Issue2835 extends unit.Test
{
var t = new Test(42);
eq(42,t.get());
+ t.fromFloat(12);
+ eq(12,t.get());
+ eq(12.0,t.toFloat());
}
@@ -17,6 +20,16 @@ private class Test<T:(Float)>
this.value = value;
+ public function toFloat():Float
+ {
+ return value;
+ }
+
+ public function fromFloat(v:Float)
+ this.value = cast v;
public function get():T
return value;