public override bool Resolve (BlockContext ec)
{
VariableReference vr;
bool vr_locked = false;
using (ec.Set (ResolveContext.Options.UsingInitializerScope)) {
if (decl.Variable == null) {
vr = decl.ResolveExpression (ec) as VariableReference;
if (vr != null) {
vr_locked = vr.IsLockedByStatement;
vr.IsLockedByStatement = true;
}
} else {
if (!decl.Resolve (ec))
return false;
if (decl.Declarators != null) {
stmt = decl.RewriteForDeclarators (ec, stmt);
}
vr = null;
}
}
ec.StartFlowBranching (this);
stmt.Resolve (ec);
ec.EndFlowBranching ();
if (vr != null)
vr.IsLockedByStatement = vr_locked;
base.Resolve (ec);
return true;
}