Author: sudha
Date: 2005-05-09 03:02:49 -0400 (Mon, 09 May 2005)
New Revision: 44245
Modified:
trunk/mcs/mbas/ChangeLog
trunk/mcs/mbas/parameter.cs
trunk/mcs/mbas/statement.cs
Log:
* parameter.cs : Support 'Optional ByRef' parameters
* statement.cs : Using 'System.Reflection.Missing.Value' in case of
missing argument for LateBinding cases
Modified: trunk/mcs/mbas/ChangeLog
===================================================================
--- trunk/mcs/mbas/ChangeLog 2005-05-09 07:01:39 UTC (rev 44244)
+++ trunk/mcs/mbas/ChangeLog 2005-05-09 07:02:49 UTC (rev 44245)
@@ -1,3 +1,8 @@
+2005-05-09 Satya Sudha K <[EMAIL PROTECTED]>
+ * parameter.cs : Support 'Optional ByRef' parameters
+ * statement.cs : Using 'System.Reflection.Missing.Value' in case of
missing argument for
+ LateBinding cases
+
2005-05-07 Rafael Teixeira <[EMAIL PROTECTED]>
* driver.cs : Oops, correcting some find-and-replace mishaps
Modified: trunk/mcs/mbas/parameter.cs
===================================================================
--- trunk/mcs/mbas/parameter.cs 2005-05-09 07:01:39 UTC (rev 44244)
+++ trunk/mcs/mbas/parameter.cs 2005-05-09 07:02:49 UTC (rev 44245)
@@ -123,7 +123,7 @@
public ParameterAttributes Attributes {
get {
- int flags = ((int) ModFlags) & ~((int)
Parameter.Modifier.ISBYREF);
+ int flags = ((int) ModFlags) & ~((int)
Parameter.Modifier.ISBYREF | (int) Parameter.Modifier.REF);
switch ((Modifier) flags) {
case Modifier.NONE:
return ParameterAttributes.None;
Modified: trunk/mcs/mbas/statement.cs
===================================================================
--- trunk/mcs/mbas/statement.cs 2005-05-09 07:01:39 UTC (rev 44244)
+++ trunk/mcs/mbas/statement.cs 2005-05-09 07:02:49 UTC (rev 44245)
@@ -3517,9 +3517,14 @@
if (args != null) {
//arrayInitializers = new ArrayList ();
argCount = args.Count;
- foreach (Argument a in args) {
- arrayInitializers.Add (a.Expr);
- originalArgs.Add (a.Expr);
+ for (int index = 0; index < args.Count; index
++) {
+ Argument a = (Argument) args [index];
+ Expression argument = a.Expr;
+ if (a.ArgType == Argument.AType.NoArg) {
+ argument = Parser.DecomposeQI
("System.Reflection.Missing.Value", loc);
+ }
+ arrayInitializers.Add (argument);
+ originalArgs.Add (argument);
}
}
@@ -3581,7 +3586,8 @@
rank_specifier.Add (new IntLiteral (argCount));
arrayInitializers = new ArrayList ();
for (int i = 0; i < argCount; i++) {
- if (((Argument)args[i]).Expr is
Constant)
+ Argument a = (Argument) args [i];
+ if (a.Expr is Constant || a.ArgType ==
Argument.AType.NoArg)
arrayInitializers.Add (new
BoolLiteral (false));
else
arrayInitializers.Add (new
BoolLiteral (true));
@@ -3612,6 +3618,8 @@
for (int i = 0; i< argCount; i ++) {
Expression thisArg = (Expression) originalArgs
[i];
+ if (((Argument) args [i]).ArgType ==
Argument.AType.NoArg)
+ continue;
if (thisArg is Constant)
continue;
Expression intExpr = new IntLiteral (i);
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches