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
etcDeclaration
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 unknownDeclaration
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