Beispiel #1
0
 private static bool MayReturnNull(MethodDeclarationSyntax node, SemanticModel model)
 {
     return(!(NullUtilities.ReturnsVoid(node) ||
              HasNullOrEmptyBody(node)) &&
            (HasCanBeNullAttribute(node) ||
             NullUtilities.ReturnsNull(node, model)));
 }
Beispiel #2
0
        private bool GetterReturnsNull(PropertyDeclarationSyntax node)
        {
            var propertySymbol = _semanticModel.GetDeclaredSymbol(node);

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

            var getter       = propertySymbol.GetMethod;
            var getterSyntax = getter.DeclaringSyntaxReferences.FirstOrDefault()?.GetSyntax() as AccessorDeclarationSyntax;

            if (getterSyntax?.Body != null)
            {
                return(NullUtilities.ReturnsNull(getterSyntax.Body.Statements, _semanticModel));
            }
            if (getterSyntax?.ExpressionBody != null)
            {
                return(NullUtilities.CanBeNull(getterSyntax.ExpressionBody.Expression, _semanticModel));
            }
            return(false);
        }