fix output of enums with methods
authorJuerg Billeter <j@bitron.ch>
Mon, 31 Mar 2008 18:54:00 +0000 (18:54 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Mon, 31 Mar 2008 18:54:00 +0000 (18:54 +0000)
2008-03-31  Juerg Billeter  <j@bitron.ch>

* vala/valainterfacewriter.vala: fix output of enums with methods

svn path=/trunk/; revision=1164

ChangeLog
vala/valainterfacewriter.vala

index 684155e..8326378 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-03-31  Jürg Billeter  <j@bitron.ch>
+
+       * vala/valainterfacewriter.vala: fix output of enums with methods
+
 2008-03-30  Jürg Billeter  <j@bitron.ch>
 
        * vala/valasemanticanalyzer.vala: enhance support for pointer
index d500421..0463636 100644 (file)
@@ -300,7 +300,7 @@ public class Vala.InterfaceWriter : CodeVisitor {
 
                write_indent ();
 
-               var first = true;
+               bool first = true;
                string cheaders;
                foreach (string cheader in en.get_cheader_filenames ()) {
                        if (first) {
@@ -330,16 +330,31 @@ public class Vala.InterfaceWriter : CodeVisitor {
                write_identifier (en.name);
                write_begin_block ();
 
-               en.accept_children (this);
+               first = true;
+               foreach (EnumValue ev in en.get_values ()) {
+                       if (first) {
+                               first = false;
+                       } else {
+                               write_string (",");
+                               write_newline ();
+                       }
 
-               write_end_block ();
-               write_newline ();
-       }
+                       write_indent ();
+                       write_identifier (ev.name);
+               }
 
-       public override void visit_enum_value (EnumValue! ev) {
-               write_indent ();
-               write_identifier (ev.name);
-               write_string (",");
+               if (!first) {
+                       if (en.get_methods ().size > 0) {
+                               write_string (";");
+                       }
+                       write_newline ();
+               }
+
+               foreach (Method m in en.get_methods ()) {
+                       m.accept (this);
+               }
+
+               write_end_block ();
                write_newline ();
        }