internal struct PrivateSubjectRuleExamples { static let nonTriggeringExamples: [Example] = [ Example( #""" final class Foobar { private let goodSubject = PassthroughSubject() } """# ), Example( #""" final class Foobar { private let goodSubject: PassthroughSubject } """# ), Example( #""" final class Foobar { fileprivate let goodSubject: PassthroughSubject } """# ), Example( #""" final class Foobar { private let goodSubject: PassthroughSubject = .init() } """# ), Example( #""" final class Foobar { private let goodSubject = CurrentValueSubject(false) } """# ), Example( #""" final class Foobar { private let goodSubject: CurrentValueSubject } """# ), Example( #""" final class Foobar { fileprivate let goodSubject: CurrentValueSubject } """# ), Example( #""" final class Foobar { private let goodSubject: CurrentValueSubject = .init("toto") } """# ), Example( #""" final class Foobar { private let goodSubject = PassthroughSubject, Never>() } """# ), Example( #""" final class Foobar { private let goodSubject: PassthroughSubject, Never> = .init() } """# ), Example( #""" final class Foobar { private let goodSubject: CurrentValueSubject, Never> = .init([]) } """# ), Example( #""" final class Foobar { private let goodSubject = PassthroughSubject() } """# ), Example( #""" final class Foobar { private let goodSubject: PassthroughSubject = .init() } """# ), Example( #""" final class Foobar { private let goodSubject = CurrentValueSubject(true) } """# ), Example( #""" final class Foobar { private let goodSubject: CurrentValueSubject init() { let goodSubject = CurrentValueSubject(true) self.goosSubject = goodSubject } } """# ), Example( """ func foo() { let goodSubject = PassthroughSubject(true) } """ ), ] static let triggeringExamples: [Example] = [ Example( #""" final class Foobar { let ↓badSubject = PassthroughSubject() } """# ), Example( #""" final class Foobar { let ↓badSubject: PassthroughSubject } """# ), Example( #""" final class Foobar { private(set) let ↓badSubject: PassthroughSubject } """# ), Example( #""" final class Foobar { private(set) let ↓badSubject = PassthroughSubject() } """# ), Example( #""" final class Foobar { let goodSubject: PassthroughSubject = .init() } """# ), Example( #""" final class Foobar { private let goodSubject: PassthroughSubject private(set) let ↓badSubject = PassthroughSubject() private(set) let ↓anotherBadSubject = PassthroughSubject() } """# ), Example( #""" final class Foobar { private(set) let ↓badSubject = PassthroughSubject() private let goodSubject: PassthroughSubject private(set) let ↓anotherBadSubject = PassthroughSubject() } """# ), Example( #""" final class Foobar { let ↓badSubject = CurrentValueSubject(true) } """# ), Example( #""" final class Foobar { let ↓badSubject: CurrentValueSubject } """# ), Example( #""" final class Foobar { private(set) let ↓badSubject: CurrentValueSubject } """# ), Example( #""" final class Foobar { private(set) let ↓badSubject = CurrentValueSubject(false) } """# ), Example( #""" final class Foobar { let goodSubject: CurrentValueSubject = .init("toto") } """# ), Example( #""" final class Foobar { private let goodSubject: CurrentValueSubject private(set) let ↓badSubject = CurrentValueSubject(false) private(set) let ↓anotherBadSubject = CurrentValueSubject(false) } """# ), Example( #""" final class Foobar { private(set) let ↓badSubject = CurrentValueSubject(false) private let goodSubject: CurrentValueSubject private(set) let ↓anotherBadSubject = CurrentValueSubject(true) } """# ), Example( #""" final class Foobar { let ↓badSubject = PassthroughSubject, Never>() } """# ), Example( #""" final class Foobar { let ↓badSubject: PassthroughSubject, Never> = .init() } """# ), Example( #""" final class Foobar { let ↓badSubject: CurrentValueSubject, Never> = .init([]) } """# ), Example( #""" final class Foobar { let ↓badSubject = PassthroughSubject() } """# ), Example( #""" final class Foobar { let ↓badSubject: PassthroughSubject = .init() } """# ), Example( #""" final class Foobar { let ↓badSubject = CurrentValueSubject(true) } """# ), ] }