diff options
author | Juerg Billeter <j@bitron.ch> | 2007-08-28 18:53:29 +0000 |
---|---|---|
committer | Jürg Billeter <juergbi@src.gnome.org> | 2007-08-28 18:53:29 +0000 |
commit | e5bccaaa717a8d988b0d4a035946c462bf77231b (patch) | |
tree | 5cf4224c8bbbaba8439b7af19dfd1a5b0e126f22 /ccode | |
parent | 77edd1784de9afda7caeb2d01548c336cbf07341 (diff) | |
download | vala-e5bccaaa717a8d988b0d4a035946c462bf77231b.tar.gz |
generate warning about invalid property ids, fixes bug 463668
2007-08-28 Juerg Billeter <j@bitron.ch>
* ccode/valaccodeswitchstatement.vala,
gobject/valacodegeneratorclass.vala: generate warning about invalid
property ids, fixes bug 463668
svn path=/trunk/; revision=522
Diffstat (limited to 'ccode')
-rw-r--r-- | ccode/valaccodeswitchstatement.vala | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/ccode/valaccodeswitchstatement.vala b/ccode/valaccodeswitchstatement.vala index 8a12d8d88..596b97270 100644 --- a/ccode/valaccodeswitchstatement.vala +++ b/ccode/valaccodeswitchstatement.vala @@ -33,6 +33,7 @@ public class Vala.CCodeSwitchStatement : CCodeStatement { public CCodeExpression! expression { get; set; } private Gee.List<CCodeCaseStatement> case_statements = new ArrayList<CCodeCaseStatement> (); + private Gee.List<CCodeStatement> default_statements = new ArrayList<CCodeStatement> (); public CCodeSwitchStatement (construct CCodeExpression! expression) { } @@ -45,7 +46,16 @@ public class Vala.CCodeSwitchStatement : CCodeStatement { public void add_case (CCodeCaseStatement! case_stmt) { case_statements.add (case_stmt); } - + + /** + * Append the specified statement to the default clause. + * + * @param stmt a statement + */ + public void add_default_statement (CCodeStatement! stmt) { + default_statements.add (stmt); + } + public override void write (CCodeWriter! writer) { writer.write_indent (); writer.write_string ("switch ("); @@ -56,7 +66,17 @@ public class Vala.CCodeSwitchStatement : CCodeStatement { foreach (CCodeCaseStatement case_stmt in case_statements) { case_stmt.write (writer); } - + + if (default_statements.size > 0) { + writer.write_indent (); + writer.write_string ("default:"); + writer.write_newline (); + + foreach (CCodeStatement stmt in default_statements) { + stmt.write (writer); + } + } + writer.write_end_block (); } } |