protected override void Initialize(SonarAnalysisContext context)
        {
            context.RegisterSyntaxNodeActionInNonGenerated(
                c =>
            {
                var property = (PropertyDeclarationSyntax)c.Node;

                var body = GetPropertyBody(property);
                if (body == null)
                {
                    return;
                }

                var walker = new PropertyWalker(c.SemanticModel);

                walker.SafeVisit(body);

                foreach (var location in walker.Locations)
                {
                    c.ReportDiagnosticWhenActive(Diagnostic.Create(s2365, location, property.Identifier.Text));
                }
            },
                SyntaxKind.PropertyDeclaration);
        }