From 5358471574404a4103c386a9c5bc18c4fec25fcc Mon Sep 17 00:00:00 2001 From: Wizou <11647984+wiz0u@users.noreply.github.com> Date: Mon, 2 Jun 2025 02:41:06 +0200 Subject: [PATCH] Fix fields serialization order on KeyboardButtonSimpleWebView --- generator/MTProtoGenerator.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/generator/MTProtoGenerator.cs b/generator/MTProtoGenerator.cs index 5cc7719..4fd169d 100644 --- a/generator/MTProtoGenerator.cs +++ b/generator/MTProtoGenerator.cs @@ -54,7 +54,6 @@ public class MTProtoGenerator : IIncrementalGenerator var tldef = symbol.GetAttributes().FirstOrDefault(a => a.AttributeClass == tlDefAttribute); if (tldef == null) continue; var id = (uint)tldef.ConstructorArguments[0].Value; - var inheritBefore = (bool?)tldef.NamedArguments.FirstOrDefault(k => k.Key == "inheritBefore").Value.Value ?? false; StringBuilder writeTl = new(), readTL = new(); var ns = symbol.BaseType.ContainingNamespace.ToString(); var name = symbol.BaseType.Name; @@ -105,8 +104,12 @@ public class MTProtoGenerator : IIncrementalGenerator .AppendLine($"\t\t\twriter.Write(0x{id:X8});"); var members = symbol.GetMembers().ToList(); for (var parent = symbol.BaseType; parent != object_; parent = parent.BaseType) + { + var inheritBefore = (bool?)tldef.NamedArguments.FirstOrDefault(k => k.Key == "inheritBefore").Value.Value ?? false; if (inheritBefore) members.InsertRange(0, parent.GetMembers()); else members.AddRange(parent.GetMembers()); + tldef = parent.GetAttributes().FirstOrDefault(a => a.AttributeClass == tlDefAttribute); + } foreach (var member in members.OfType()) { if (member.DeclaredAccessibility != Accessibility.Public || member.IsStatic) continue;