return MemberName.GetSignatureForError ();
}
- public string GetSignatureForMetadata ()
+ public virtual string GetSignatureForMetadata ()
{
- if (Parent is TypeDefinition) {
- return Parent.GetSignatureForMetadata () + "+" + TypeNameParser.Escape (MemberName.Basename);
- }
-
var sb = new StringBuilder ();
CreateMetadataName (sb);
return sb.ToString ();
}
}
+ public override string GetSignatureForMetadata ()
+ {
+ if (Parent is TypeDefinition) {
+ return Parent.GetSignatureForMetadata () + "+" + TypeNameParser.Escape (FilterNestedName (MemberName.Basename));
+ }
+
+ return base.GetSignatureForMetadata ();
+ }
+
public virtual void SetBaseTypes (List<FullNamedExpression> baseTypes)
{
type_bases = baseTypes;
foreach (var member in members) {
var pbm = member as PropertyBasedMember;
- if (pbm != null)
+ if (pbm != null) {
pbm.PrepareEmit ();
+ continue;
+ }
- var pm = member as IParametersMember;
- if (pm != null) {
- var mc = member as MethodOrOperator;
- if (mc != null) {
- mc.PrepareEmit ();
- }
-
- var p = pm.Parameters;
- if (p.IsEmpty)
- continue;
-
- ((ParametersCompiled) p).ResolveDefaultValues (member);
+ var mc = member as MethodCore;
+ if (mc != null) {
+ mc.PrepareEmit ();
continue;
}
this.spec = spec;
current_type = null;
+ if (class_partial_parts != null) {
+ foreach (var part in class_partial_parts)
+ part.spec = spec;
+ }
}
public override void RemoveContainer (TypeContainer cont)
if (ff == null)
continue;
- ff.CharSet = (CharSet) System.Enum.Parse (typeof (CharSet), value.GetValue ().ToString ());
+ ff.CharSetValue = (CharSet) System.Enum.Parse (typeof (CharSet), value.GetValue ().ToString ());
}
}
}
ModFlags |= Modifiers.NEW;
if (!IsCompilerGenerated) {
Report.SymbolRelatedToPreviousError (base_member);
- if (!IsInterface && (base_member.Modifiers & (Modifiers.ABSTRACT | Modifiers.VIRTUAL | Modifiers.OVERRIDE)) != 0) {
+ if ((base_member.Kind & MemberKind.NestedMask) == 0 && !IsInterface && (base_member.Modifiers & (Modifiers.ABSTRACT | Modifiers.VIRTUAL | Modifiers.OVERRIDE)) != 0) {
Report.Warning (114, 2, Location, "`{0}' hides inherited member `{1}'. To make the current member override that implementation, add the override keyword. Otherwise add the new keyword",
GetSignatureForError (), base_member.GetSignatureForError ());
} else {
}
if (!IsInterface && base_member.IsAbstract && !overrides && !IsStatic) {
- Report.SymbolRelatedToPreviousError (base_member);
- Report.Error (533, Location, "`{0}' hides inherited abstract member `{1}'",
- GetSignatureForError (), base_member.GetSignatureForError ());
+ switch (base_member.Kind) {
+ case MemberKind.Event:
+ case MemberKind.Indexer:
+ case MemberKind.Method:
+ case MemberKind.Property:
+ Report.SymbolRelatedToPreviousError (base_member);
+ Report.Error (533, Location, "`{0}' hides inherited abstract member `{1}'",
+ GetSignatureForError (), base_member.GetSignatureForError ());
+ break;
+ }
}
}