From 24afd2025da12170ba6780030755f4cd525af70b Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sat, 8 Feb 2020 20:16:38 -0800 Subject: [PATCH] Simplify by moving to extensions --- .../CSharpSyntaxFactsService.cs | 6 ---- .../CSharpSyntaxKindsService.cs | 2 ++ .../SyntaxFactsService/ISyntaxFactsService.cs | 2 -- .../ISyntaxFactsServiceExtensions.cs | 30 +++++++++++-------- .../SyntaxFactsService/ISyntaxKindsService.cs | 22 +++++++++----- .../VisualBasicSyntaxFactsService.vb | 8 ----- .../VisualBasicSyntaxKindsService.vb | 11 ++++--- 7 files changed, 41 insertions(+), 40 deletions(-) diff --git a/src/Workspaces/CSharp/Portable/LanguageServices/CSharpSyntaxFactsService.cs b/src/Workspaces/CSharp/Portable/LanguageServices/CSharpSyntaxFactsService.cs index ba41282783e..63e93ae00bd 100644 --- a/src/Workspaces/CSharp/Portable/LanguageServices/CSharpSyntaxFactsService.cs +++ b/src/Workspaces/CSharp/Portable/LanguageServices/CSharpSyntaxFactsService.cs @@ -1483,12 +1483,6 @@ public bool IsPossibleTupleContext(SyntaxTree syntaxTree, int position, Cancella public SyntaxNode GetExpressionOfExpressionStatement(SyntaxNode node) => ((ExpressionStatementSyntax)node).Expression; - public bool IsNullLiteralExpression(SyntaxNode node) - => node.Kind() == SyntaxKind.NullLiteralExpression; - - public bool IsDefaultLiteralExpression(SyntaxNode node) - => node.Kind() == SyntaxKind.DefaultLiteralExpression; - public bool IsBinaryExpression(SyntaxNode node) => node is BinaryExpressionSyntax; diff --git a/src/Workspaces/CSharp/Portable/LanguageServices/CSharpSyntaxKindsService.cs b/src/Workspaces/CSharp/Portable/LanguageServices/CSharpSyntaxKindsService.cs index 13eb05e03c5..50bcad19c59 100644 --- a/src/Workspaces/CSharp/Portable/LanguageServices/CSharpSyntaxKindsService.cs +++ b/src/Workspaces/CSharp/Portable/LanguageServices/CSharpSyntaxKindsService.cs @@ -44,11 +44,13 @@ public override TSyntaxKind Convert(int kind) public override int BaseExpression => (int)SyntaxKind.BaseExpression; public override int CharacterLiteralExpression => (int)SyntaxKind.CharacterLiteralExpression; public override int ConditionalAccessExpression => (int)SyntaxKind.ConditionalAccessExpression; + public override int DefaultLiteralExpression => (int)SyntaxKind.DefaultLiteralExpression; public override int FalseLiteralExpression => (int)SyntaxKind.FalseLiteralExpression; public override int InvocationExpression => (int)SyntaxKind.InvocationExpression; public override int LogicalAndExpression => (int)SyntaxKind.LogicalAndExpression; public override int LogicalOrExpression => (int)SyntaxKind.LogicalOrExpression; public override int ObjectCreationExpression => (int)SyntaxKind.ObjectCreationExpression; + public override int NullLiteralExpression => (int)SyntaxKind.NullLiteralExpression; public override int ParenthesizedExpression => (int)SyntaxKind.ParenthesizedExpression; public override int QueryExpression => (int)SyntaxKind.QueryExpression; public override int ReferenceEqualsExpression => (int)SyntaxKind.EqualsExpression; diff --git a/src/Workspaces/Core/Portable/LanguageServices/SyntaxFactsService/ISyntaxFactsService.cs b/src/Workspaces/Core/Portable/LanguageServices/SyntaxFactsService/ISyntaxFactsService.cs index 73e888cc0a3..e6e177d41d3 100644 --- a/src/Workspaces/Core/Portable/LanguageServices/SyntaxFactsService/ISyntaxFactsService.cs +++ b/src/Workspaces/Core/Portable/LanguageServices/SyntaxFactsService/ISyntaxFactsService.cs @@ -96,8 +96,6 @@ internal interface ISyntaxFactsService : ILanguageService bool IsDocumentationComment(SyntaxNode node); bool IsNumericLiteralExpression(SyntaxNode node); - bool IsNullLiteralExpression(SyntaxNode node); - bool IsDefaultLiteralExpression(SyntaxNode node); bool IsLiteralExpression(SyntaxNode node); string GetText(int kind); diff --git a/src/Workspaces/Core/Portable/LanguageServices/SyntaxFactsService/ISyntaxFactsServiceExtensions.cs b/src/Workspaces/Core/Portable/LanguageServices/SyntaxFactsService/ISyntaxFactsServiceExtensions.cs index 4d94198a6be..6998764bcfb 100644 --- a/src/Workspaces/Core/Portable/LanguageServices/SyntaxFactsService/ISyntaxFactsServiceExtensions.cs +++ b/src/Workspaces/Core/Portable/LanguageServices/SyntaxFactsService/ISyntaxFactsServiceExtensions.cs @@ -223,21 +223,33 @@ public static bool IsQualifiedName(this ISyntaxFactsService syntaxFacts, [NotNul public static bool IsTupleType(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node) => node?.RawKind == syntaxFacts.SyntaxKinds.TupleType; + public static bool IsCharacterLiteralExpression(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node) + => node?.RawKind == syntaxFacts.SyntaxKinds.CharacterLiteralExpression; + + public static bool IsDefaultLiteralExpression(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node) + => node?.RawKind == syntaxFacts.SyntaxKinds.DefaultLiteralExpression; + + public static bool IsFalseLiteralExpression(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node) + => node?.RawKind == syntaxFacts.SyntaxKinds.FalseLiteralExpression; + + public static bool IsNullLiteralExpression(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node) + => node?.RawKind == syntaxFacts.SyntaxKinds.NullLiteralExpression; + + public static bool IsStringLiteralExpression(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node) + => node?.RawKind == syntaxFacts.SyntaxKinds.StringLiteralExpression; + + public static bool IsTrueLiteralExpression(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node) + => node?.RawKind == syntaxFacts.SyntaxKinds.TrueLiteralExpression; + public static bool IsAwaitExpression(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node) => node?.RawKind == syntaxFacts.SyntaxKinds.AwaitExpression; public static bool IsBaseExpression(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node) => node?.RawKind == syntaxFacts.SyntaxKinds.BaseExpression; - public static bool IsCharacterLiteralExpression(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node) - => node?.RawKind == syntaxFacts.SyntaxKinds.CharacterLiteralExpression; - public static bool IsConditionalAccessExpression(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node) => node?.RawKind == syntaxFacts.SyntaxKinds.ConditionalAccessExpression; - public static bool IsFalseLiteralExpression(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node) - => node?.RawKind == syntaxFacts.SyntaxKinds.FalseLiteralExpression; - public static bool IsInvocationExpression(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node) => node?.RawKind == syntaxFacts.SyntaxKinds.InvocationExpression; @@ -259,15 +271,9 @@ public static bool IsQueryExpression(this ISyntaxFactsService syntaxFacts, [NotN public static bool IsSimpleMemberAccessExpression(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node) => node?.RawKind == syntaxFacts.SyntaxKinds.SimpleMemberAccessExpression; - public static bool IsStringLiteralExpression(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node) - => node?.RawKind == syntaxFacts.SyntaxKinds.StringLiteralExpression; - public static bool IsThisExpression(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node) => node?.RawKind == syntaxFacts.SyntaxKinds.ThisExpression; - public static bool IsTrueLiteralExpression(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node) - => node?.RawKind == syntaxFacts.SyntaxKinds.TrueLiteralExpression; - public static bool IsTupleExpression(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node) => node?.RawKind == syntaxFacts.SyntaxKinds.TupleExpression; diff --git a/src/Workspaces/Core/Portable/LanguageServices/SyntaxFactsService/ISyntaxKindsService.cs b/src/Workspaces/Core/Portable/LanguageServices/SyntaxFactsService/ISyntaxKindsService.cs index 8b455be1f49..9bbb8a63907 100644 --- a/src/Workspaces/Core/Portable/LanguageServices/SyntaxFactsService/ISyntaxKindsService.cs +++ b/src/Workspaces/Core/Portable/LanguageServices/SyntaxFactsService/ISyntaxKindsService.cs @@ -35,12 +35,17 @@ internal interface ISyntaxKindsService : ILanguageService int TupleType { get; } + int CharacterLiteralExpression { get; } + int DefaultLiteralExpression { get; } + int FalseLiteralExpression { get; } + int NullLiteralExpression { get; } + int StringLiteralExpression { get; } + int TrueLiteralExpression { get; } + int AnonymousObjectCreationExpression { get; } int AwaitExpression { get; } int BaseExpression { get; } - int CharacterLiteralExpression { get; } int ConditionalAccessExpression { get; } - int FalseLiteralExpression { get; } int InvocationExpression { get; } /// @@ -59,10 +64,8 @@ internal interface ISyntaxKindsService : ILanguageService int ReferenceEqualsExpression { get; } int ReferenceNotEqualsExpression { get; } int SimpleMemberAccessExpression { get; } - int StringLiteralExpression { get; } int TernaryConditionalExpression { get; } int ThisExpression { get; } - int TrueLiteralExpression { get; } int TupleExpression { get; } int EndOfFileToken { get; } @@ -109,12 +112,17 @@ internal abstract class AbstractSyntaxKindsService : ISyntaxKindsService public abstract int TupleType { get; } + public abstract int CharacterLiteralExpression { get; } + public abstract int DefaultLiteralExpression { get; } + public abstract int FalseLiteralExpression { get; } + public abstract int NullLiteralExpression { get; } + public abstract int StringLiteralExpression { get; } + public abstract int TrueLiteralExpression { get; } + public abstract int AnonymousObjectCreationExpression { get; } public abstract int AwaitExpression { get; } public abstract int BaseExpression { get; } - public abstract int CharacterLiteralExpression { get; } public abstract int ConditionalAccessExpression { get; } - public abstract int FalseLiteralExpression { get; } public abstract int InvocationExpression { get; } public abstract int LogicalAndExpression { get; } public abstract int LogicalOrExpression { get; } @@ -124,10 +132,8 @@ internal abstract class AbstractSyntaxKindsService : ISyntaxKindsService public abstract int ReferenceEqualsExpression { get; } public abstract int ReferenceNotEqualsExpression { get; } public abstract int SimpleMemberAccessExpression { get; } - public abstract int StringLiteralExpression { get; } public abstract int TernaryConditionalExpression { get; } public abstract int ThisExpression { get; } - public abstract int TrueLiteralExpression { get; } public abstract int TupleExpression { get; } public abstract int EndOfFileToken { get; } diff --git a/src/Workspaces/VisualBasic/Portable/LanguageServices/VisualBasicSyntaxFactsService.vb b/src/Workspaces/VisualBasic/Portable/LanguageServices/VisualBasicSyntaxFactsService.vb index 23b3658e64d..6aaf689d7a3 100644 --- a/src/Workspaces/VisualBasic/Portable/LanguageServices/VisualBasicSyntaxFactsService.vb +++ b/src/Workspaces/VisualBasic/Portable/LanguageServices/VisualBasicSyntaxFactsService.vb @@ -1509,14 +1509,6 @@ Namespace Microsoft.CodeAnalysis.VisualBasic Return DirectCast(node, ExpressionStatementSyntax).Expression End Function - Public Function IsNullLiteralExpression(node As SyntaxNode) As Boolean Implements ISyntaxFactsService.IsNullLiteralExpression - Return node.Kind() = SyntaxKind.NothingLiteralExpression - End Function - - Public Function IsDefaultLiteralExpression(node As SyntaxNode) As Boolean Implements ISyntaxFactsService.IsDefaultLiteralExpression - Return IsNullLiteralExpression(node) - End Function - Public Function IsBinaryExpression(node As SyntaxNode) As Boolean Implements ISyntaxFactsService.IsBinaryExpression Return TypeOf node Is BinaryExpressionSyntax End Function diff --git a/src/Workspaces/VisualBasic/Portable/LanguageServices/VisualBasicSyntaxKindsService.vb b/src/Workspaces/VisualBasic/Portable/LanguageServices/VisualBasicSyntaxKindsService.vb index 0c5925a7de1..5301f30d2bc 100644 --- a/src/Workspaces/VisualBasic/Portable/LanguageServices/VisualBasicSyntaxKindsService.vb +++ b/src/Workspaces/VisualBasic/Portable/LanguageServices/VisualBasicSyntaxKindsService.vb @@ -37,12 +37,17 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.LanguageServices Public Overrides ReadOnly Property TupleType As Integer = SyntaxKind.TupleType + Public Overrides ReadOnly Property CharacterLiteralExpression As Integer = SyntaxKind.CharacterLiteralExpression + Public Overrides ReadOnly Property DefaultLiteralExpression As Integer = SyntaxKind.NothingLiteralExpression + Public Overrides ReadOnly Property FalseLiteralExpression As Integer = SyntaxKind.FalseLiteralExpression + Public Overrides ReadOnly Property NullLiteralExpression As Integer = SyntaxKind.NothingLiteralExpression + Public Overrides ReadOnly Property StringLiteralExpression As Integer = SyntaxKind.StringLiteralExpression + Public Overrides ReadOnly Property TrueLiteralExpression As Integer = SyntaxKind.TrueLiteralExpression + Public Overrides ReadOnly Property AnonymousObjectCreationExpression As Integer = SyntaxKind.AnonymousObjectCreationExpression Public Overrides ReadOnly Property AwaitExpression As Integer = SyntaxKind.AwaitExpression Public Overrides ReadOnly Property BaseExpression As Integer = SyntaxKind.MyBaseExpression - Public Overrides ReadOnly Property CharacterLiteralExpression As Integer = SyntaxKind.CharacterLiteralExpression Public Overrides ReadOnly Property ConditionalAccessExpression As Integer = SyntaxKind.ConditionalAccessExpression - Public Overrides ReadOnly Property FalseLiteralExpression As Integer = SyntaxKind.FalseLiteralExpression Public Overrides ReadOnly Property InvocationExpression As Integer = SyntaxKind.InvocationExpression Public Overrides ReadOnly Property LogicalAndExpression As Integer = SyntaxKind.AndAlsoExpression Public Overrides ReadOnly Property LogicalOrExpression As Integer = SyntaxKind.OrElseExpression @@ -52,10 +57,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.LanguageServices Public Overrides ReadOnly Property ReferenceEqualsExpression As Integer = SyntaxKind.IsExpression Public Overrides ReadOnly Property ReferenceNotEqualsExpression As Integer = SyntaxKind.IsNotExpression Public Overrides ReadOnly Property SimpleMemberAccessExpression As Integer = SyntaxKind.SimpleMemberAccessExpression - Public Overrides ReadOnly Property StringLiteralExpression As Integer = SyntaxKind.StringLiteralExpression Public Overrides ReadOnly Property TernaryConditionalExpression As Integer = SyntaxKind.TernaryConditionalExpression Public Overrides ReadOnly Property ThisExpression As Integer = SyntaxKind.MeExpression - Public Overrides ReadOnly Property TrueLiteralExpression As Integer = SyntaxKind.TrueLiteralExpression Public Overrides ReadOnly Property TupleExpression As Integer = SyntaxKind.TupleExpression Public Overrides ReadOnly Property EndOfFileToken As Integer = SyntaxKind.EndOfFileToken -- GitLab