提交 deaf3e79 编写于 作者: I Ivan Basov 提交者: GitHub

Need tests to ensure edit-and-continue works with expression-bodied methods (#20931)

上级 5c4be514
......@@ -2519,8 +2519,8 @@ private void ClassifyUpdate(AccessorDeclarationSyntax oldNode, AccessorDeclarati
Debug.Assert(newNode.Parent.Parent is BasePropertyDeclarationSyntax);
ClassifyMethodBodyRudeUpdate(
oldNode.Body,
newNode.Body,
(SyntaxNode)oldNode.Body ?? oldNode.ExpressionBody?.Expression,
(SyntaxNode)newNode.Body ?? newNode.ExpressionBody?.Expression,
containingMethodOpt: null,
containingType: (TypeDeclarationSyntax)newNode.Parent.Parent.Parent);
}
......@@ -2546,8 +2546,8 @@ private void ClassifyUpdate(ConstructorDeclarationSyntax oldNode, ConstructorDec
}
ClassifyMethodBodyRudeUpdate(
oldNode.Body,
newNode.Body,
(SyntaxNode)oldNode.Body ?? oldNode.ExpressionBody?.Expression,
(SyntaxNode)newNode.Body ?? newNode.ExpressionBody?.Expression,
containingMethodOpt: null,
containingType: (TypeDeclarationSyntax)newNode.Parent);
}
......@@ -2555,8 +2555,8 @@ private void ClassifyUpdate(ConstructorDeclarationSyntax oldNode, ConstructorDec
private void ClassifyUpdate(DestructorDeclarationSyntax oldNode, DestructorDeclarationSyntax newNode)
{
ClassifyMethodBodyRudeUpdate(
oldNode.Body,
newNode.Body,
(SyntaxNode)oldNode.Body ?? oldNode.ExpressionBody?.Expression,
(SyntaxNode)newNode.Body ?? newNode.ExpressionBody?.Expression,
containingMethodOpt: null,
containingType: (TypeDeclarationSyntax)newNode.Parent);
}
......
......@@ -187,7 +187,13 @@ public static SyntaxNode TryGetEffectiveGetterBody(ArrowExpressionClauseSyntax p
return propertyBody.Expression;
}
return accessorList?.Accessors.Where(a => a.IsKind(SyntaxKind.GetAccessorDeclaration)).FirstOrDefault()?.Body;
var firstGetter = accessorList?.Accessors.Where(a => a.IsKind(SyntaxKind.GetAccessorDeclaration)).FirstOrDefault();
if (firstGetter == null)
{
return null;
}
return (SyntaxNode)firstGetter.Body ?? firstGetter.ExpressionBody?.Expression;
}
public static SyntaxTokenList? TryGetFieldOrPropertyModifiers(SyntaxNode node)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册