public override Expression DoResolve(TypeSystem.Resolver.ResolveContext rc)
        {
            Expression e = expr.DoResolve(rc);
            if (e == null)
                return null;

            if (e.eclass == ExprClass.MethodGroup)
            {
                rc.Report.Error(0, loc, "An anonymous type property `{0}' cannot be initialized with `{1}'",
                    Name, e.GetSignatureForError());
                return null;
            }

            ResolvedType = e.Type;
            if (ResolvedType.Kind == TypeKind.Void || ResolvedType.Kind == TypeKind.Pointer)
            {
                rc.Report.Error(0, loc, "An anonymous type property `{0}' cannot be initialized with `{1}'",
                    Name, ResolvedType.ToString());
                return null;
            }

            return e;
        }
Example #2
0
 public override bool DoResolve(TypeSystem.Resolver.ResolveContext rc)
 {
     CheckAbstractExtern(rc);
     CreateResolvedMethod(rc);
     return(base.DoResolve(rc));
 }