[runtime] Prioritize loading a profiler library from the installation dir over standa...
[mono.git] / mcs / mcs / delegate.cs
index 0dd759823f184fcb95f003920619a26939796c8a..2073041afa252248e1f856efef43e9b91afaa1d4 100644 (file)
@@ -294,9 +294,8 @@ namespace Mono.CSharp {
 
                public override void PrepareEmit ()
                {
-                       if (!Parameters.IsEmpty) {
-                               parameters.ResolveDefaultValues (this);
-                       }
+                       if ((caching_flags & Flags.CloseTypeCreated) != 0)
+                               return;
 
                        InvokeBuilder.PrepareEmit ();
                        if (BeginInvokeBuilder != null) {
@@ -646,7 +645,8 @@ namespace Mono.CSharp {
                        var invoke = Delegate.GetInvokeMethod (target_type);
 
                        Arguments arguments = CreateDelegateMethodArguments (ec, invoke.Parameters, invoke.Parameters.Types, mg.Location);
-                       return mg.OverloadResolve (ec, ref arguments, null, OverloadResolver.Restrictions.CovariantDelegate | OverloadResolver.Restrictions.ProbingOnly) != null;
+                       mg = mg.OverloadResolve (ec, ref arguments, null, OverloadResolver.Restrictions.CovariantDelegate | OverloadResolver.Restrictions.ProbingOnly);
+                       return mg != null && Delegate.IsTypeCovariant (ec, mg.BestCandidateReturnType, invoke.ReturnType);
                }
 
                #region IErrorHandler Members