private bool NodeMatchesExpression( SemanticModel originalSemanticModel, SemanticModel currentSemanticModel, ISyntaxFactsService syntaxFacts, TExpressionSyntax expressionInOriginal, TExpressionSyntax nodeInCurrent, bool allOccurrences, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); if (nodeInCurrent == expressionInOriginal) { return(true); } else { if (allOccurrences && this.CanReplace(nodeInCurrent)) { return(SemanticEquivalence.AreSemanticallyEquivalent( originalSemanticModel, currentSemanticModel, expressionInOriginal, nodeInCurrent)); } } return(false); }