Skip to content

Commit

Permalink
[GH-153] - fixing failing tests
Browse files Browse the repository at this point in the history
  • Loading branch information
tpodolak committed Mar 7, 2021
1 parent 779f13f commit 2e2bdb1
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
using Microsoft.CodeAnalysis.Editing;
using Microsoft.CodeAnalysis.Operations;
using Microsoft.CodeAnalysis.Simplification;
using NSubstitute.Analyzers.Shared.Extensions;

namespace NSubstitute.Analyzers.Shared.CodeFixProviders
{
Expand Down Expand Up @@ -85,7 +86,7 @@ private async Task<Document> CreateChangedDocument(

if (IsArrayParamsArgument(operation))
{
var initializers = GetInitializers(operation);
var initializers = operation.GetSyntaxes();
var updatedParamsArgumentSyntaxNode = CreateUpdatedParamsArgumentSyntaxNode(
syntaxGenerator,
methodSymbol.TypeArguments.FirstOrDefault() ?? methodSymbol.ReceiverType,
Expand Down Expand Up @@ -125,11 +126,6 @@ private bool IsArrayParamsArgument(SemanticModel semanticModel, TArgumentSyntax

private bool IsArrayParamsArgument(IArgumentOperation argumentOperation) => argumentOperation != null && argumentOperation.Parameter.IsParams;

private IEnumerable<SyntaxNode> GetInitializers(IArgumentOperation argumentOperation)
{
return (argumentOperation.Value as IArrayCreationOperation).Initializer.ElementValues.Select(value => value.Syntax);
}

private static TArgumentListSyntax GetArgumentListSyntax(SyntaxNode diagnosticNode) => diagnosticNode.Ancestors().OfType<TArgumentListSyntax>().FirstOrDefault();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,11 @@ private bool ShouldAnalyzeNode(SemanticModel semanticModel, SyntaxNode syntaxNod

var operation = semanticModel.GetOperation(maybeIgnoredExpression);

if (syntaxNode.Parent is TMemberAccessExpressionSyntax || semanticModel.GetOperation(syntaxNode.Parent) is IMemberReferenceOperation)
{
return false;
}

if (operation is IArgumentOperation &&
operation.Parent is IInvocationOperation invocationOperation &&
invocationOperation.TargetMethod.IsReceivedInOrderMethod())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@ namespace NSubstitute.Analyzers.Shared.DiagnosticAnalyzers
{
internal abstract class AbstractSubstitutionNodeFinder : ISubstitutionNodeFinder
{
public IEnumerable<SyntaxNode> Find(SyntaxNodeAnalysisContext syntaxNodeContext, IInvocationOperation invocationOperation, IMethodSymbol invocationExpressionSymbol = null)
public IEnumerable<SyntaxNode> Find(
SyntaxNodeAnalysisContext syntaxNodeContext,
IInvocationOperation invocationOperation,
IMethodSymbol invocationExpressionSymbol = null)
{
if (invocationOperation == null)
{
Expand All @@ -20,7 +23,8 @@ public IEnumerable<SyntaxNode> Find(SyntaxNodeAnalysisContext syntaxNodeContext,
var invocationExpression = invocationOperation.Syntax;
invocationExpressionSymbol ??= syntaxNodeContext.SemanticModel.GetSymbolInfo(invocationExpression).Symbol as IMethodSymbol;

if (invocationExpressionSymbol == null || invocationExpressionSymbol.ContainingAssembly.Name.Equals(MetadataNames.NSubstituteAssemblyName, StringComparison.Ordinal) == false)
if (invocationExpressionSymbol == null ||
invocationExpressionSymbol.ContainingAssembly.Name.Equals(MetadataNames.NSubstituteAssemblyName, StringComparison.Ordinal) == false)
{
return Enumerable.Empty<SyntaxNode>();
}
Expand Down Expand Up @@ -76,7 +80,10 @@ public IEnumerable<SyntaxNode> FindForWhenExpression(SyntaxNodeAnalysisContext s
}
}

public SyntaxNode FindForAndDoesExpression(SyntaxNodeAnalysisContext syntaxNodeContext, IInvocationOperation invocationOperation, IMethodSymbol invocationExpressionSymbol)
public SyntaxNode FindForAndDoesExpression(
SyntaxNodeAnalysisContext syntaxNodeContext,
IInvocationOperation invocationOperation,
IMethodSymbol invocationExpressionSymbol)
{
if (!(invocationOperation.GetSubstituteOperation() is IInvocationOperation parentInvocationExpression))
{
Expand All @@ -91,7 +98,10 @@ public SyntaxNode FindForStandardExpression(IInvocationOperation invocationOpera
return invocationOperation.GetSubstituteOperation().Syntax;
}

public IEnumerable<SyntaxNode> FindForReceivedInOrderExpression(SyntaxNodeAnalysisContext syntaxNodeContext, IInvocationOperation invocationOperation, IMethodSymbol receivedInOrderInvocationSymbol = null)
public IEnumerable<SyntaxNode> FindForReceivedInOrderExpression(
SyntaxNodeAnalysisContext syntaxNodeContext,
IInvocationOperation invocationOperation,
IMethodSymbol receivedInOrderInvocationSymbol = null)
{
var argumentOperation = invocationOperation.GetOrderedArgumentOperationsWithoutInstanceArgument().First();

Expand All @@ -105,7 +115,7 @@ public IEnumerable<SyntaxNode> FindForReceivedInOrderExpression(SyntaxNodeAnalys

private bool ContainsSymbol(ITypeSymbol containerSymbol, ISymbol symbol)
{
return GetBaseTypesAndThis(containerSymbol).Any(typeSymbol => typeSymbol == symbol.ContainingType);
return GetBaseTypesAndThis(containerSymbol).Any(typeSymbol => typeSymbol.Equals(symbol.ContainingType));
}

private static IEnumerable<ITypeSymbol> GetBaseTypesAndThis(ITypeSymbol type)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.CodeAnalysis;
Expand Down

0 comments on commit 2e2bdb1

Please sign in to comment.