279 lines
7.0 KiB
Swift
279 lines
7.0 KiB
Swift
// swiftlint:disable type_body_length
|
|
|
|
struct UnusedDeclarationRuleExamples {
|
|
static let nonTriggeringExamples = [
|
|
Example("""
|
|
let kConstant = 0
|
|
_ = kConstant
|
|
"""),
|
|
Example("""
|
|
enum Change<T> {
|
|
case insert(T)
|
|
case delete(T)
|
|
}
|
|
|
|
extension Sequence {
|
|
func deletes<T>() -> [T] where Element == Change<T> {
|
|
return compactMap { operation in
|
|
if case .delete(let value) = operation {
|
|
return value
|
|
} else {
|
|
return nil
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
let changes = [Change.insert(0), .delete(0)]
|
|
_ = changes.deletes()
|
|
"""),
|
|
Example("""
|
|
struct Item: Codable {}
|
|
struct ResponseModel: Codable {
|
|
let items: [Item]
|
|
|
|
enum CodingKeys: String, CodingKey {
|
|
case items = "ResponseItems"
|
|
}
|
|
}
|
|
|
|
_ = ResponseModel(items: [Item()]).items
|
|
"""),
|
|
Example("""
|
|
class ResponseModel {
|
|
@objc func foo() {
|
|
}
|
|
}
|
|
_ = ResponseModel()
|
|
"""),
|
|
Example("""
|
|
public func foo() {}
|
|
"""),
|
|
Example("""
|
|
protocol Foo {}
|
|
|
|
extension Foo {
|
|
func bar() {}
|
|
}
|
|
|
|
struct MyStruct: Foo {}
|
|
MyStruct().bar()
|
|
"""),
|
|
Example("""
|
|
import XCTest
|
|
class MyTests: XCTestCase {
|
|
func testExample() {}
|
|
}
|
|
"""),
|
|
Example("""
|
|
import XCTest
|
|
open class BestTestCase: XCTestCase {}
|
|
class MyTests: BestTestCase {
|
|
func testExample() {}
|
|
}
|
|
"""),
|
|
Example("""
|
|
enum Component {
|
|
case string(StaticString)
|
|
indirect case array([Component])
|
|
indirect case optional(Component?)
|
|
}
|
|
|
|
@resultBuilder
|
|
struct ComponentBuilder {
|
|
static func buildExpression(_ string: StaticString) -> Component {
|
|
return .string(string)
|
|
}
|
|
|
|
static func buildBlock(_ components: Component...) -> Component {
|
|
return .array(components)
|
|
}
|
|
|
|
static func buildIf(_ value: Component?) -> Component {
|
|
return .optional(value)
|
|
}
|
|
}
|
|
|
|
func acceptComponentBuilder(@ComponentBuilder _ body: () -> Component) {
|
|
print(body())
|
|
}
|
|
|
|
acceptComponentBuilder {
|
|
"hello"
|
|
}
|
|
""")
|
|
] + platformSpecificNonTriggeringExamples
|
|
|
|
static let triggeringExamples = [
|
|
Example("""
|
|
let ↓kConstant = 0
|
|
"""),
|
|
Example("""
|
|
struct Item {}
|
|
struct ↓ResponseModel: Codable {
|
|
let ↓items: [Item]
|
|
|
|
enum ↓CodingKeys: String {
|
|
case items = "ResponseItems"
|
|
}
|
|
}
|
|
"""),
|
|
Example("""
|
|
class ↓ResponseModel {
|
|
func ↓foo() {
|
|
}
|
|
}
|
|
"""),
|
|
Example("""
|
|
public func ↓foo() {}
|
|
""", configuration: ["include_public_and_open": true]),
|
|
Example("""
|
|
protocol Foo {
|
|
func ↓bar1()
|
|
}
|
|
|
|
extension Foo {
|
|
func bar1() {}
|
|
func ↓bar2() {}
|
|
}
|
|
|
|
struct MyStruct: Foo {}
|
|
_ = MyStruct()
|
|
"""),
|
|
Example("""
|
|
import XCTest
|
|
class ↓MyTests: NSObject {
|
|
func ↓testExample() {}
|
|
}
|
|
"""),
|
|
Example("""
|
|
enum Component {
|
|
case string(StaticString)
|
|
indirect case array([Component])
|
|
indirect case optional(Component?)
|
|
}
|
|
|
|
struct ComponentBuilder {
|
|
func ↓buildExpression(_ string: StaticString) -> Component {
|
|
return .string(string)
|
|
}
|
|
|
|
func ↓buildBlock(_ components: Component...) -> Component {
|
|
return .array(components)
|
|
}
|
|
|
|
func ↓buildIf(_ value: Component?) -> Component {
|
|
return .optional(value)
|
|
}
|
|
|
|
static func ↓buildABear(_ components: Component...) -> Component {
|
|
return .array(components)
|
|
}
|
|
}
|
|
|
|
_ = ComponentBuilder()
|
|
""")
|
|
] + platformSpecificTriggeringExamples
|
|
|
|
#if os(macOS)
|
|
private static let platformSpecificNonTriggeringExamples = [
|
|
Example("""
|
|
import Cocoa
|
|
|
|
@NSApplicationMain
|
|
final class AppDelegate: NSObject, NSApplicationDelegate {
|
|
func applicationWillFinishLaunching(_ notification: Notification) {}
|
|
func applicationWillBecomeActive(_ notification: Notification) {}
|
|
}
|
|
"""),
|
|
Example("""
|
|
import Foundation
|
|
|
|
public final class Foo: NSObject {
|
|
@IBAction private func foo() {}
|
|
}
|
|
"""),
|
|
Example("""
|
|
import Foundation
|
|
|
|
public final class Foo: NSObject {
|
|
@objc func foo() {}
|
|
}
|
|
"""),
|
|
Example("""
|
|
import Foundation
|
|
|
|
public final class Foo: NSObject {
|
|
@IBInspectable private var innerPaddingWidth: Int {
|
|
set { self.backgroundView.innerPaddingWidth = newValue }
|
|
get { return self.backgroundView.innerPaddingWidth }
|
|
}
|
|
}
|
|
"""),
|
|
Example("""
|
|
import Foundation
|
|
|
|
public final class Foo: NSObject {
|
|
@IBOutlet private var bar: NSObject! {
|
|
set { fatalError() }
|
|
get { fatalError() }
|
|
}
|
|
|
|
@IBOutlet private var baz: NSObject! {
|
|
willSet { print("willSet") }
|
|
}
|
|
|
|
@IBOutlet private var buzz: NSObject! {
|
|
didSet { print("didSet") }
|
|
}
|
|
}
|
|
""")
|
|
]
|
|
|
|
private static let platformSpecificTriggeringExamples = [
|
|
Example("""
|
|
import Cocoa
|
|
|
|
@NSApplicationMain
|
|
final class AppDelegate: NSObject, NSApplicationDelegate {
|
|
func ↓appWillFinishLaunching(_ notification: Notification) {}
|
|
func applicationWillBecomeActive(_ notification: Notification) {}
|
|
}
|
|
"""),
|
|
Example("""
|
|
import Cocoa
|
|
|
|
final class ↓AppDelegate: NSObject, NSApplicationDelegate {
|
|
func applicationWillFinishLaunching(_ notification: Notification) {}
|
|
func applicationWillBecomeActive(_ notification: Notification) {}
|
|
}
|
|
"""),
|
|
Example("""
|
|
import Foundation
|
|
|
|
public final class Foo: NSObject {
|
|
@IBOutlet var ↓bar: NSObject!
|
|
}
|
|
"""),
|
|
Example("""
|
|
import Foundation
|
|
|
|
public final class Foo: NSObject {
|
|
@IBInspectable var ↓bar: String!
|
|
}
|
|
"""),
|
|
Example("""
|
|
import Foundation
|
|
|
|
final class Foo: NSObject {}
|
|
final class ↓Bar {
|
|
var ↓foo = Foo()
|
|
}
|
|
""")
|
|
]
|
|
#else
|
|
private static let platformSpecificNonTriggeringExamples = [Example]()
|
|
private static let platformSpecificTriggeringExamples = [Example]()
|
|
#endif
|
|
}
|