Author: ankit
Date: 2005-05-11 02:53:16 -0400 (Wed, 11 May 2005)
New Revision: 44378

Modified:
   trunk/mcs/mbas/ChangeLog
   trunk/mcs/mbas/expression.cs
Log:
* expression.cs (Invocation.CheckParameterAgainstArgument): Return 
ConversionType.Narrowing
for a NoArg argument.
(Invocation.IsApplicable): Don't create a REF type argument if it is NoArg.
(Invocation.ConstructArgumentList): Create argument with its DefaultValue for a 
NoArg.


Modified: trunk/mcs/mbas/ChangeLog
===================================================================
--- trunk/mcs/mbas/ChangeLog    2005-05-11 06:52:44 UTC (rev 44377)
+++ trunk/mcs/mbas/ChangeLog    2005-05-11 06:53:16 UTC (rev 44378)
@@ -1,3 +1,10 @@
+2005-05-11 Ankit Jain  <[EMAIL PROTECTED]>
+
+       * expression.cs (Invocation.CheckParameterAgainstArgument): Return 
ConversionType.Narrowing
+       for a NoArg argument.
+       (Invocation.IsApplicable): Don't create a REF type argument if it is 
NoArg.
+       (Invocation.ConstructArgumentList): Create argument with its 
DefaultValue for a NoArg.
+
 2005-05-10 Satya Sudha K <[EMAIL PROTECTED]>
        * statement.cs, expression.cs, assign.cs :
                Patch to allow latebinding expressions to be specified as ByRef 
arguments 

Modified: trunk/mcs/mbas/expression.cs
===================================================================
--- trunk/mcs/mbas/expression.cs        2005-05-11 06:52:44 UTC (rev 44377)
+++ trunk/mcs/mbas/expression.cs        2005-05-11 06:53:16 UTC (rev 44378)
@@ -3791,6 +3791,11 @@
 
                static ConversionType CheckParameterAgainstArgument 
(EmitContext ec, ParameterData pd, int i, Argument a, Type ptype)
                {
+                       if (a.ArgType == Argument.AType.NoArg)  {
+                               //FIXME: Is Narrowing correct for this?
+                               return ConversionType.Narrowing;
+                       }
+
                        Parameter.Modifier a_mod = a.GetParameterModifier () &
                                ~(Parameter.Modifier.REF);
                        Parameter.Modifier p_mod = pd.ParameterModifier (i) &
@@ -3909,7 +3914,7 @@
                                                        return 
ConversionType.None;
                                        }
 
-                                       if ((mod & Parameter.Modifier.REF) != 
0) {
+                                       if (a.ArgType != Argument.AType.NoArg 
&& (mod & Parameter.Modifier.REF) != 0) {
                                                a = new Argument (a.Expr, 
Argument.AType.Ref);
                                                if 
(!a.Resolve(ec,Location.Null))
                                                        return 
ConversionType.None;
@@ -4188,6 +4193,11 @@
                                Type param_type = pd.ParameterType (i);
 
                                bool IsDelegate = TypeManager.IsDelegateType 
(param_type);
+                               if (a.ArgType == Argument.AType.NoArg) {
+                                       a = new Argument (pd.DefaultValue (i), 
Argument.AType.Expression);
+                                       a.Resolve (ec, Location.Null);
+                               }
+
                                if (IsDelegate) {       
                                        if (a.ArgType == 
Argument.AType.AddressOf) {
                                                a = new Argument ((Expression) 
a.Expr, Argument.AType.Expression);

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to