private static PropertyDeclarationSyntax ReplaceMethodWithProperty(MethodDeclarationSyntax methodDeclaration, string propertyName) { SyntaxToken identifier = Identifier(propertyName).WithTriviaFrom(methodDeclaration.Identifier); ParameterListSyntax parameterList = methodDeclaration.ParameterList; if (parameterList?.IsMissing == false) { identifier = identifier.AppendTrailingTrivia( parameterList.OpenParenToken.GetLeadingAndTrailingTrivia().Concat( parameterList.CloseParenToken.GetLeadingAndTrailingTrivia())); } if (methodDeclaration.ExpressionBody != null) { return(PropertyDeclaration( methodDeclaration.AttributeLists, methodDeclaration.Modifiers, methodDeclaration.ReturnType, methodDeclaration.ExplicitInterfaceSpecifier, identifier, default(AccessorListSyntax), methodDeclaration.ExpressionBody, default(EqualsValueClauseSyntax), methodDeclaration.SemicolonToken)); } else { return(PropertyDeclaration( methodDeclaration.AttributeLists, methodDeclaration.Modifiers, methodDeclaration.ReturnType, methodDeclaration.ExplicitInterfaceSpecifier, identifier, CreateAccessorList(methodDeclaration))); } }