if (indexers == null)
indexers = new ArrayList ();
- if (i.MemberName.TypeName != null)
+ if (i.MemberName.Left != null)
indexers.Insert (0, i);
else
indexers.Add (i);
//
public override bool Define (TypeContainer container)
{
+ if (!DoDefineBase (container))
+ return false;
+
DeclSpace decl;
MethodBuilder mb = null;
if (GenericMethod != null) {
return !error;
}
- protected virtual bool DoDefine (DeclSpace decl, TypeContainer container)
+ protected virtual bool DoDefineBase (TypeContainer container)
{
if (Name == null)
Name = "this";
MethodAttributes.NewSlot |
MethodAttributes.Virtual;
} else {
- if (!container.MethodModifiersValid (ModFlags, Name, Location))
- return false;
+ if (!container.MethodModifiersValid (ModFlags, Name, Location))
+ return false;
- flags = Modifiers.MethodAttr (ModFlags);
+ flags = Modifiers.MethodAttr (ModFlags);
}
+ return true;
+ }
+
+ protected virtual bool DoDefine (DeclSpace decl, TypeContainer container)
+ {
// Lookup Type, verify validity
MemberType = decl.ResolveType (Type, false, Location);
if (MemberType == null)
if (MemberType.IsPointer && !UnsafeOK (container))
return false;
-
+
//
// Check for explicit interface implementation
//
- if (MemberName.TypeName != null) {
- ExplicitInterfaceName = MemberName.TypeName.GetTypeExpression (Location);
+ if (MemberName.Left != null) {
+ ExplicitInterfaceName = MemberName.Left.GetTypeExpression (Location);
ShortName = MemberName.Name;
} else
ShortName = Name;
public override bool Define (TypeContainer container)
{
+ if (!DoDefineBase (container))
+ return false;
+
if (!DoDefine (container, container))
return false;
e_attr = EventAttributes.RTSpecialName |
EventAttributes.SpecialName;
;
+ if (!DoDefineBase (container))
+ return false;
+
if (!DoDefine (container, container))
return false;
PropertyAttributes.RTSpecialName |
PropertyAttributes.SpecialName;
+ if (!DoDefineBase (container))
+ return false;
+
if (!DoDefine (container, container))
return false;