diff options
author | Andrew Arnott <andrewarnott@live.com> | 2022-07-23 16:39:59 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-23 16:39:59 +0300 |
commit | 8fe5fc94669f9cc1d3feb2bdbc5d5523e54d0e9a (patch) | |
tree | 2aaacf0d02af52bc3a1c34015c1fa45eadfa0777 | |
parent | eab5122e95f32443c686548e646523038ceb7543 (diff) | |
parent | ebb2040b53747eed245aa8afa133d102b3c14608 (diff) |
Merge pull request #1462 from gllebede/user/gllebede/skip_properties_with_MessagePackFormatterAttribute
Skip type collection if property has MessagePackFormatterAttribute
-rw-r--r-- | src/MessagePack.GeneratorCore/CodeAnalysis/TypeCollector.cs | 7 |
1 files changed, 6 insertions, 1 deletions
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<IFieldSymbol>()) |