2010-01-07 Rodrigo Kumpera <rkumpera@novell.com>
* method-to-ir.c: All types with variant arguments must fallback to the
slow path. This makes cast of variant delegates work.
* mini-trampolines.c (mono_get_vcall_slot_addr): Add new variance_used out
argument that is set to TRUE is the returned vtable slot is for a variant
interface. Changed a g_print + g_assert_not_reached to a g_error.
* mini-trampilines.c (common_call_trampoline): Handle variant interfaces in
a similar fashion of generic virtual methods.
2010-01-07 Rodrigo Kumpera <rkumpera@novell.com>
* object.c (add_imt_builder_entry): Improve DEBUG_IMT spew.
* object.c (build_imt_slots): Interfaces with variant generic arguments use the
fallback trampoline as well.
* class.c (mono_class_interface_offset_with_variance): Add new non_exact_match
out argument that is set to TRUE if the match was direct.
* class.c (mono_class_is_assignable_from): Delegates require variance testing as well.
* class-internal.h: Update prototype of mono_class_interface_offset_with_variance.
git-svn-id: svn+ssh://mono-cvs.ximian.com/source/trunk/mono@149198 e3ebcda4-bce8-0310-ba0a-eca2169e7518