diff --git a/Sources/SwiftFormatPrettyPrint/TokenStreamCreator.swift b/Sources/SwiftFormatPrettyPrint/TokenStreamCreator.swift index d5918b603ce08..29576ee82999d 100644 --- a/Sources/SwiftFormatPrettyPrint/TokenStreamCreator.swift +++ b/Sources/SwiftFormatPrettyPrint/TokenStreamCreator.swift @@ -595,6 +595,7 @@ private final class TokenStreamCreator: SyntaxVisitor { } func visit(_ node: MemberAccessExprSyntax) -> SyntaxVisitorContinueKind { + before(node.dot, tokens: .break(.continue, size: 0)) return .visitChildren } diff --git a/Tests/SwiftFormatPrettyPrintTests/MemberAccessExprTests.swift b/Tests/SwiftFormatPrettyPrintTests/MemberAccessExprTests.swift new file mode 100644 index 0000000000000..ef31b5b2739a1 --- /dev/null +++ b/Tests/SwiftFormatPrettyPrintTests/MemberAccessExprTests.swift @@ -0,0 +1,23 @@ +public class MemberAccessExprTests: PrettyPrintTestCase { + public func testMemberAccess() { + let input = + """ + let a = one.two.three.four.five + let b = (c as TypeD).one.two.three.four + """ + + let expected = + """ + let a = one.two + .three.four + .five + let b = ( + c as TypeD + ).one.two.three + .four + + """ + + assertPrettyPrintEqual(input: input, expected: expected, linelength: 15) + } +} diff --git a/Tests/SwiftFormatPrettyPrintTests/XCTestManifests.swift b/Tests/SwiftFormatPrettyPrintTests/XCTestManifests.swift index 2f7a943ae378b..c559d68cb6256 100644 --- a/Tests/SwiftFormatPrettyPrintTests/XCTestManifests.swift +++ b/Tests/SwiftFormatPrettyPrintTests/XCTestManifests.swift @@ -287,6 +287,15 @@ extension InitializerDeclTests { ] } +extension MemberAccessExprTests { + // DO NOT MODIFY: This is autogenerated, use: + // `swift test --generate-linuxmain` + // to regenerate. + static let __allTests__MemberAccessExprTests = [ + ("testMemberAccess", testMemberAccess), + ] +} + extension NewlineTests { // DO NOT MODIFY: This is autogenerated, use: // `swift test --generate-linuxmain` @@ -492,6 +501,7 @@ public func __allTests() -> [XCTestCaseEntry] { testCase(IfStmtTests.__allTests__IfStmtTests), testCase(ImportTests.__allTests__ImportTests), testCase(InitializerDeclTests.__allTests__InitializerDeclTests), + testCase(MemberAccessExprTests.__allTests__MemberAccessExprTests), testCase(NewlineTests.__allTests__NewlineTests), testCase(ProtocolDeclTests.__allTests__ProtocolDeclTests), testCase(RepeatStmtTests.__allTests__RepeatStmtTests),