**** Merged from MCS ****
[mono-project.git] / mcs / tools / corcompare / MissingMethod.cs
blob306bbb66e8158c588f9a315b9d577463ea7570d3
1 // Mono.Util.CorCompare.MissingMethod
2 //
3 // Author(s):
4 // Nick Drochak (ndrochak@gol.com)
5 //
6 // (C) 2001-2002 Nick Drochak
8 using System;
9 using System.Reflection;
10 using System.Text;
12 namespace Mono.Util.CorCompare {
14 /// <summary>
15 /// Represents a class method that is completely missing
16 /// </summary>
17 /// <remarks>
18 /// created by - Nick
19 /// created on - 2/20/2002 10:43:57 PM
20 /// </remarks>
21 class MissingMethod : MissingMember
23 // e.g. <method name="Equals" status="missing"/>
24 public MissingMethod (MemberInfo infoMono, MemberInfo infoMS) : base (infoMono, infoMS) {}
26 public override string Name {
27 get {
28 string s = Info.ToString();
29 int index = s.IndexOf(' ');
30 return s.Substring(index + 1);
34 public override string Type {
35 get {
36 return "method";
40 public override NodeStatus Analyze ()
42 m_nodeStatus = base.Analyze ();
44 if (mInfoMono != null && mInfoMS != null)
46 MethodBase miMono = (MethodBase) mInfoMono;
47 MethodBase miMS = (MethodBase) mInfoMS;
49 AddFlagWarning (miMono.IsAbstract, miMS.IsAbstract, "abstract");
50 AddFlagWarning (miMono.IsStatic, miMS.IsStatic, "static");
51 AddFlagWarning (miMono.IsVirtual && !miMono.IsFinal, miMS.IsVirtual && !miMS.IsFinal, "virtual");
52 AddFlagWarning (miMono.IsConstructor, miMS.IsConstructor, "a constructor");
53 //AddFlagWarning (miMono.IsFinal, miMS.IsFinal, "sealed");
55 return m_nodeStatus;