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 csdoc.c,1.18,1.19


From: Gopal.V <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnet/cscc csdoc.c,1.18,1.19
Date: Sun, 26 Jan 2003 04:02:10 -0500

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

Modified Files:
        csdoc.c 
Log Message:
fix C# sig output for enums


Index: csdoc.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csdoc.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -r1.18 -r1.19
*** csdoc.c     4 Jan 2003 15:16:54 -0000       1.18
--- csdoc.c     26 Jan 2003 09:02:07 -0000      1.19
***************
*** 490,494 ****
        if(ILField_IsLiteral(field))
        {
-               /* TODO: dump the constant value */
        }
        fputs("\"/>\n", stream);
--- 490,493 ----
***************
*** 1040,1043 ****
--- 1039,1043 ----
        ILNode *body;
        ILNode *member;
+       int isEnum=0;
  
        /* Bail out if this is a bad class definition */
***************
*** 1093,1100 ****
        fputs("\"/>\n", stream);
  
-       /* Output the type signature, in C# form */
-       Indent(stream, indent);
-       fputs("<TypeSignature Language=\"C#\" Value=\"", stream);
-       ILDumpFlags(stream, defn->modifiers, CSharpTypeFlags, 0);
        if(ILClassIsValueType(classInfo))
        {
--- 1093,1096 ----
***************
*** 1103,1106 ****
--- 1099,1122 ----
                   !strcmp(ILClass_Namespace(parent), "System"))
                {
+                       isEnum=1;
+               }
+       }
+ 
+       /* Output the type signature, in C# form */
+       Indent(stream, indent);
+       fputs("<TypeSignature Language=\"C#\" Value=\"", stream);
+       if(isEnum)
+       {
+               ILDumpFlags(stream,defn->modifiers & ~(IL_META_TYPEDEF_SEALED), 
+                                                       CSharpTypeFlags,0);
+       }
+       else
+       {
+               ILDumpFlags(stream, defn->modifiers, CSharpTypeFlags, 0);
+       }
+       if(ILClassIsValueType(classInfo))
+       {
+               if(isEnum)
+               {
                        fputs("enum ", stream);
                }
***************
*** 1119,1123 ****
        }
        fputs(ILClass_Name(classInfo), stream);
!       if(parent && !ILTypeIsObjectClass(ILClassToType(parent)))
        {
                fputs(": ", stream);
--- 1135,1139 ----
        }
        fputs(ILClass_Name(classInfo), stream);
!       if(!isEnum && parent && !ILTypeIsObjectClass(ILClassToType(parent)))
        {
                fputs(": ", stream);
***************
*** 1129,1133 ****
                }
        }
!       else
        {
                impl = ILClassNextImplements(classInfo, 0);
--- 1145,1149 ----
                }
        }
!       else if(!isEnum)
        {
                impl = ILClassNextImplements(classInfo, 0);
***************
*** 1137,1141 ****
                }
        }
!       if(impl)
        {
                DumpClassNameOther(stream, ILImplementsGetInterface(impl), 
classInfo);
--- 1153,1157 ----
                }
        }
!       if(!isEnum && impl)
        {
                DumpClassNameOther(stream, ILImplementsGetInterface(impl), 
classInfo);





reply via email to

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