Skip to content

Commit

Permalink
Merge pull request #41073 from CyrusNajmabadi/extractSimplificatoin
Browse files Browse the repository at this point in the history
Extract simplification helpers into their own class.
  • Loading branch information
sharwell committed Jan 23, 2020
2 parents 615d7ff + c5c4061 commit f6d1934
Show file tree
Hide file tree
Showing 21 changed files with 2,995 additions and 2,869 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ protected override bool IsPredefinedTypeReplaceableWithFrameworkType(PredefinedT
=> node.Keyword.Kind() != SyntaxKind.VoidKeyword;

protected override bool IsInMemberAccessOrCrefReferenceContext(ExpressionSyntax node)
=> node.IsInMemberAccessContext() || node.InsideCrefReference();
=> node.IsDirectChildOfMemberAccessExpression() || node.InsideCrefReference();

protected override string GetLanguageName()
=> LanguageNames.CSharp;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
using System.Threading;
using Microsoft.CodeAnalysis.CodeStyle;
using Microsoft.CodeAnalysis.CSharp.Extensions;
using Microsoft.CodeAnalysis.CSharp.Simplification.Simplifiers;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.Diagnostics;
using Microsoft.CodeAnalysis.Options;
Expand Down Expand Up @@ -75,15 +76,14 @@ internal override bool CanSimplifyTypeNameExpression(
SyntaxNode replacementSyntax;
if (node.IsKind(SyntaxKind.QualifiedCref, out QualifiedCrefSyntax crefSyntax))
{
if (!crefSyntax.TryReduceOrSimplifyExplicitName(model, out var replacement, out issueSpan, optionSet, cancellationToken))
if (!QualifiedCrefSimplifier.Instance.TrySimplify(crefSyntax, model, optionSet, out var replacement, out issueSpan, cancellationToken))
return false;

replacementSyntax = replacement;
}
else
{
var expression = (ExpressionSyntax)node;
if (!expression.TryReduceOrSimplifyExplicitName(model, out var replacement, out issueSpan, optionSet, cancellationToken))
if (!ExpressionSimplifier.Instance.TrySimplify((ExpressionSyntax)node, model, optionSet, out var replacement, out issueSpan, cancellationToken))
return false;

replacementSyntax = replacement;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using System.Collections.Immutable;
using System.Threading;
using Microsoft.CodeAnalysis.CSharp.Extensions;
using Microsoft.CodeAnalysis.CSharp.Simplification.Simplifiers;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.Diagnostics;
using Microsoft.CodeAnalysis.LanguageServices;
Expand Down Expand Up @@ -37,7 +38,7 @@ protected override bool CanSimplifyTypeNameExpression(
SemanticModel model, MemberAccessExpressionSyntax node, OptionSet optionSet,
out TextSpan issueSpan, CancellationToken cancellationToken)
{
return node.TryReduceOrSimplifyExplicitName(model, out _, out issueSpan, optionSet, cancellationToken);
return ExpressionSimplifier.Instance.TrySimplify(node, model, optionSet, out _, out issueSpan, cancellationToken);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Diagnostics.Analyzers
ImmutableArray.Create(SyntaxKind.PredefinedType)

Protected Overrides Function IsInMemberAccessOrCrefReferenceContext(node As ExpressionSyntax) As Boolean
Return node.IsInMemberAccessContext() OrElse node.InsideCrefReference()
Return node.IsDirectChildOfMemberAccessExpression() OrElse node.InsideCrefReference()
End Function

Protected Overrides Function IsPredefinedTypeReplaceableWithFrameworkType(node As PredefinedTypeSyntax) As Boolean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Imports Microsoft.CodeAnalysis.Diagnostics
Imports Microsoft.CodeAnalysis.Options
Imports Microsoft.CodeAnalysis.SimplifyTypeNames
Imports Microsoft.CodeAnalysis.Text
Imports Microsoft.CodeAnalysis.VisualBasic.Simplification.Simplifiers
Imports Microsoft.CodeAnalysis.VisualBasic.Syntax

Namespace Microsoft.CodeAnalysis.VisualBasic.CodeFixes.SimplifyTypeNames
Expand Down Expand Up @@ -68,7 +69,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.CodeFixes.SimplifyTypeNames
End If

Dim replacementSyntax As ExpressionSyntax = Nothing
If Not expression.TryReduceOrSimplifyExplicitName(model, replacementSyntax, issueSpan, optionSet, cancellationToken) Then
If Not ExpressionSimplifier.Instance.TrySimplify(expression, model, optionSet, replacementSyntax, issueSpan, cancellationToken) Then
Return False
End If

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Imports Microsoft.CodeAnalysis.LanguageServices
Imports Microsoft.CodeAnalysis.Options
Imports Microsoft.CodeAnalysis.SimplifyThisOrMe
Imports Microsoft.CodeAnalysis.Text
Imports Microsoft.CodeAnalysis.VisualBasic.Simplification.Simplifiers
Imports Microsoft.CodeAnalysis.VisualBasic.Syntax

Namespace Microsoft.CodeAnalysis.VisualBasic.SimplifyThisOrMe
Expand Down Expand Up @@ -38,7 +39,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.SimplifyThisOrMe
cancellationToken As CancellationToken) As Boolean

Dim replacementSyntax As ExpressionSyntax = Nothing
Return memberAccess.TryReduceOrSimplifyExplicitName(model, replacementSyntax, issueSpan, optionSet, cancellationToken)
Return ExpressionSimplifier.Instance.TrySimplify(memberAccess, model, optionSet, replacementSyntax, issueSpan, cancellationToken)
End Function
End Class
End Namespace
Loading

0 comments on commit f6d1934

Please sign in to comment.