Source code generation not working with partial record, only with partial class
Using a basic incremental source code generator to generate some serializer-like functionality.
Generated Code:
using System;
using System.Collections.Generic;
using A.Net;
namespace A.Proto;
public partial record ChatMsgReq : IDecodePacket<ChatMsgReq>, IEncodePacket
{
public static ChatMsgReq DecodePacket(ref PacketReader r)
{
return new ChatMsgReq
{
Ticks = r.ReadInt(),
Msg = r.ReadString(),
OnlyBalloon = r.ReadBool(),
};
}
public void EncodePacket(ref PacketWriter w)
{
w.WriteInt(Ticks);
w.WriteString(Msg);
w.WriteBool(OnlyBalloon);
}
}c#
// <auto-generated/>
using System;
using System.Collections.Generic;
using A.Net;
namespace A.Proto;
public partial class ChatMsgReq : IDecodePacket<ChatMsgReq>, IEncodePacket
{
public static ChatMsgReq DecodePacket(ref PacketReader r)
{
return new ChatMsgReq
{
Ticks = r.ReadInt(),
Msg = r.ReadString(),
OnlyBalloon = r.ReadBool(),
};
}
public void EncodePacket(ref PacketWriter w)
{
w.WriteInt(Ticks);
w.WriteString(Msg);
w.WriteBool(OnlyBalloon);
}
}
Any Idea why this isn't working for records?
Generated Code:
- Record:
```c#
using System;
using System.Collections.Generic;
using A.Net;
namespace A.Proto;
public partial record ChatMsgReq : IDecodePacket<ChatMsgReq>, IEncodePacket
{
public static ChatMsgReq DecodePacket(ref PacketReader r)
{
return new ChatMsgReq
{
Ticks = r.ReadInt(),
Msg = r.ReadString(),
OnlyBalloon = r.ReadBool(),
};
}
public void EncodePacket(ref PacketWriter w)
{
w.WriteInt(Ticks);
w.WriteString(Msg);
w.WriteBool(OnlyBalloon);
}
}c#
// <auto-generated/>
using System;
using System.Collections.Generic;
using A.Net;
namespace A.Proto;
public partial class ChatMsgReq : IDecodePacket<ChatMsgReq>, IEncodePacket
{
public static ChatMsgReq DecodePacket(ref PacketReader r)
{
return new ChatMsgReq
{
Ticks = r.ReadInt(),
Msg = r.ReadString(),
OnlyBalloon = r.ReadBool(),
};
}
public void EncodePacket(ref PacketWriter w)
{
w.WriteInt(Ticks);
w.WriteString(Msg);
w.WriteBool(OnlyBalloon);
}
}
``
With class I can access DecodePacket and EncodePacket just fine, however for the record I'm unable to access It. Also If I copy the partial record without any source code just below the original record` It works fine aswell.Any Idea why this isn't working for records?