Expression DoResolveBase (EmitContext ec) { type = local_info.VariableType; Expression e = Block.GetConstantExpression (Name); if (e != null) return e.Resolve (ec); VerifyAssigned (ec); // // If we are referencing a variable from the external block // flag it for capturing // if (ec.MustCaptureVariable (local_info)) { if (local_info.AddressTaken) AnonymousMethodExpression.Error_AddressOfCapturedVar (this, loc); if (ec.IsVariableCapturingRequired) { AnonymousMethodStorey storey = local_info.Block.Explicit.CreateAnonymousMethodStorey (ec); storey.CaptureLocalVariable (ec, local_info); } } return this; }