public override Expression DoResolve(ResolveContext ec)
{
// Field initializer can be resolved (fail) many times
if (source == null)
{
return(null);
}
if (resolved == null)
{
//
// Field initializers are tricky for partial classes. They have to
// share same costructor (block) but they have they own resolve scope.
//
IMemberContext old = ec.MemberContext;
ec.MemberContext = rc;
using (ec.Set(ResolveContext.Options.FieldInitializerScope)) {
resolved = base.DoResolve(ec) as ExpressionStatement;
}
ec.MemberContext = old;
}
return(resolved);
}