internal static bool ArgumentHasDefaultValue(SyntaxNodeSymbolSemanticModelTuple <ArgumentSyntax, IParameterSymbol> argumentMapping, SemanticModel semanticModel) { var argument = argumentMapping.SyntaxNode; var parameter = argumentMapping.Symbol; if (!parameter.HasExplicitDefaultValue) { return(false); } var defaultValue = parameter.ExplicitDefaultValue; var argumentValue = semanticModel.GetConstantValue(argument.Expression); return(argumentValue.HasValue && object.Equals(argumentValue.Value, defaultValue)); }
private static bool IsReturnValueUsed(SyntaxNodeSymbolSemanticModelTuple <InvocationExpressionSyntax, IMethodSymbol> matchingInvocation) => !IsExpressionStatement(matchingInvocation.SyntaxNode.Parent) && !IsActionLambda(matchingInvocation.SyntaxNode.Parent, matchingInvocation.SemanticModel);