public void AddConstructor (Constructor c)
{
- if (c.Name != MemberName.Name) {
- Report.Error (1520, c.Location, "Class, struct, or interface method must have a return type");
- }
-
bool is_static = (c.ModFlags & Modifiers.STATIC) != 0;
if (!AddToContainer (c, is_static ?
ConstructorBuilder.ConstructorName : ConstructorBuilder.TypeConstructorName))
}
Constructor c = new Constructor (this, MemberName.Name, mods,
- Parameters.EmptyReadOnlyParameters,
+ null, Parameters.EmptyReadOnlyParameters,
new GeneratedBaseInitializer (Location),
Location);
// The spec claims that static is not permitted, but
// my very own code has static constructors.
//
- public Constructor (DeclSpace parent, string name, int mod, Parameters args,
+ public Constructor (DeclSpace parent, string name, int mod, Attributes attrs, Parameters args,
ConstructorInitializer init, Location loc)
: base (parent, null, null, mod, AllowedModifiers,
- new MemberName (name, loc), null, args)
+ new MemberName (name, loc), attrs, args)
{
Initializer = init;
}
public OpType GetMatchingOperator ()
{
switch (OperatorType) {
- case OpType.Equality:
- return OpType.Inequality;
- case OpType.Inequality:
- return OpType.Equality;
- case OpType.True:
- return OpType.False;
- case OpType.False:
- return OpType.True;
- case OpType.GreaterThan:
- return OpType.LessThan;
- case OpType.LessThan:
- return OpType.GreaterThan;
- case OpType.GreaterThanOrEqual:
- return OpType.LessThanOrEqual;
- case OpType.LessThanOrEqual:
- return OpType.GreaterThanOrEqual;
- default:
- return OpType.TOP;
+ case OpType.Equality:
+ return OpType.Inequality;
+ case OpType.Inequality:
+ return OpType.Equality;
+ case OpType.True:
+ return OpType.False;
+ case OpType.False:
+ return OpType.True;
+ case OpType.GreaterThan:
+ return OpType.LessThan;
+ case OpType.LessThan:
+ return OpType.GreaterThan;
+ case OpType.GreaterThanOrEqual:
+ return OpType.LessThanOrEqual;
+ case OpType.LessThanOrEqual:
+ return OpType.GreaterThanOrEqual;
+ default:
+ return OpType.TOP;
}
}