internal ForIn(Context context, AST var, AST initializer, AST collection, AST body)
: base(context) {
if (var != null){
this.var = var;
this.inExpressionContext = this.var.context.Clone();
}else{
VariableDeclaration decl = (VariableDeclaration)initializer;
this.var = decl.identifier;
if (decl.initializer == null)
decl.initializer = new ConstantWrapper(null, null); //Suppress warning
this.inExpressionContext = initializer.context.Clone();
}
this.initializer = initializer;
this.collection = collection;
this.inExpressionContext.UpdateWith(this.collection.context);
this.body = body;
this.completion = new Completion();
}