[mono] Fix static virtual calls to generic methods from gshared code (#66739)
* [mono] Fix static virtual calls to generic methods from gshared code When the resolved method from the vtable is generic, we need to inflate it. For example, in the gshared method we are calling on `Interface.InterfaceMethod<int> ()` (the type argument can either be fixed or determined based on the gshared method's context), and this method is resolved to generic method `Class.InterfaceMethod<T> ()`. We then need to inflate the method and resolve `T` to `int`. * Enable tests * [mono][interp] Fix calls to static virtual methods via delegates * [mono][aot] Fix constrained + ldftn * [mono][gsharing] Fix constrained + ldftn from gshared method We can'd determine at compile time the static method if the constrained_class is a generic parameteri. We defer the computation of the method at runtime, in a similar fashion with calls. * Disable test suite on android It hits an issue in the android test runner
Showing
想要评论请 注册 或 登录