/// <summary> /// Normalizes the <paramref name="declaration" />. /// </summary> public override SyntaxNode VisitMethodDeclaration(MethodDeclarationSyntax declaration) { var originalDeclaration = declaration; var methodSymbol = declaration.GetMethodSymbol(SemanticModel); if (!methodSymbol.ContainingType.IsFaultEffect(SemanticModel) || !methodSymbol.IsOverride) { return(declaration); } var memberAccess = Syntax.MemberAccessExpression(Syntax.BaseExpression(), methodSymbol.Name); var invocation = Syntax.InvocationExpression(memberAccess, CreateInvocationArguments(methodSymbol.Parameters)); declaration = declaration.WithBody(CreateBody(methodSymbol, declaration.Body, invocation)); return(declaration.EnsureLineCount(originalDeclaration)); }