// Mono.Util.CorCompare.MissingField // // Author(s): // Nick Drochak (ndrochak@gol.com) // // (C) 2001-2002 Nick Drochak using System; using System.Reflection; namespace Mono.Util.CorCompare { /// /// Represents a class event that is completely missing /// /// /// created by - Nick /// created on - 2/24/2002 10:43:57 PM /// class MissingField : MissingMember { // e.g. public MissingField (MemberInfo infoMono, MemberInfo infoMS) : base (infoMono, infoMS) {} public override string Type { get { return "field"; } } public override NodeStatus Analyze () { base.Analyze (); if (mInfoMono != null && mInfoMS != null) { FieldInfo fiMono = (FieldInfo) mInfoMono; FieldInfo fiMS = (FieldInfo) mInfoMS; AddFakeAttribute (fiMono.IsNotSerialized, fiMS.IsNotSerialized, "System.NonSerializedAttribute"); AddFakeAttribute (fiMono.IsPinvokeImpl, fiMS.IsPinvokeImpl, "System.PInvokeImplAttribute"); AddFlagWarning (fiMono.IsStatic, fiMS.IsStatic, "static"); AddFlagWarning (fiMono.IsLiteral, fiMS.IsLiteral, "const"); AddFlagWarning (fiMono.IsInitOnly, fiMS.IsInitOnly, "readonly"); string strTypeMono = fiMono.FieldType.FullName; string strTypeMS = fiMS.FieldType.FullName; if (strTypeMono != strTypeMS) { Status.AddWarning ("Invalid type: is '"+strTypeMono+"', should be '"+strTypeMS+"'"); } } return m_nodeStatus; } } }