public override void VisitIndexerDeclaration(IndexerDeclarationSyntax node) { base.VisitIndexerDeclaration(node); if (node.Modifiers.Any(m => m.IsKind(SyntaxKind.VirtualKeyword) || m.IsKind(SyntaxKind.NewKeyword) || m.IsKind(SyntaxKind.PartialKeyword))) { return; } if (node.GetBodies().IsEmpty()) { return; } var member = model.GetDeclaredSymbol(node); if (member.IsOverride) { return; } if (member.ExplicitInterfaceImplementations().Length > 0) { return; } if (GetImplementingInterface(member, member.ContainingType) != null) { return; } Analyze(node.ParameterList.Parameters, node.GetBodies(), node.Kind()); }