From 077c9255874020080d7cf40b4a7cd2411ba19096 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 14 Jan 2020 11:05:23 -0800 Subject: [PATCH] Rewrite IsAliasReplaceableExpression as iterative instead of recursive --- .../Portable/Extensions/ExpressionSyntaxExtensions.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Workspaces/CSharp/Portable/Extensions/ExpressionSyntaxExtensions.cs b/src/Workspaces/CSharp/Portable/Extensions/ExpressionSyntaxExtensions.cs index 1357de75112..5f39d5923af 100644 --- a/src/Workspaces/CSharp/Portable/Extensions/ExpressionSyntaxExtensions.cs +++ b/src/Workspaces/CSharp/Portable/Extensions/ExpressionSyntaxExtensions.cs @@ -1092,6 +1092,11 @@ private static bool PreferPredefinedTypeKeywordInMemberAccess(ExpressionSyntax e private static bool IsAliasReplaceableExpression(ExpressionSyntax expression) { + while (expression.IsKind(SyntaxKind.SimpleMemberAccessExpression, out MemberAccessExpressionSyntax currentMember)) + { + expression = currentMember.Expression; + } + if (expression.Kind() == SyntaxKind.IdentifierName || expression.Kind() == SyntaxKind.QualifiedName || expression.Kind() == SyntaxKind.AliasQualifiedName || @@ -1100,9 +1105,6 @@ private static bool IsAliasReplaceableExpression(ExpressionSyntax expression) return true; } - if (expression.IsKind(SyntaxKind.SimpleMemberAccessExpression, out MemberAccessExpressionSyntax memberAccess)) - return IsAliasReplaceableExpression(memberAccess.Expression); - return false; } -- GitLab