Преглед на файлове

An expression statement should be followed by ; (#1601)

Fixes https://github.com/hyperledger/solang/issues/1600

Signed-off-by: Sean Young <sean@mess.org>
Sean Young преди 2 години
родител
ревизия
90b3f7085f
променени са 1 файла, в които са добавени 5 реда и са изтрити 2 реда
  1. 5 2
      solang-parser/src/helpers/fmt.rs

+ 5 - 2
solang-parser/src/helpers/fmt.rs

@@ -932,7 +932,10 @@ impl Display for pt::Statement {
                 f.write_str(") ")?;
                 block.fmt(f)
             }
-            Self::Expression(_, expr) => expr.fmt(f),
+            Self::Expression(_, expr) => {
+                expr.fmt(f)?;
+                f.write_char(';')
+            }
             Self::VariableDefinition(_, var, expr) => {
                 var.fmt(f)?;
                 write_opt!(f, " = ", expr);
@@ -2419,7 +2422,7 @@ mod tests {
 
                 pt::Statement::While(loc!(), expr!(true), Box::new(stmt!({}))) => "while (true) {}",
 
-                pt::Statement::Expression(loc!(), expr!(true)) => "true",
+                pt::Statement::Expression(loc!(), expr!(true)) => "true;",
 
                 pt::Statement::VariableDefinition(loc!(), pt::VariableDeclaration {
                     loc: loc!(),