public TypeSymbol Parse(Interop.IMetadataImport mdImport, IntPtr signatureBytes, int signatureLength, out bool isIndexer) { _mdImport = mdImport; _signatureBytes = signatureBytes; _signatureLength = signatureLength; _signatureIndex = 0; isIndexer = false; byte signatureMarker = Read(); byte typeMarker = (byte)(signatureMarker & 0xF); switch (typeMarker) { case Interop.SIG_FIELD: return(ParseField()); case Interop.SIG_PROPERTY: return(ParseProperty(out isIndexer)); case Interop.SIG_METHOD_DEFAULT: case Interop.SIG_METHOD_C: case Interop.SIG_METHOD_THISCALL: case Interop.SIG_METHOD_VARARG: case Interop.SIG_METHOD_STDCALL: case Interop.SIG_METHOD_FASTCALL: bool isGeneric = ((signatureMarker & Interop.SIG_GENERIC) != 0); return(ParseMethod(isGeneric)); default: // TODO: Error Debug.Fail("Unexpected signature type"); return(null); } }
public TypeSymbol Parse(Interop.IMetadataImport mdImport, IntPtr signatureBytes, int signatureLength, out bool isIndexer) { _mdImport = mdImport; _signatureBytes = signatureBytes; _signatureLength = signatureLength; _signatureIndex = 0; isIndexer = false; byte signatureMarker = Read(); byte typeMarker = (byte)(signatureMarker & 0xF); switch (typeMarker) { case Interop.SIG_FIELD: return ParseField(); case Interop.SIG_PROPERTY: return ParseProperty(out isIndexer); case Interop.SIG_METHOD_DEFAULT: case Interop.SIG_METHOD_C: case Interop.SIG_METHOD_THISCALL: case Interop.SIG_METHOD_VARARG: case Interop.SIG_METHOD_STDCALL: case Interop.SIG_METHOD_FASTCALL: bool isGeneric = ((signatureMarker & Interop.SIG_GENERIC) != 0); return ParseMethod(isGeneric); default: // TODO: Error Debug.Fail("Unexpected signature type"); return null; } }
public TypeSymbol Parse(Interop.IMetadataImport mdImport, IntPtr signatureBytes, int signatureLength) { bool dummy; return(Parse(mdImport, signatureBytes, signatureLength, out dummy)); }