Selaa lähdekoodia

Fixes Try variable scope issue. Fixes #498.

Brucey 5 vuotta sitten
vanhempi
commit
3131a860f6
1 muutettua tiedostoa jossa 2 lisäystä ja 2 poistoa
  1. 2 2
      parser.bmx

+ 2 - 2
parser.bmx

@@ -2184,16 +2184,16 @@ End Rem
 						ty=ParseArrayType(ty)
 						ty=ParseArrayType(ty)
 					Wend
 					Wend
 				End If
 				End If
+				PopBlock
 				Local init:TLocalDecl=New TLocalDecl.Create( id,ty,Null,0 )
 				Local init:TLocalDecl=New TLocalDecl.Create( id,ty,Null,0 )
 				Local block:TBlockDecl=New TBlockDecl.Create( _block, , BLOCK_CATCH )
 				Local block:TBlockDecl=New TBlockDecl.Create( _block, , BLOCK_CATCH )
 				catches.AddLast(New TCatchStmt.Create( init,block ))
 				catches.AddLast(New TCatchStmt.Create( init,block ))
-				PopBlock
 				PushBlock block
 				PushBlock block
 			Else If CParse("finally") Then
 			Else If CParse("finally") Then
 				If finallyStmt Then Err "Try statement cannot have more than one Finally block."
 				If finallyStmt Then Err "Try statement cannot have more than one Finally block."
+				PopBlock
 				Local block:TBlockDecl = New TBlockDecl.Create(_block, , BLOCK_FINALLY)
 				Local block:TBlockDecl = New TBlockDecl.Create(_block, , BLOCK_FINALLY)
 				finallyStmt = New TFinallyStmt.Create(block)
 				finallyStmt = New TFinallyStmt.Create(block)
-				PopBlock
 				PushBlock block
 				PushBlock block
 			Else
 			Else
 				ParseStmt
 				ParseStmt