private SwitchExpressionArmSyntax ConstructSwitchArm(SwitchSectionSyntax section) { var isDefault = section .Descendants <DefaultSwitchLabelSyntax>() .Any(); var returnStatement = section .Descendants <ReturnStatementSyntax>() .FirstOrDefault(); if (returnStatement?.Expression == null) { return(null); } PatternSyntax pattern; if (!isDefault) { var labelExpression = section.Labels .FirstOrDefault() ?.DescendantsAndSelf <ExpressionSyntax>() .FirstOrDefault(); pattern = ConstantPattern(labelExpression); } else { pattern = DiscardPattern(); } var arm = SwitchExpressionArm( pattern, null, Token(SyntaxKind.EqualsGreaterThanToken) .WithLeadingTrivia(Space) .WithTrailingTrivia(Space), returnStatement.Expression) .WithLeadingTrivia(section.GetLeadingTrivia()); if (isDefault) { arm = arm.WithTrailingTrivia(EndOfLine(Environment.NewLine)); } return(arm); }