private object ReadOperation()

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;
    }