From ebb2040b53747eed245aa8afa133d102b3c14608 Mon Sep 17 00:00:00 2001 From: Gleb Lebedev Date: Wed, 29 Jun 2022 12:34:19 +0100 Subject: Skip type collection if property has MessagePackFormatterAttribute --- src/MessagePack.GeneratorCore/CodeAnalysis/TypeCollector.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/MessagePack.GeneratorCore/CodeAnalysis/TypeCollector.cs b/src/MessagePack.GeneratorCore/CodeAnalysis/TypeCollector.cs index 935ceb87..eeedbdad 100644 --- a/src/MessagePack.GeneratorCore/CodeAnalysis/TypeCollector.cs +++ b/src/MessagePack.GeneratorCore/CodeAnalysis/TypeCollector.cs @@ -720,7 +720,12 @@ namespace MessagePackCompiler.CodeAnalysis stringMembers.Add(member.StringKey, member); } - this.CollectCore(item.Type); // recursive collect + var messagePackFormatter = item.GetAttributes().FirstOrDefault(x => x.AttributeClass.ApproximatelyEqual(this.typeReferences.MessagePackFormatterAttribute))?.ConstructorArguments[0]; + + if (messagePackFormatter == null) + { + this.CollectCore(item.Type); // recursive collect + } } foreach (IFieldSymbol item in type.GetAllMembers().OfType()) -- cgit v1.2.3