add_generic_class (acfg, mono_class_inflate_generic_class (gcomparer, &ctx));
}
}
+
+ /* Add an instance of GenericEqualityComparer<T> which is created dynamically by EqualityComparer<T> */
+ if (klass->image == mono_defaults.corlib && !strcmp (klass->name_space, "System.Collections.Generic") && !strcmp (klass->name, "EqualityComparer`1")) {
+ MonoClass *tclass = mono_class_from_mono_type (klass->generic_class->context.class_inst->type_argv [0]);
+ MonoClass *icomparable, *gcomparer;
+ MonoGenericContext ctx;
+ MonoType *args [16];
+
+ memset (&ctx, 0, sizeof (ctx));
+
+ icomparable = mono_class_from_name (mono_defaults.corlib, "System", "IComparable`1");
+ g_assert (icomparable);
+ args [0] = &tclass->byval_arg;
+ ctx.class_inst = mono_metadata_get_generic_inst (1, args);
+
+ gcomparer = mono_class_from_name (mono_defaults.corlib, "System.Collections.Generic", "GenericEqualityComparer`1");
+ g_assert (gcomparer);
+ add_generic_class (acfg, mono_class_inflate_generic_class (gcomparer, &ctx));
+ }
}
static void
return l.Count;
}
+ public static int test_0_fullaot_comparer_t_2 () {
+ var l = new Dictionary <TimeSpan, int> ();
+ return l.Count;
+ }
+
static void enumerate<T> (IEnumerable<T> arr) {
foreach (var o in arr)
;