Report.Error (205, loc, "Cannot call an abstract base member `{0}'", name);
}
- protected void Error_CannotModiftyIntermediateExpressionValue ()
+ protected void Error_CannotModifyIntermediateExpressionValue ()
{
Report.Error (1612, loc, "Cannot modify a value type return value of `{0}'. Consider storing the value in a temporary variable",
GetSignatureForError ());
}
if (right_side == EmptyExpression.LValueMemberAccess || right_side == EmptyExpression.LValueMemberOutAccess) {
- Error_CannotModiftyIntermediateExpressionValue ();
+ Error_CannotModifyIntermediateExpressionValue ();
}
if (setter == null){
if (t.IsPointer)
return MakePointerAccess (ec, t);
- //if (t.IsValueType)
- // Error_CannotModiftyIntermediateExpressionValue ();
+ if (Expr.eclass != ExprClass.Variable && t.IsValueType)
+ Error_CannotModifyIntermediateExpressionValue ();
return (new IndexerAccess (this, loc)).DoResolveLValue (ec, right_side);
}
// if the indexer returns a value type, and we try to set a field in it
if (right_side == EmptyExpression.LValueMemberAccess || right_side == EmptyExpression.LValueMemberOutAccess) {
- Error_CannotModiftyIntermediateExpressionValue ();
+ Error_CannotModifyIntermediateExpressionValue ();
}
Expression e = ResolveAccessor (ec, AccessorType.Set);