private static bool CheckParameter( ParameterSyntax parameter, ExpressionSyntax expression, IParameterSymbol parameterSymbol) { return(!parameterSymbol.IsRefOrOut() && !parameterSymbol.IsParams && string.Equals( parameter.Identifier.ValueText, (expression as IdentifierNameSyntax)?.Identifier.ValueText, StringComparison.Ordinal)); }
private static bool CheckParameter( ParameterSyntax parameter, ArgumentSyntax argument, IParameterSymbol parameterSymbol, SemanticModel semanticModel, CancellationToken cancellationToken) { return(!parameterSymbol.IsRefOrOut() && !parameterSymbol.IsParams && string.Equals( parameter.Identifier.ValueText, (argument.Expression as IdentifierNameSyntax)?.Identifier.ValueText, StringComparison.Ordinal) && semanticModel.GetDeclaredSymbol(parameter, cancellationToken)?.Type.Equals(parameterSymbol.Type) == true); }
private static EqualsValueClauseSyntax GenerateEqualsValueClause( IParameterSymbol parameter, bool isExplicit, bool seenOptional) { if (!parameter.IsParams && !isExplicit && !parameter.IsRefOrOut()) { if (parameter.HasExplicitDefaultValue || seenOptional) { var defaultValue = parameter.HasExplicitDefaultValue ? parameter.ExplicitDefaultValue : null; if (defaultValue is DateTime) { return(null); } return(SyntaxFactory.EqualsValueClause(GenerateEqualsValueClauseWorker(parameter, defaultValue))); } } return(null); }
private static EqualsValueClauseSyntax GenerateEqualsValueClause( IParameterSymbol parameter, bool isExplicit, bool seenOptional) { if (!parameter.IsParams && !isExplicit && !parameter.IsRefOrOut()) { if (parameter.HasExplicitDefaultValue || seenOptional) { var defaultValue = parameter.HasExplicitDefaultValue ? parameter.ExplicitDefaultValue : null; if (defaultValue is DateTime) { return null; } return SyntaxFactory.EqualsValueClause(GenerateEqualsValueClauseWorker(parameter, defaultValue)); } } return null; }
private bool ParametersAreEquivalent(IParameterSymbol x, IParameterSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol> equivalentTypesWithDifferingAssemblies) { return x.IsRefOrOut() == y.IsRefOrOut() && x.Name == y.Name && AreEquivalent(x.Type, y.Type, equivalentTypesWithDifferingAssemblies) && AreEquivalent(x.ContainingSymbol, y.ContainingSymbol, equivalentTypesWithDifferingAssemblies); }