in ReSharper.FSharp/src/FSharp/FSharp.Psi/src/Metadata/FSharpMetadataReader.cs [1287:1381]
private object ReadOperation()
{
var tag = ReadByteTagValue(32);
if (tag == 0)
ReadUnionCaseRef();
else if (tag is 1 or 3)
ReadTypeRef();
else if (tag is 4 or 5)
ReadFieldRef();
else if (tag == 6)
ReadTypeRef();
else if (tag is 7 or 8)
{
ReadUnionCaseRef();
ReadPackedInt();
}
else if (tag is 9 or 10)
{
ReadTypeRef();
ReadPackedInt();
}
else if (tag == 11)
ReadPackedInt();
else if (tag == 12)
{
ReadArray(reader => reader.ReadIlInstruction());
ReadTypes();
}
else if (tag == 14)
ReadUnionCaseRef();
else if (tag == 16)
ReadMemberConstraint();
else if (tag == 17)
{
ReadByteTagValue("tag17", 3);
ReadValueRef();
}
else if (tag == 18)
{
ReadBoolean();
ReadBoolean();
ReadBoolean();
ReadBoolean();
ReadValueRefFlags();
ReadBoolean();
ReadBoolean();
ReadIlMethodRef();
ReadTypes();
ReadTypes();
ReadTypes();
}
else if (tag == 21)
ReadPackedInt();
else if (tag == 22)
ReadBytes();
else if (tag == 25)
ReadFieldRef();
else if (tag == 26)
ReadArray(ReadIntFunc);
else if (tag == 28)
{
ReadUnionCaseRef();
ReadPackedInt();
}
else if (tag == 30)
ReadPackedInt();
else if (tag == 31)
ReadAnonRecord();
else if (tag == 32)
{
ReadAnonRecord();
ReadPackedInt();
}
return null;
}