public override SyntaxNode VisitParenthesizedExpression(ParenthesizedExpressionSyntax node) { var declaringProperty = node.FirstAncestorOrSelf <PropertyDeclarationSyntax>(); var parentInvocation = node.FirstAncestorOrSelf <InvocationExpressionSyntax>(); if (declaringProperty != null && parentInvocation == null && declaringProperty.Identifier.ToString() == "SelectorExpression" && !string.IsNullOrWhiteSpace(this._metadata.BaseClassDtoName)) { var mapperField = this.GenerateMapperFieldName(this._metadata.BaseClassDtoName); var methodMemberAccess = SyntaxFactory.MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, node, SyntaxFactory.IdentifierName("MergeWith")); var invocationExpression = SyntaxFactory.InvocationExpression(methodMemberAccess) .WithArgumentList(SyntaxFactory.ArgumentList( SyntaxFactory.SeparatedList <ArgumentSyntax>( new[] { SyntaxFactory.Argument($"this.{mapperField}.SelectorExpression".ToMemberAccess()) }))); return(base.Visit(invocationExpression)); } return(base.VisitParenthesizedExpression(node)); }