From 8025e92dd9ae4ef9fb77aac336e5d88f498ef308 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Thu, 18 Jul 2019 13:29:01 -0700 Subject: [PATCH] use pattern matching --- .../Impl/CodeModel/CSharpCodeModelService.cs | 44 ++++++------------- ...HookupSessionManager_EventHookupSession.cs | 6 +-- 2 files changed, 17 insertions(+), 33 deletions(-) diff --git a/src/VisualStudio/CSharp/Impl/CodeModel/CSharpCodeModelService.cs b/src/VisualStudio/CSharp/Impl/CodeModel/CSharpCodeModelService.cs index cbc27ffdc69..6f29821ee09 100644 --- a/src/VisualStudio/CSharp/Impl/CodeModel/CSharpCodeModelService.cs +++ b/src/VisualStudio/CSharp/Impl/CodeModel/CSharpCodeModelService.cs @@ -1406,8 +1406,7 @@ public override SyntaxNode SetDocComment(SyntaxNode node, string value) throw Exceptions.ThrowEInvalidArg(); } - var docElement = xmlDocument.FirstNode as XElement; - if (docElement == null || + if (!(xmlDocument.FirstNode is XElement docElement) || docElement.Name.ToString().ToLower() != "doc") { throw Exceptions.ThrowEInvalidArg(); @@ -1900,9 +1899,7 @@ public override EnvDTE80.vsCMParameterKind GetParameterKind(SyntaxNode node) public override SyntaxNode SetParameterKind(SyntaxNode node, EnvDTE80.vsCMParameterKind kind) { - var parameter = node as ParameterSyntax; - - if (parameter == null) + if (!(node is ParameterSyntax parameter)) { throw Exceptions.ThrowEFail(); } @@ -2013,8 +2010,7 @@ public override bool GetCanOverride(SyntaxNode memberNode) { Debug.Assert(memberNode is MemberDeclarationSyntax); - var member = memberNode as MemberDeclarationSyntax; - if (member == null) + if (!(memberNode is MemberDeclarationSyntax member)) { throw Exceptions.ThrowEFail(); } @@ -2252,8 +2248,7 @@ public override bool GetMustImplement(SyntaxNode memberNode) { Debug.Assert(memberNode is MemberDeclarationSyntax); - var member = memberNode as MemberDeclarationSyntax; - if (member == null) + if (!(memberNode is MemberDeclarationSyntax member)) { throw Exceptions.ThrowEFail(); } @@ -2274,8 +2269,7 @@ public override SyntaxNode SetMustImplement(SyntaxNode memberNode, bool value) memberNode is BasePropertyDeclarationSyntax || memberNode is EventFieldDeclarationSyntax); - var member = memberNode as MemberDeclarationSyntax; - if (member == null) + if (!(memberNode is MemberDeclarationSyntax member)) { throw Exceptions.ThrowEFail(); } @@ -2390,8 +2384,7 @@ public override SyntaxNode SetInheritanceKind(SyntaxNode typeNode, EnvDTE80.vsCM { Debug.Assert(typeNode is ClassDeclarationSyntax); - var member = typeNode as MemberDeclarationSyntax; - if (member == null) + if (!(typeNode is MemberDeclarationSyntax member)) { throw Exceptions.ThrowEFail(); } @@ -2532,8 +2525,7 @@ public override SyntaxNode SetIsAbstract(SyntaxNode memberNode, bool value) { Debug.Assert(memberNode is MemberDeclarationSyntax); - var member = memberNode as MemberDeclarationSyntax; - if (member == null) + if (!(memberNode is MemberDeclarationSyntax member)) { throw Exceptions.ThrowEFail(); } @@ -2562,8 +2554,7 @@ public override bool GetIsConstant(SyntaxNode variableNode) return true; } - var member = GetNodeWithModifiers(variableNode) as MemberDeclarationSyntax; - if (member == null) + if (!(GetNodeWithModifiers(variableNode) is MemberDeclarationSyntax member)) { throw Exceptions.ThrowEFail(); } @@ -2586,8 +2577,7 @@ public override SyntaxNode SetIsConstant(SyntaxNode variableNode, bool value) return variableNode; } - var member = variableNode as MemberDeclarationSyntax; - if (member == null) + if (!(variableNode is MemberDeclarationSyntax member)) { throw Exceptions.ThrowEFail(); } @@ -2615,8 +2605,7 @@ public override bool GetIsDefault(SyntaxNode propertyNode) { Debug.Assert(propertyNode is BasePropertyDeclarationSyntax); - var property = propertyNode as BasePropertyDeclarationSyntax; - if (property == null) + if (!(propertyNode is BasePropertyDeclarationSyntax property)) { throw Exceptions.ThrowEFail(); } @@ -2634,8 +2623,7 @@ public override bool GetIsGeneric(SyntaxNode memberNode) { Debug.Assert(memberNode is MemberDeclarationSyntax); - var member = GetNodeWithModifiers(memberNode) as MemberDeclarationSyntax; - if (member == null) + if (!(GetNodeWithModifiers(memberNode) is MemberDeclarationSyntax member)) { throw Exceptions.ThrowEFail(); } @@ -2656,8 +2644,7 @@ public override bool GetIsShared(SyntaxNode memberNode, ISymbol symbol) Debug.Assert(memberNode is MemberDeclarationSyntax || memberNode is VariableDeclaratorSyntax); - var member = GetNodeWithModifiers(memberNode) as MemberDeclarationSyntax; - if (member == null) + if (!(GetNodeWithModifiers(memberNode) is MemberDeclarationSyntax member)) { throw Exceptions.ThrowEFail(); } @@ -2669,8 +2656,7 @@ public override SyntaxNode SetIsShared(SyntaxNode memberNode, bool value) { Debug.Assert(memberNode is MemberDeclarationSyntax); - var member = memberNode as MemberDeclarationSyntax; - if (member == null) + if (!(memberNode is MemberDeclarationSyntax member)) { throw Exceptions.ThrowEFail(); } @@ -3715,11 +3701,9 @@ public override object GetTypeExtender(string name, AbstractCodeType symbol) protected override bool AddBlankLineToMethodBody(SyntaxNode node, SyntaxNode newNode) { - var newMethodDeclaration = newNode as MethodDeclarationSyntax; - return node is MethodDeclarationSyntax methodDeclaration && methodDeclaration.Body == null - && newMethodDeclaration != null + && newNode is MethodDeclarationSyntax newMethodDeclaration && newMethodDeclaration.Body != null; } diff --git a/src/VisualStudio/CSharp/Impl/EventHookup/EventHookupSessionManager_EventHookupSession.cs b/src/VisualStudio/CSharp/Impl/EventHookup/EventHookupSessionManager_EventHookupSession.cs index 49913c3c957..f26809ad643 100644 --- a/src/VisualStudio/CSharp/Impl/EventHookup/EventHookupSessionManager_EventHookupSession.cs +++ b/src/VisualStudio/CSharp/Impl/EventHookup/EventHookupSessionManager_EventHookupSession.cs @@ -191,8 +191,7 @@ private async Task DetermineIfEventHookupAndGetHandlerNameAsync(Document private IEventSymbol GetEventSymbol(SemanticModel semanticModel, SyntaxToken plusEqualsToken, CancellationToken cancellationToken) { AssertIsBackground(); - var parentToken = plusEqualsToken.Parent as AssignmentExpressionSyntax; - if (parentToken == null) + if (!(plusEqualsToken.Parent is AssignmentExpressionSyntax parentToken)) { return null; } @@ -254,7 +253,8 @@ private string GetNameObjectPart(IEventSymbol eventSymbol, SyntaxToken plusEqual // Note: For generic, it's ok(it's even a good idea) to exclude type variables, // because the name is only used as a prefix for the method name. - var typeDeclaration = syntaxFactsService.GetContainingTypeDeclaration( + + return syntaxFactsService.GetContainingTypeDeclaration( semanticModel.SyntaxTree.GetRoot(), plusEqualsToken.SpanStart) as BaseTypeDeclarationSyntax; -- GitLab