Expression,
Ref,
Out,
- NoArg
+ NoArg,
+ AddressOf
};
public AType ArgType;
{
return true;
}
+
/*
if (ArgType == AType.Ref) {
Expr = Expr.Resolve (ec);
return false;
Expr = Expr.ResolveLValue (ec, Expr);
- } else */if (ArgType == AType.Out)
+ } else */
+
+ if (ArgType == AType.Out)
Expr = Expr.ResolveLValue (ec, new EmptyExpression ());
- else
- Expr = Expr.Resolve (ec);
+ else if (ArgType == AType.AddressOf) {
+ Expression temp_expr = Expr;
+
+ if (temp_expr is SimpleName) {
+ SimpleName sn = temp_expr as SimpleName;
+ temp_expr = sn.DoResolveAllowStatic(ec);
+ }
+ else if (temp_expr is MemberAccess) {
+ MemberAccess ma = temp_expr as MemberAccess;
+ temp_expr = ma.DoResolve(ec);
+ }
+ if (temp_expr is MethodGroupExpr)
+ return true;
+ ArgType = AType.Expression;
+ Expr = Expr.Resolve (ec);
+ }
+ else
+ Expr = Expr.Resolve (ec);
+
if (Expr == null)
return false;