-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Generic Maps not working with abstracts #88
Comments
Generic array abstracts also break when the array is nested. var arr: MyArray2D<Int>;
abstact MyArray2D<T>(Array<Array<T>>) { ... } |
There was indeed a problem with generic abstract types. I've pushed some changes, that should fix the problems raised by your small examples. Can you confirm if it fixes the problem in your case ? |
Amazing! These work now: abstract MyArray<T>(Array<T>) { ... }
abstract MyMap<T>(Map<Int, T>) { ... }
abstract MyNestedMap<T>(Map<Int, Map<Int, T>>) { ... } But this still doesn't: abstact MyArray2D<T>(Array<Array<T>>) { ... } |
I think I'm going to need more example for MyArray2D. Mine compile/parse without problem. |
Alright, I was able to narrow-down what exactly in my abstract was causing this issue. Here is the smallest example that I can get the error with: abstract MyArray2D<T>(Array<Array<T>>)
{
@:from
public static function fromArray<T>(arr: Array<Array<T>>): MyArray2D<T>
{
return cast arr;
}
} The error persists even if I add Only removing the |
Oh I see the problem. The from function is static, we can't apply the from the abstract. We'll have to see if we can infer it from the return value.
|
where
Specifically the following error is thrown (once for every offending type):
I'm assuming this is not intended since generic-array-abstracts work, but generic-map-abstracts don't?
The text was updated successfully, but these errors were encountered: