if (method == null)
{
- Error (-6,
- "Could not find any applicable function for this argument list");
+ Error (30455,
+ "Could not find any applicable function to invoke for this argument list");
return null;
}
void Error_IncorrectArrayInitializer ()
{
- Error (178, "Incorrectly structured array initializer");
+ Error (30567, "Incorrectly structured array initializer");
}
public bool CheckIndices (EmitContext ec, ArrayList probe, int idx, bool specified_dims)
Enum en = TypeManager.LookupEnum (decl_type);
Constant c;
- if (en != null)
+ if (en != null) {
c = Constantify (o, en.UnderlyingType);
- else
+ return new EnumConstant (c, en.UnderlyingType);
+ }
+ else {
c = Constantify (o, enum_member.Type);
+ return new EnumConstant (c, enum_member.Type);
+ }
+
- return new EnumConstant (c, decl_type);
}
Expression exp = Constantify (o, t);
if (IdenticalNameAndTypeName (ec, left_original, loc))
return member_lookup;
- if (left_is_explicit) {
+ /*if (left_is_explicit) {
error176 (loc, me.Name);
return null;
- }
+ }*/
}
//
return new_expr.Resolve (ec, flags);
}
- //
- // TODO: I mailed Ravi about this, and apparently we can get rid
- // of this and put it in the right place.
- //
- // Handle enums here when they are in transit.
- // Note that we cannot afford to hit MemberLookup in this case because
- // it will fail to find any members at all
- //
-
int errors = Report.Errors;
Type expr_type = expr.Type;
- if ((expr is TypeExpr) && (expr_type.IsSubclassOf (TypeManager.enum_type))){
-
- Enum en = TypeManager.LookupEnum (expr_type);
-
- if (en != null) {
- object value = en.LookupEnumValue (ec, Identifier, loc);
-
- if (value != null){
- Constant c = Constantify (value, en.UnderlyingType);
- return new EnumConstant (c, expr_type);
- }
- }
- }
if (expr_type.IsPointer){
Error (23, "The '.' operator can not be applied to pointer operands (" +
return null;
}
+ if ((expr is TypeExpr) && (expr_type.IsSubclassOf (TypeManager.enum_type))) {
+ Enum en = TypeManager.LookupEnum (expr_type);
+
+ if (en != null) {
+ object value = en.LookupEnumValue (ec, Identifier, loc);
+ expr_type = TypeManager.int32_type;
+ if (value != null) {
+ Constant c = Constantify (value, en.UnderlyingType);
+ return new EnumConstant (c, en.UnderlyingType);
+ }
+ }
+ }
+
if (member_lookup is TypeExpr){
member_lookup.Resolve (ec, ResolveFlags.Type);
+
return member_lookup;
} else if ((flags & ResolveFlags.MaskExprClass) == ResolveFlags.Type)
return null;
// The following DoResolve/DoResolveLValue will do the definite assignment
// check.
-
if (right_side != null)
member_lookup = member_lookup.DoResolveLValue (ec, right_side);
else