diff --git a/Sources/MockoloFramework/Utils/SwiftType.swift b/Sources/MockoloFramework/Utils/SwiftType.swift index a2a46eee..680c77f7 100644 --- a/Sources/MockoloFramework/Utils/SwiftType.swift +++ b/Sources/MockoloFramework/Utils/SwiftType.swift @@ -633,9 +633,16 @@ extension SwiftType { case .memberType(let syntax): // T.U + let name = syntax.name.trimmedDescription + let generics = syntax.genericArgumentClause?.arguments.compactMap { + $0.argument.as(TypeSyntax.self).flatMap { + SwiftType(typeSyntax: $0) + } + } self.kind = .nominal(.init( namespace: SwiftType(typeSyntax: syntax.baseType), - name: syntax.name.trimmedDescription + name: name, + genericParameterTypes: generics ?? [] )) case .attributedType(let syntax): diff --git a/Tests/TestFuncs/TestGenericFuncs/FixtureGenericFunc.swift b/Tests/TestFuncs/TestGenericFuncs/FixtureGenericFunc.swift index 325deebc..77737039 100644 --- a/Tests/TestFuncs/TestGenericFuncs/FixtureGenericFunc.swift +++ b/Tests/TestFuncs/TestGenericFuncs/FixtureGenericFunc.swift @@ -56,10 +56,12 @@ import MockoloFramework func pull(events: [SomeEvent], until: U?, closure: @escaping () -> ()) func optionalPull(events: [SomeEvent], value: T, once: Bool, closure: ((T?) -> ())?) func add(n1: T, n2: T?) - func add (a: T?, b: T?) - func add (a: T, b: T) + func add(a: T?, b: T?) + func add(a: T, b: T) func useMetatype(type: T.Type) -> T.Type func useAssociatedType(value: I, id: I.ID) -> I.ID + func foo() -> Result + func bar() -> Swift.Result } @Fixture enum expected { @@ -206,6 +208,26 @@ import MockoloFramework } fatalError("useAssociatedTypeHandler returns can't have a default value thus its handler must be set") } + + private(set) var fooCallCount = 0 + var fooHandler: (() -> Any)? + func foo() -> Result { + fooCallCount += 1 + if let fooHandler = fooHandler { + return fooHandler() as! Result + } + fatalError("fooHandler returns can't have a default value thus its handler must be set") + } + + private(set) var barCallCount = 0 + var barHandler: (() -> Any)? + func bar() -> Swift.Result { + barCallCount += 1 + if let barHandler = barHandler { + return barHandler() as! Swift.Result + } + fatalError("barHandler returns can't have a default value thus its handler must be set") + } } } }