]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codewriter: Output valid vala syntax for LoopStatement
authorRico Tzschichholz <ricotz@ubuntu.com>
Tue, 16 Feb 2021 09:33:06 +0000 (10:33 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Tue, 16 Feb 2021 09:33:06 +0000 (10:33 +0100)
vala/valacodewriter.vala
vala/valaloopstatement.vala

index 944451e414f0a5a25deea982d7e8e72f4ae04adf..8c2df4db63fee34a432b2df0eaa389335d2b2c3a 100644 (file)
@@ -1083,7 +1083,9 @@ public class Vala.CodeWriter : CodeVisitor {
 
        public override void visit_loop_statement (LoopStatement stmt) {
                write_indent ();
-               write_string ("loop");
+               write_string ("while (");
+               stmt.condition.accept (this);
+               write_string (")");
                stmt.body.accept (this);
                write_newline ();
        }
index 8348d300c0f09820d60dfda75e9fe1a0eac2a69f..e522fd1b0cc8ce58abdc274255db3ba7fe6afab7 100644 (file)
@@ -34,7 +34,7 @@ public class Vala.LoopStatement : Loop, Statement {
         * @return                 newly created while statement
         */
        public LoopStatement (Block body, SourceReference? source_reference = null) {
-               base (null, body, source_reference);
+               base (new BooleanLiteral (true, source_reference), body, source_reference);
        }
 
        public override void accept (CodeVisitor visitor) {
@@ -56,6 +56,7 @@ public class Vala.LoopStatement : Loop, Statement {
 
                checked = true;
 
+               condition.check (context);
                body.check (context);
 
                return !error;