]> git.saurik.com Git - cycript.git/commitdiff
Move scoping to CYDeclaration::Assignment from Replace.
authorJay Freeman (saurik) <saurik@saurik.com>
Tue, 5 Jun 2012 07:31:35 +0000 (00:31 -0700)
committerJay Freeman (saurik) <saurik@saurik.com>
Tue, 5 Jun 2012 07:31:35 +0000 (00:31 -0700)
Replace.cpp

index 3818c0bc5348aa9837b465ca632f6b33bc1beea0..c9f57b8dff93d791d1161ea81419a74140575c95 100644 (file)
@@ -196,7 +196,9 @@ CYStatement *CYContinue::Replace(CYContext &context) {
 }
 
 CYAssignment *CYDeclaration::Assignment(CYContext &context) {
+    context.Replace(identifier_);
     CYExpression *variable(Replace(context));
+    context.scope_->Declare(context, identifier_, CYIdentifierVariable);
     return initialiser_ == NULL ? NULL : $ CYAssign(variable, initialiser_);
 }
 
@@ -205,8 +207,6 @@ CYStatement *CYDeclaration::ForEachIn(CYContext &context, CYExpression *value) {
 }
 
 CYExpression *CYDeclaration::Replace(CYContext &context) {
-    context.Replace(identifier_);
-    context.scope_->Declare(context, identifier_, CYIdentifierVariable);
     return $V(identifier_);
 }