diff --git a/Sources/SwiftFormat/Rules/UseSingleLinePropertyGetter.swift b/Sources/SwiftFormat/Rules/UseSingleLinePropertyGetter.swift index 81d4c0a6..21e38bbd 100644 --- a/Sources/SwiftFormat/Rules/UseSingleLinePropertyGetter.swift +++ b/Sources/SwiftFormat/Rules/UseSingleLinePropertyGetter.swift @@ -28,6 +28,7 @@ public final class UseSingleLinePropertyGetter: SyntaxFormatRule { let body = acc.body, accessors.count == 1, acc.accessorSpecifier.tokenKind == .keyword(.get), + acc.attributes.isEmpty, acc.modifier == nil, acc.effectSpecifiers == nil else { return node } diff --git a/Tests/SwiftFormatTests/Rules/UseSingleLinePropertyGetterTests.swift b/Tests/SwiftFormatTests/Rules/UseSingleLinePropertyGetterTests.swift index dcf8c4a0..a09a013d 100644 --- a/Tests/SwiftFormatTests/Rules/UseSingleLinePropertyGetterTests.swift +++ b/Tests/SwiftFormatTests/Rules/UseSingleLinePropertyGetterTests.swift @@ -253,4 +253,30 @@ final class UseSingleLinePropertyGetterTests: LintOrFormatRuleTestCase { ] ) } + + func testGetterWithAttributedAccessorShouldBePreserved() { + assertFormatting( + UseSingleLinePropertyGetter.self, + input: """ + struct Foo { + var value: Int { + @_lifetime(borrow self) + get { + return 1 + } + } + } + """, + expected: """ + struct Foo { + var value: Int { + @_lifetime(borrow self) + get { + return 1 + } + } + } + """ + ) + } }