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_decls.tc,1.35,1.36


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnet/cscc/csharp cs_decls.tc,1.35,1.36
Date: Thu, 27 Feb 2003 01:19:26 -0500

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

Modified Files:
        cs_decls.tc 
Log Message:


Fix bug #2439 - pending implementation of interfaces.


Index: cs_decls.tc
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csharp/cs_decls.tc,v
retrieving revision 1.35
retrieving revision 1.36
diff -C2 -r1.35 -r1.36
*** cs_decls.tc 26 Feb 2003 02:11:11 -0000      1.35
--- cs_decls.tc 27 Feb 2003 06:19:22 -0000      1.36
***************
*** 33,36 ****
--- 33,62 ----
  }
  
+ /*
+  * Proxy reporting function for "ILGenImplementsAllInterfaces".
+  */
+ static void InterfaceProxyFunc(ILNode *node, ILClass *classInfo,
+                                                          ILMethod 
*missingMember,
+                                                          ILMethod 
*proxyReplacement)
+ {
+       ILNode_ClassDefn *defn = (ILNode_ClassDefn *)node;
+       ILNode *proxy = ILNode_ProxyDeclaration_create
+               (missingMember, proxyReplacement);
+       ILNode *body;
+       if(!(defn->body))
+       {
+               body = defn->body = ILNode_List_create();
+       }
+       else
+       {
+               body = defn->body;
+               if(yyisa(body, ILNode_ScopeChange))
+               {
+                       body = ((ILNode_ScopeChange *)body)->body;
+               }
+       }
+       ILNode_List_Add(body, proxy);
+ }
+ 
  /*  Since we can't (shouldn't?) inherit list from multiple types, this
   *  operation will iterate over a list of declarations adding to the 
***************
*** 245,249 ****
                /* Check that the class implements all of its interfaces */
                ILGenImplementsAllInterfaces(info, (ILNode *)node, 
node->classInfo,
!                                                                        
InterfaceErrorFunc);
        }
        if((node->modifiers & CS_SPECIALATTR_UNSAFE) != 0)
--- 271,275 ----
                /* Check that the class implements all of its interfaces */
                ILGenImplementsAllInterfaces(info, (ILNode *)node, 
node->classInfo,
!                                                                        
InterfaceErrorFunc, InterfaceProxyFunc);
        }
        if((node->modifiers & CS_SPECIALATTR_UNSAFE) != 0)
***************
*** 277,280 ****
--- 303,319 ----
                CSListGatherStaticCtor((ILNode_List *)node->body, ctor);
        }
+ }
+ 
+ /*
+  * Perform semantic analysis for proxy declarations.
+  */
+ ILNode_SemAnalysis(ILNode_ProxyDeclaration)
+ {
+       /* Nothing to do here */
+       return CSSemValueDefault;
+ }
+ ILNode_Declaration_GatherStaticCtor(ILNode_ProxyDeclaration)
+ {
+       /* Nothing to do here */
  }
  





reply via email to

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