提交 8025e92d 编写于 作者: C Cyrus Najmabadi

use pattern matching

上级 15b00bf6
...@@ -1406,8 +1406,7 @@ public override SyntaxNode SetDocComment(SyntaxNode node, string value) ...@@ -1406,8 +1406,7 @@ public override SyntaxNode SetDocComment(SyntaxNode node, string value)
throw Exceptions.ThrowEInvalidArg(); throw Exceptions.ThrowEInvalidArg();
} }
var docElement = xmlDocument.FirstNode as XElement; if (!(xmlDocument.FirstNode is XElement docElement) ||
if (docElement == null ||
docElement.Name.ToString().ToLower() != "doc") docElement.Name.ToString().ToLower() != "doc")
{ {
throw Exceptions.ThrowEInvalidArg(); throw Exceptions.ThrowEInvalidArg();
...@@ -1900,9 +1899,7 @@ public override EnvDTE80.vsCMParameterKind GetParameterKind(SyntaxNode node) ...@@ -1900,9 +1899,7 @@ public override EnvDTE80.vsCMParameterKind GetParameterKind(SyntaxNode node)
public override SyntaxNode SetParameterKind(SyntaxNode node, EnvDTE80.vsCMParameterKind kind) public override SyntaxNode SetParameterKind(SyntaxNode node, EnvDTE80.vsCMParameterKind kind)
{ {
var parameter = node as ParameterSyntax; if (!(node is ParameterSyntax parameter))
if (parameter == null)
{ {
throw Exceptions.ThrowEFail(); throw Exceptions.ThrowEFail();
} }
...@@ -2013,8 +2010,7 @@ public override bool GetCanOverride(SyntaxNode memberNode) ...@@ -2013,8 +2010,7 @@ public override bool GetCanOverride(SyntaxNode memberNode)
{ {
Debug.Assert(memberNode is MemberDeclarationSyntax); Debug.Assert(memberNode is MemberDeclarationSyntax);
var member = memberNode as MemberDeclarationSyntax; if (!(memberNode is MemberDeclarationSyntax member))
if (member == null)
{ {
throw Exceptions.ThrowEFail(); throw Exceptions.ThrowEFail();
} }
...@@ -2252,8 +2248,7 @@ public override bool GetMustImplement(SyntaxNode memberNode) ...@@ -2252,8 +2248,7 @@ public override bool GetMustImplement(SyntaxNode memberNode)
{ {
Debug.Assert(memberNode is MemberDeclarationSyntax); Debug.Assert(memberNode is MemberDeclarationSyntax);
var member = memberNode as MemberDeclarationSyntax; if (!(memberNode is MemberDeclarationSyntax member))
if (member == null)
{ {
throw Exceptions.ThrowEFail(); throw Exceptions.ThrowEFail();
} }
...@@ -2274,8 +2269,7 @@ public override SyntaxNode SetMustImplement(SyntaxNode memberNode, bool value) ...@@ -2274,8 +2269,7 @@ public override SyntaxNode SetMustImplement(SyntaxNode memberNode, bool value)
memberNode is BasePropertyDeclarationSyntax || memberNode is BasePropertyDeclarationSyntax ||
memberNode is EventFieldDeclarationSyntax); memberNode is EventFieldDeclarationSyntax);
var member = memberNode as MemberDeclarationSyntax; if (!(memberNode is MemberDeclarationSyntax member))
if (member == null)
{ {
throw Exceptions.ThrowEFail(); throw Exceptions.ThrowEFail();
} }
...@@ -2390,8 +2384,7 @@ public override SyntaxNode SetInheritanceKind(SyntaxNode typeNode, EnvDTE80.vsCM ...@@ -2390,8 +2384,7 @@ public override SyntaxNode SetInheritanceKind(SyntaxNode typeNode, EnvDTE80.vsCM
{ {
Debug.Assert(typeNode is ClassDeclarationSyntax); Debug.Assert(typeNode is ClassDeclarationSyntax);
var member = typeNode as MemberDeclarationSyntax; if (!(typeNode is MemberDeclarationSyntax member))
if (member == null)
{ {
throw Exceptions.ThrowEFail(); throw Exceptions.ThrowEFail();
} }
...@@ -2532,8 +2525,7 @@ public override SyntaxNode SetIsAbstract(SyntaxNode memberNode, bool value) ...@@ -2532,8 +2525,7 @@ public override SyntaxNode SetIsAbstract(SyntaxNode memberNode, bool value)
{ {
Debug.Assert(memberNode is MemberDeclarationSyntax); Debug.Assert(memberNode is MemberDeclarationSyntax);
var member = memberNode as MemberDeclarationSyntax; if (!(memberNode is MemberDeclarationSyntax member))
if (member == null)
{ {
throw Exceptions.ThrowEFail(); throw Exceptions.ThrowEFail();
} }
...@@ -2562,8 +2554,7 @@ public override bool GetIsConstant(SyntaxNode variableNode) ...@@ -2562,8 +2554,7 @@ public override bool GetIsConstant(SyntaxNode variableNode)
return true; return true;
} }
var member = GetNodeWithModifiers(variableNode) as MemberDeclarationSyntax; if (!(GetNodeWithModifiers(variableNode) is MemberDeclarationSyntax member))
if (member == null)
{ {
throw Exceptions.ThrowEFail(); throw Exceptions.ThrowEFail();
} }
...@@ -2586,8 +2577,7 @@ public override SyntaxNode SetIsConstant(SyntaxNode variableNode, bool value) ...@@ -2586,8 +2577,7 @@ public override SyntaxNode SetIsConstant(SyntaxNode variableNode, bool value)
return variableNode; return variableNode;
} }
var member = variableNode as MemberDeclarationSyntax; if (!(variableNode is MemberDeclarationSyntax member))
if (member == null)
{ {
throw Exceptions.ThrowEFail(); throw Exceptions.ThrowEFail();
} }
...@@ -2615,8 +2605,7 @@ public override bool GetIsDefault(SyntaxNode propertyNode) ...@@ -2615,8 +2605,7 @@ public override bool GetIsDefault(SyntaxNode propertyNode)
{ {
Debug.Assert(propertyNode is BasePropertyDeclarationSyntax); Debug.Assert(propertyNode is BasePropertyDeclarationSyntax);
var property = propertyNode as BasePropertyDeclarationSyntax; if (!(propertyNode is BasePropertyDeclarationSyntax property))
if (property == null)
{ {
throw Exceptions.ThrowEFail(); throw Exceptions.ThrowEFail();
} }
...@@ -2634,8 +2623,7 @@ public override bool GetIsGeneric(SyntaxNode memberNode) ...@@ -2634,8 +2623,7 @@ public override bool GetIsGeneric(SyntaxNode memberNode)
{ {
Debug.Assert(memberNode is MemberDeclarationSyntax); Debug.Assert(memberNode is MemberDeclarationSyntax);
var member = GetNodeWithModifiers(memberNode) as MemberDeclarationSyntax; if (!(GetNodeWithModifiers(memberNode) is MemberDeclarationSyntax member))
if (member == null)
{ {
throw Exceptions.ThrowEFail(); throw Exceptions.ThrowEFail();
} }
...@@ -2656,8 +2644,7 @@ public override bool GetIsShared(SyntaxNode memberNode, ISymbol symbol) ...@@ -2656,8 +2644,7 @@ public override bool GetIsShared(SyntaxNode memberNode, ISymbol symbol)
Debug.Assert(memberNode is MemberDeclarationSyntax || Debug.Assert(memberNode is MemberDeclarationSyntax ||
memberNode is VariableDeclaratorSyntax); memberNode is VariableDeclaratorSyntax);
var member = GetNodeWithModifiers(memberNode) as MemberDeclarationSyntax; if (!(GetNodeWithModifiers(memberNode) is MemberDeclarationSyntax member))
if (member == null)
{ {
throw Exceptions.ThrowEFail(); throw Exceptions.ThrowEFail();
} }
...@@ -2669,8 +2656,7 @@ public override SyntaxNode SetIsShared(SyntaxNode memberNode, bool value) ...@@ -2669,8 +2656,7 @@ public override SyntaxNode SetIsShared(SyntaxNode memberNode, bool value)
{ {
Debug.Assert(memberNode is MemberDeclarationSyntax); Debug.Assert(memberNode is MemberDeclarationSyntax);
var member = memberNode as MemberDeclarationSyntax; if (!(memberNode is MemberDeclarationSyntax member))
if (member == null)
{ {
throw Exceptions.ThrowEFail(); throw Exceptions.ThrowEFail();
} }
...@@ -3715,11 +3701,9 @@ public override object GetTypeExtender(string name, AbstractCodeType symbol) ...@@ -3715,11 +3701,9 @@ public override object GetTypeExtender(string name, AbstractCodeType symbol)
protected override bool AddBlankLineToMethodBody(SyntaxNode node, SyntaxNode newNode) protected override bool AddBlankLineToMethodBody(SyntaxNode node, SyntaxNode newNode)
{ {
var newMethodDeclaration = newNode as MethodDeclarationSyntax;
return node is MethodDeclarationSyntax methodDeclaration return node is MethodDeclarationSyntax methodDeclaration
&& methodDeclaration.Body == null && methodDeclaration.Body == null
&& newMethodDeclaration != null && newNode is MethodDeclarationSyntax newMethodDeclaration
&& newMethodDeclaration.Body != null; && newMethodDeclaration.Body != null;
} }
......
...@@ -191,8 +191,7 @@ private async Task<string> DetermineIfEventHookupAndGetHandlerNameAsync(Document ...@@ -191,8 +191,7 @@ private async Task<string> DetermineIfEventHookupAndGetHandlerNameAsync(Document
private IEventSymbol GetEventSymbol(SemanticModel semanticModel, SyntaxToken plusEqualsToken, CancellationToken cancellationToken) private IEventSymbol GetEventSymbol(SemanticModel semanticModel, SyntaxToken plusEqualsToken, CancellationToken cancellationToken)
{ {
AssertIsBackground(); AssertIsBackground();
var parentToken = plusEqualsToken.Parent as AssignmentExpressionSyntax; if (!(plusEqualsToken.Parent is AssignmentExpressionSyntax parentToken))
if (parentToken == null)
{ {
return null; return null;
} }
...@@ -254,7 +253,8 @@ private string GetNameObjectPart(IEventSymbol eventSymbol, SyntaxToken plusEqual ...@@ -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, // 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. // because the name is only used as a prefix for the method name.
var typeDeclaration = syntaxFactsService.GetContainingTypeDeclaration(
return syntaxFactsService.GetContainingTypeDeclaration(
semanticModel.SyntaxTree.GetRoot(), semanticModel.SyntaxTree.GetRoot(),
plusEqualsToken.SpanStart) as BaseTypeDeclarationSyntax; plusEqualsToken.SpanStart) as BaseTypeDeclarationSyntax;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册