generate "throws" clause when needed
authorMathias Hasselmann <mathias.hasselmann@gmx.de>
Tue, 14 Aug 2007 20:47:19 +0000 (20:47 +0000)
committerMathias Hasselmann <hasselmm@src.gnome.org>
Tue, 14 Aug 2007 20:47:19 +0000 (20:47 +0000)
2007-08-14  Mathias Hasselmann  <mathias.hasselmann@gmx.de>

* vala/valainterfacewriter.vala:
generate "throws" clause when needed

svn path=/trunk/; revision=467

ChangeLog
vala/valainterfacewriter.vala

index e8fa285..d0e40fc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2007-08-14  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
 
+       * vala/valainterfacewriter.vala:
+       generate "throws" clause when needed
+
+2007-08-14  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
        * gobject/valaccodecompiler.vala: do not pass non-existant 
        packages to pkg-config
 
index 1ed50f7..06ea9f0 100644 (file)
@@ -337,9 +337,26 @@ public class Vala.InterfaceWriter : CodeVisitor {
                write_newline ();
        }
        
+       private void write_error_domains (Collection<TypeReference> error_domains) {
+               if (error_domains.size > 0) {
+                       write_string (" throws ");
+
+                       bool first = true;
+                       foreach (TypeReference type in error_domains) {
+                               if (!first) {
+                                       write_string (", ");
+                               } else {
+                                       first = false;
+                               }
+
+                               write_type (type);
+                       }
+               }
+       }
+
        private void write_params (Collection<FormalParameter> params) {
                write_string ("(");
-               
+
                bool first = true;
                foreach (FormalParameter param in params) {
                        if (!first) {
@@ -373,7 +390,7 @@ public class Vala.InterfaceWriter : CodeVisitor {
                                write_string (param.default_expression.to_string ());
                        }
                }
-               
+
                write_string (")");
        }
 
@@ -487,8 +504,9 @@ public class Vala.InterfaceWriter : CodeVisitor {
                }
                
                write_string (" ");
-               
+
                write_params (m.get_parameters ());
+               write_error_domains (m.get_error_domains ());
 
                write_string (";");