private static bool IsPropertyCandidate(PropertyDeclarationSyntax propertySyntax, SemanticModel semanticModel)
        {
            if (HasDocumentationComment(propertySyntax))
            {
                return(false);
            }

            var propertySymbol = semanticModel.GetDeclaredSymbol(propertySyntax);

            if (propertySymbol == null ||
                !propertySymbol.IsOverride ||
                propertySymbol.IsSealed ||
                propertySymbol.OverriddenProperty == null)
            {
                return(false);
            }

            if (propertySymbol.GetMethod != null && propertySymbol.OverriddenProperty.GetMethod == null)
            {
                return(false);
            }

            if (propertySymbol.SetMethod != null && propertySymbol.OverriddenProperty.SetMethod == null)
            {
                return(false);
            }

            if (SymbolHelper.IsAnyAttributeInOverridingChain(propertySymbol))
            {
                return(false);
            }

            return(CheckGetAccessorIfAny(propertySyntax, propertySymbol, semanticModel) &&
                   CheckSetAccessorIfAny(propertySyntax, propertySymbol, semanticModel));
        }
 private static bool IsMethodSymbolExcluded(IMethodSymbol methodSymbol)
 {
     return
         (methodSymbol == null ||
          !methodSymbol.IsOverride ||
          methodSymbol.IsSealed ||
          methodSymbol.OverriddenMethod == null ||
          IgnoredMethodNames.Contains(methodSymbol.Name) ||
          methodSymbol.Parameters.Any(p => p.HasExplicitDefaultValue) ||
          methodSymbol.OverriddenMethod.Parameters.Any(p => p.HasExplicitDefaultValue) ||
          SymbolHelper.IsAnyAttributeInOverridingChain(methodSymbol));
 }
Exemple #3
0
 public void IsAnyAttributeInOverridingChain_WhenPropertySymbolIsNull_ReturnsFalse() =>
 SymbolHelper.IsAnyAttributeInOverridingChain((IPropertySymbol)null).Should().BeFalse();