@@ -2052,9 +2052,6 @@ impl<'a, W: Write> Visitor for Formatter<'a, W> {
20522052 // support of solana/substrate address literals
20532053 self . write_quoted_str ( * loc, Some ( "address" ) , val) ?;
20542054 }
2055- Expression :: This ( loc) => {
2056- write_chunk ! ( self , loc. start( ) , loc. end( ) , "this" ) ?;
2057- }
20582055 Expression :: Parenthesis ( loc, expr) => {
20592056 self . surrounded (
20602057 SurroundingChunk :: new ( "(" , Some ( loc. start ( ) ) , None ) ,
@@ -2859,7 +2856,7 @@ impl<'a, W: Write> Visitor for Formatter<'a, W> {
28592856 loc : Loc ,
28602857 init : & mut Option < Box < Statement > > ,
28612858 cond : & mut Option < Box < Expression > > ,
2862- update : & mut Option < Box < Statement > > ,
2859+ update : & mut Option < Box < Expression > > ,
28632860 body : & mut Option < Box < Statement > > ,
28642861 ) -> Result < ( ) , Self :: Error > {
28652862 return_source_if_disabled ! ( self , loc) ;
@@ -2884,16 +2881,9 @@ impl<'a, W: Write> Visitor for Formatter<'a, W> {
28842881 fmt. write_whitespace_separator ( true ) ?;
28852882 }
28862883
2887- // Don't write a semi after the update expression
2888- // This should be just an `Expression`, but it is parsed as a `Statement` for
2889- // some reason in solang-parser
2890- // See https://github.com/hyperledger/solang/issues/1283
2891- match update. as_deref_mut ( ) {
2892- Some ( Statement :: Expression ( loc, expr) ) => fmt. visit_expr ( * loc, expr) ,
2893- Some ( stmt) => {
2894- unreachable ! ( "Invalid Solidity for loop `update` expression: {stmt:?}" )
2895- }
2896- _ => Ok ( ( ) ) ,
2884+ match update {
2885+ Some ( expr) => expr. visit ( fmt) ,
2886+ None => Ok ( ( ) ) ,
28972887 }
28982888 } ;
28992889 let multiline = !fmt. try_on_single_line ( |fmt| write_for_loop_header ( fmt, false ) ) ?;
0 commit comments