private static MethodInfo GetImplicitConversionOperator(ResolutionContext context) { var destinationType = context.DestinationType; if (PrimitiveExtensions.IsNullableType(destinationType)) { destinationType = PrimitiveExtensions.GetTypeOfNullable(destinationType); } var sourceTypeMethod = TypeExtensions.GetDeclaredMethods(context.SourceType) .FirstOrDefault( mi => mi.IsPublic && mi.IsStatic && mi.Name == "op_Implicit" && mi.ReturnType == destinationType); return(sourceTypeMethod ?? destinationType.GetMethod("op_Implicit", new[] { context.SourceType })); }