private Func ReadTypeRepresentation()

in ReSharper.FSharp/src/FSharp/FSharp.Psi/src/Metadata/FSharpMetadataReader.cs [623:672]


    private Func<bool, FSharpCompiledTypeRepresentation> ReadTypeRepresentation()
    {
      var tag1 = ReadByteTagValue("tag1", 1);
      if (tag1 == 0)
        return _ => FSharpCompiledTypeRepresentation.Other;

      if (tag1 == 1)
      {
        var tag2 = ReadByteTagValue("tag2", 4);
        if (tag2 == 0)
        {
          ReadFieldsTable();
          return _ => FSharpCompiledTypeRepresentation.Other;
        }

        if (tag2 == 1)
        {
          var caseNames = ReadArray(reader => reader.ReadUnionCaseSpec());
          return _ => FSharpCompiledTypeRepresentation.NewUnion(caseNames);
        }

        if (tag2 == 2)
        {
          ReadIlType();
          return flag =>
          {
            if (!flag)
              return null;

            return null;
          };
        }

        if (tag2 == 3)
        {
          ReadTypeObjectModelData();
          return _ => FSharpCompiledTypeRepresentation.Other;
        }

        if (tag2 == 4)
        {
          ReadType();
          return _ => FSharpCompiledTypeRepresentation.Other;
        }

        throw new InvalidOperationException();
      }

      throw new InvalidOperationException();
    }