convenience_type - ApplebaumIan/BitbucketAPI GitHub Wiki

Convenience Type

Types used for hosting only static members should be implemented as a caseless enum to avoid instantiation.

  • Identifier: convenience_type
  • Enabled by default: Disabled
  • Supports autocorrection: No
  • Kind: idiomatic
  • Analyzer rule: No
  • Minimum Swift compiler version: 4.1.0
  • Default configuration: warning

Non Triggering Examples

enum Math { // enum
  public static let pi = 3.14
}
// class with inheritance
class MathViewController: UIViewController {
  public static let pi = 3.14
}
@objc class Math: NSObject { // class visible to Obj-C
  public static let pi = 3.14
}
struct Math { // type with non-static declarations
  public static let pi = 3.14
  public let randomNumber = 2
}
class DummyClass {}

Triggering Examples

↓struct Math {
  public static let pi = 3.14
}
↓class Math {
  public static let pi = 3.14
}
↓struct Math {
  public static let pi = 3.14
  @available(*, unavailable) init() {}
}