public static bool AssignsParameterUsingIsNullOrEmptyCheck(this TwoFerSolution twoFerSolution) => twoFerSolution.ParameterAssignedUsingStatement( TwoFerAssignParameterStatement( TwoFerParameterIsNullOrEmptyConditionalExpression(twoFerSolution), TwoFerParameterIdentifierName(twoFerSolution)));
public static IdentifierNameSyntax TwoFerParameterIdentifierName(TwoFerSolution solution) => IdentifierName(solution.SpeakMethodParameterName);
public static ConditionalExpressionSyntax TwoFerConditionalExpressionWithNullCheck(TwoFerSolution solution) => TwoFerConditionalExpression( EqualsExpression( IdentifierName(solution.SpeakMethodParameterName), NullLiteralExpression()), IdentifierName(solution.SpeakMethodParameterName));
private static bool ReturnsStringConcatenationWithTernaryOperator(this TwoFerSolution twoFerSolution) => twoFerSolution.ReturnsStringConcatenationWithNullCheck() || twoFerSolution.ReturnsStringConcatenationWithIsNullOrEmptyCheck() || twoFerSolution.ReturnsStringConcatenationWithIsNullOrWhiteSpaceCheck();
public static ConditionalExpressionSyntax TwoFerParameterIsNullOrWhiteSpaceConditionalExpression(TwoFerSolution solution) => TwoFerConditionalExpression( TwoFerIsNullOrWhiteSpaceInvocationExpression(solution), TwoFerParameterIdentifierName(solution));
public static bool UsesInvalidDefaultValue(this TwoFerSolution twoFerSolution) => !twoFerSolution.InputParameter.Default.Value.IsEquivalentWhenNormalized(NullLiteralExpression()) && !twoFerSolution.InputParameter.Default.Value.IsEquivalentWhenNormalized(StringLiteralExpression("you"));
private static bool ReturnsStringConcatenationWithDefaultValue(this TwoFerSolution twoFerSolution) => twoFerSolution.Returns( TwoFerStringConcatenationExpression( TwoFerParameterIdentifierName(twoFerSolution)));
public static bool AssignsVariableUsingNullCoalescingOperator(this TwoFerSolution twoFerSolution) => twoFerSolution.AssignsVariableUsingExpression( TwoFerCoalesceExpression( TwoFerParameterIdentifierName(twoFerSolution)));
public static bool AssignsVariableUsingIsNullOrWhiteSpaceCheck(this TwoFerSolution twoFerSolution) => twoFerSolution.AssignsVariableUsingExpression( TwoFerParameterIsNullOrWhiteSpaceConditionalExpression(twoFerSolution));
public static bool AssignsVariable(this TwoFerSolution twoFerSolution) => twoFerSolution.Variable != null;
public static bool AssignsVariableUsingKnownInitializer(this TwoFerSolution twoFerSolution) => twoFerSolution.AssignsVariableUsingNullCoalescingOperator() || twoFerSolution.AssignsVariableUsingNullCheck() || twoFerSolution.AssignsVariableUsingIsNullOrEmptyCheck() || twoFerSolution.AssignsVariableUsingIsNullOrWhiteSpaceCheck();
private static StatementSyntax AssignmentStatement(this TwoFerSolution twoFerSolution) => twoFerSolution.SpeakMethod.Body.Statements[0];
private static bool ParameterAssignedUsingStatement(this TwoFerSolution twoFerSolution, SyntaxNode statement) => twoFerSolution.AssignmentStatement().IsEquivalentWhenNormalized(statement);
public static bool AssignsParameterUsingIfIsNullOrWhiteSpaceCheck(this TwoFerSolution twoFerSolution) => twoFerSolution.ParameterAssignedUsingStatement( TwoFerAssignParameterIfStatement( TwoFerIsNullOrWhiteSpaceInvocationExpression(twoFerSolution), TwoFerParameterIdentifierName(twoFerSolution)));
public static bool UsesSingleLine(this TwoFerSolution twoFerSolution) => twoFerSolution.SpeakMethod.SingleLine();
private static bool AssignsVariableUsingExpression(this TwoFerSolution twoFerSolution, ExpressionSyntax initializer) => twoFerSolution.Variable.Initializer.IsEquivalentWhenNormalized( EqualsValueClause(initializer));
public static bool UsesExpressionBody(this TwoFerSolution twoFerSolution) => twoFerSolution.SpeakMethod.IsExpressionBody();
public static bool ReturnsStringInterpolationWithVariable(this TwoFerSolution twoFerSolution) => twoFerSolution.Returns( TwoFerInterpolatedStringExpression( TwoFerVariableIdentifierName(twoFerSolution)));
public static bool ReturnsStringConcatenation(this TwoFerSolution twoFerSolution) => twoFerSolution.ReturnsStringConcatenationWithDefaultValue() || twoFerSolution.ReturnsStringConcatenationWithNullCoalescingOperator() || twoFerSolution.ReturnsStringConcatenationWithTernaryOperator();
public static bool ReturnsStringFormatWithVariable(this TwoFerSolution twoFerSolution) => twoFerSolution.Returns( TwoFerStringFormatInvocationExpression( TwoFerVariableIdentifierName(twoFerSolution)));
private static bool ReturnsStringConcatenationWithNullCoalescingOperator(this TwoFerSolution twoFerSolution) => twoFerSolution.Returns( TwoFerStringConcatenationExpression( ParenthesizedExpression( TwoFerCoalesceExpression( TwoFerParameterIdentifierName(twoFerSolution)))));
public static bool UsesStringConcat(this TwoFerSolution twoFerSolution) => twoFerSolution.SpeakMethod.InvokesMethod(StringMemberAccessExpression(IdentifierName("Concat")));
public static ConditionalExpressionSyntax TwoFerParameterIsNullConditionalExpression(TwoFerSolution solution) => TwoFerConditionalExpression( TwoFerParameterIsNullExpression(solution), TwoFerParameterIdentifierName(solution));
public static bool UsesStringReplace(this TwoFerSolution twoFerSolution) => twoFerSolution.SpeakMethod.InvokesMethod(IdentifierName("Replace"));
public static BinaryExpressionSyntax TwoFerParameterIsNullExpression(TwoFerSolution solution) => EqualsExpression( TwoFerParameterIdentifierName(solution), NullLiteralExpression());
public static bool AssignsToParameter(this TwoFerSolution twoFerSolution) => twoFerSolution.SpeakMethod.AssignsToParameter(twoFerSolution.InputParameter);
public static IdentifierNameSyntax TwoFerVariableIdentifierName(TwoFerSolution solution) => IdentifierName(solution.TwoFerVariableName);
public static bool NoDefaultValue(this TwoFerSolution twoFerSolution) => twoFerSolution.SpeakMethod.ParameterList.Parameters.All(parameter => parameter.Default == null);
public static InvocationExpressionSyntax TwoFerIsNullOrEmptyInvocationExpression(TwoFerSolution twoFerSolution) => TwoFerStringInvocationExpression(twoFerSolution, IdentifierName("IsNullOrEmpty"));
public static bool UsesOverloads(this TwoFerSolution twoFerSolution) => twoFerSolution.TwoFerClass.GetMethods("Speak").Count() > 1;