Method

@objc(SwiftMethod)
@objcMembers
public final class Method : NSObject, SourceryModel, Annotated, Documented, Definition, Diffable
extension Method: NSCoding

Describes method

  • Full method name, including generic constraints, i.e. foo<T>(bar: T)

    Declaration

    Swift

    public let name: String
  • Method name including arguments names, i.e. foo(bar:)

    Declaration

    Swift

    public var selectorName: String
  • Method name without arguments names and parentheses, i.e. foo<T>

    Declaration

    Swift

    public var shortName: String { get }
  • Method name without arguments names, parentheses and generic types, i.e. foo (can be used to generate code for method call)

    Declaration

    Swift

    public var callName: String { get }
  • Method parameters

    Declaration

    Swift

    public var parameters: [MethodParameter]
  • Return value type name used in declaration, including generic constraints, i.e. where T: Equatable

    Declaration

    Swift

    public var returnTypeName: TypeName
  • Actual return value type name if declaration uses typealias, otherwise just a returnTypeName

    Declaration

    Swift

    public var actualReturnTypeName: TypeName { get }
  • Actual return value type, if known

    Declaration

    Swift

    public var returnType: Type?
  • Whether return value type is optional

    Declaration

    Swift

    public var isOptionalReturnType: Bool { get }
  • Whether return value type is implicitly unwrapped optional

    Declaration

    Swift

    public var isImplicitlyUnwrappedOptionalReturnType: Bool { get }
  • Return value type name without attributes and optional type information

    Declaration

    Swift

    public var unwrappedReturnTypeName: String { get }
  • Whether method is async method

    Declaration

    Swift

    public let isAsync: Bool
  • Whether method is distributed

    Declaration

    Swift

    public var isDistributed: Bool { get }
  • Whether method throws

    Declaration

    Swift

    public let `throws`: Bool
  • Whether method rethrows

    Declaration

    Swift

    public let `rethrows`: Bool
  • Method access level, i.e. internal, private, fileprivate, public, open

    Declaration

    Swift

    public let accessLevel: String
  • Whether method is a static method

    Declaration

    Swift

    public let isStatic: Bool
  • Whether method is a class method

    Declaration

    Swift

    public let isClass: Bool
  • Whether method is an initializer

    Declaration

    Swift

    public var isInitializer: Bool { get }
  • Whether method is an deinitializer

    Declaration

    Swift

    public var isDeinitializer: Bool { get }
  • Whether method is a failable initializer

    Declaration

    Swift

    public let isFailableInitializer: Bool
  • Whether method is a convenience initializer

    Declaration

    Swift

    public var isConvenienceInitializer: Bool { get }
  • Whether method is required

    Declaration

    Swift

    public var isRequired: Bool { get }
  • Whether method is final

    Declaration

    Swift

    public var isFinal: Bool { get }
  • Whether method is mutating

    Declaration

    Swift

    public var isMutating: Bool { get }
  • Whether method is generic

    Declaration

    Swift

    public var isGeneric: Bool { get }
  • Whether method is optional (in an Objective-C protocol)

    Declaration

    Swift

    public var isOptional: Bool { get }
  • Whether method is nonisolated (this modifier only applies to actor methods)

    Declaration

    Swift

    public var isNonisolated: Bool { get }
  • Whether method is dynamic

    Declaration

    Swift

    public var isDynamic: Bool { get }
  • Annotations, that were created with // sourcery: annotation1, other = “annotation value”, alterantive = 2

    Declaration

    Swift

    public let annotations: Annotations
  • Declaration

    Swift

    public let documentation: Documentation
  • Reference to type name where the method is defined, nil if defined outside of any enum, struct, class etc

    Declaration

    Swift

    public let definedInTypeName: TypeName?
  • Reference to actual type name where the method is defined if declaration uses typealias, otherwise just a definedInTypeName

    Declaration

    Swift

    public var actualDefinedInTypeName: TypeName? { get }
  • Reference to actual type where the object is defined, nil if defined outside of any enum, struct, class etc or type is unknown

    Declaration

    Swift

    public var definedInType: Type?
  • Method attributes, i.e. @discardableResult

    Declaration

    Swift

    public let attributes: AttributeList
  • Method modifiers, i.e. private

    Declaration

    Swift

    public let modifiers: [SourceryModifier]
  • list of generic requirements

    Declaration

    Swift

    public var genericRequirements: [GenericRequirement]
  • List of generic parameters

    • Example:
      func method<GenericParameter>(foo: GenericParameter)
                       ^ ~ a generic parameter
    

    Declaration

    Swift

    public var genericParameters: [GenericParameter]
  • Declaration

    Swift

    public func diffAgainst(_ object: Any?) -> DiffableResult