dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] CVS: pnet/cscc/csharp cs_grammar.y,1.32,1.33 cs_in


From: Gopal.V <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnet/cscc/csharp cs_grammar.y,1.32,1.33 cs_invoke.tc,1.14,1.15
Date: Mon, 11 Nov 2002 15:22:44 -0500

Update of /cvsroot/dotgnu-pnet/pnet/cscc/csharp
In directory subversions:/tmp/cvs-serv26918/cscc/csharp

Modified Files:
        cs_grammar.y cs_invoke.tc 
Log Message:
vararg indexer support


Index: cs_grammar.y
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csharp/cs_grammar.y,v
retrieving revision 1.32
retrieving revision 1.33
diff -C2 -r1.32 -r1.33
*** cs_grammar.y        5 Nov 2002 14:38:00 -0000       1.32
--- cs_grammar.y        11 Nov 2002 20:22:42 -0000      1.33
***************
*** 2960,2965 ****
  
  FormalIndexParameter
!       : OptAttributes Type Identifier                                         
{
!                               $$ = ILNode_FormalParameter_create($1, 
ILParamMod_empty, $2, $3);
                        }
        | ARGLIST       {
--- 2960,2965 ----
  
  FormalIndexParameter
!       : OptAttributes ParameterModifier Type Identifier                       
                {
!                               $$ = ILNode_FormalParameter_create($1, $2, $3, 
$4);
                        }
        | ARGLIST       {

Index: cs_invoke.tc
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csharp/cs_invoke.tc,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -r1.14 -r1.15
*** cs_invoke.tc        9 Nov 2002 21:24:13 -0000       1.14
--- cs_invoke.tc        11 Nov 2002 20:22:42 -0000      1.15
***************
*** 1132,1135 ****
--- 1132,1136 ----
        ILMethod *method;
        ILClass *classInfo;
+       ILProperty *property;
  
        /* If we have an "explicit this" method, then we need to
***************
*** 1165,1168 ****
--- 1166,1189 ----
                *paramMod = ILGenGetParamInfo
                                (method, signature, paramNum + firstParam, 
&paramType);
+       }
+       else if((property=ILProgramItemToProperty(item))!=0)
+       {
+               /* To handle the rare case of a variable params indexer
+                * NOTE: get_ and set_ methods have the same sig , right ? */   
+                if((method=ILProperty_Getter(property))!=0)
+                {
+                       *paramMod = ILGenGetParamInfo(method, signature, 
+                                                                               
paramNum + firstParam,&paramType);
+                }
+                else if((method=ILProperty_Setter(property))!=0)
+                {
+                       *paramMod = ILGenGetParamInfo(method, signature, 
+                                                                               
paramNum + firstParam,&paramType);
+                }
+                else /* just for that rare case */
+                {
+                       *paramMod = ILGenGetParamInfo
+                                               (0, signature, paramNum + 
firstParam, &paramType);
+                }
        }
        else





reply via email to

[Prev in Thread] Current Thread [Next in Thread]