Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added generic requirements and generic parameters to Subscript #1242

Merged

Conversation

leonspok
Copy link
Contributor

We found that there is no enough information in the current version of Subscript. Following the recommendation from #996, I added:

  • New type GenericParameter to describe the contents of generic parameters clause in subscript definition
  • Fields genericParameters, genericRequirements and isGeneric to Subscript model.

Now this example:

protocol Subscript: AnyObject {
    subscript(arg1: Int) -> Int? { get set }
    subscript<T: Hashable & Cancellable>(arg1: String) -> T? { get set }
    subscript<T>(with arg1: String) -> T? where T: Cancellable { get }
}

Produces output (protocol part is removed):

Subscript: parameters = [MethodParameter: argumentLabel = Optional("arg1"), name = arg1, typeName = Int, `inout` = false, isVariadic = false, typeAttributes = [:], defaultValue = nil, annotations = [:], asSource = arg1: Int], returnTypeName = Int?, actualReturnTypeName = Int?, isFinal = false, readAccess = internal, writeAccess = internal, isMutable = true, annotations = [:], documentation = [], definedInTypeName = Optional(Subscript), actualDefinedInTypeName = Optional(Subscript), genericParameters = [], genericRequirements = [], isGeneric = false, attributes = [:], modifiers = []

Subscript: parameters = [MethodParameter: argumentLabel = Optional("arg1"), name = arg1, typeName = String, `inout` = false, isVariadic = false, typeAttributes = [:], defaultValue = nil, annotations = [:], asSource = arg1: String], returnTypeName = T?, actualReturnTypeName = T?, isFinal = false, readAccess = internal, writeAccess = internal, isMutable = true, annotations = [:], documentation = [], definedInTypeName = Optional(Subscript), actualDefinedInTypeName = Optional(Subscript), genericParameters = [GenericParameter: name = T, inheritedTypeName = Optional(Hashable & Cancellable)], genericRequirements = [], isGeneric = true, attributes = [:], modifiers = []

Subscript: parameters = [MethodParameter: argumentLabel = Optional("with"), name = arg1, typeName = String, `inout` = false, isVariadic = false, typeAttributes = [:], defaultValue = nil, annotations = [:], asSource = with arg1: String], returnTypeName = T?, actualReturnTypeName = T?, isFinal = false, readAccess = internal, writeAccess = , isMutable = false, annotations = [:], documentation = [], definedInTypeName = Optional(Subscript), actualDefinedInTypeName = Optional(Subscript), genericParameters = [GenericParameter: name = T, inheritedTypeName = nil], genericRequirements = [GenericRequirement: leftType = AssociatedType: name = T, typeName = nil, rightType = GenericTypeParameter: typeName = Cancellable, relationship = conformsTo, relationshipSyntax = :], isGeneric = true, attributes = [:], modifiers = []

@leonspok leonspok marked this pull request as ready for review December 20, 2023 16:56
@art-divin
Copy link
Collaborator

👋🏻 Hello @leonspok ,

such a wonderful contribution right before the 2.1.3 release, thank you very much!
Although this PR does not include support for Stencil for the new GenericParameter, it is negotiable since Linux support is experimental. So I have added a note in this regard here: #1198.

Context

In order to enable the dynamic member lookup in GenericParameter, we need to add DynamicMemberLookup protocol conformance for Linux-only version of GenericParameter.swift file - like it is done for most of other types in Sourcery at the moment. As of now, automatically generated code does not support such generation for dynamic member lookup on non-Darwin systems.

@art-divin
Copy link
Collaborator

It would be amazing though if you could edit CHANGELOG.md file to mention this contribution for the release notes.

@leonspok
Copy link
Contributor Author

Thanks @art-divin! I had a feeling this would require a bit more changes than I did :)
Sure, I'll have a look at #1198 and add everything what's missing.
Plus CHANGELOG.md

@leonspok leonspok marked this pull request as draft December 21, 2023 11:24
@art-divin
Copy link
Collaborator

Thank you, if needed, it is a matter of adding the same file again, hidden behind an '#if', and implementing the 'DynamicMemberLookup' protocol conformance only for non-Darwin platforms.

You could also add a test by adjusting 'AutoMockable.stencil' file and doing something with the new type there, then adding code for testing in 'AutoMockable.expected' and 'AutoMockable.swift'.

But, as you can see, it involves multiple domains of knowledge, so feel free to just adjust Changelog file for this PR. 🤝

@leonspok
Copy link
Contributor Author

@art-divin I'm a bit puzzled by this issue (I get it while running tests with rake tests):

Test Suite 'TemplatesTests' started at 2023-12-21 17:48:41.050.
2023-12-21 17:48:41.211 sourcery[16037:22956534] -[SourceryRuntime.GenericParameter encodeWithCoder:]: unrecognized selector sent to instance 0x600000861ca0
Error Domain=NSCocoaErrorDomain Code=4866 "Caught exception during archival: -[SourceryRuntime.GenericParameter encodeWithCoder:]: unrecognized selector sent to instance 0x600000861ca0

I don't see the difference between Codable support in GenericRequirement and the newly added GenericParameter.

@art-divin
Copy link
Collaborator

@leonspok I am running tests, cloned your fork.

Best puzzles.

@art-divin
Copy link
Collaborator

art-divin commented Dec 21, 2023

@leonspok the issue is that there are files which are injected at Runtime of Sourcery into the generated project, which is then compiled to verify that the generated code is compilable Swift code, and these files need to include the new types. In fact, they need to include all types which can be used in templates.

So, after adding new types to SourceryRuntime you also need to add these files manually to:

  1. SourceryRuntime.content.generated.swift file
  2. SourceryRuntime_Linux.content.generated.swift file

Context

Before, Sourcery did support generating code "for itself" into the file named SourceryRuntime.content.generated.swift by executing sourcery from its own root folder in this repository. But after Linux support integration, the generated code cannot be automatically added to the mentioned file because of:

  1. files are now split per platform due to the missing KVC in Foundation / on non-Darwin platforms
  2. extensions for Equality are now inside of class definitions for all classes used by Sourcery and by SourceryRuntime

@art-divin
Copy link
Collaborator

Here's a patch you can apply which fixes the failing tests.

Sourcery-leonspok-c6d93f3-added missing NSCoding facilities.patch

@leonspok leonspok marked this pull request as ready for review December 22, 2023 19:31
@leonspok
Copy link
Contributor Author

@art-divin Thank you for the patch! I made the macOS checks passing, but tests on Ubuntu are still failing for different reasons and I'm not even sure if this is caused by my changes.

I also added some logic to AutoMockable template to test the new properties of Subscript. Though I didn't implement the actual mocking. This looks like a substantial change worth of a separate PR. But at least the generated code should be compilable, so other users of Sourcery relying on AutoMockable template can continue using it.

CHANGELOG.md is also updated.

I would appreciate if you had a look at the Linux tests. If these failures are caused by my changes, then I'll return to this PR once I'm back from holidays (2nd of January).

Thanks!

@art-divin
Copy link
Collaborator

👋🏻 Hey @leonspok ,

Thank you very much for your work! 🤝

I would appreciate if you had a look at the Linux tests. If these failures are caused by my changes, then I'll return to this PR once I'm back from holidays (2nd of January).

I'll debug and report what is the reason and how to resolve it.
I wish you am amazing, joyful holiday season 🎉

@leonspok
Copy link
Contributor Author

leonspok commented Jan 2, 2024

Hi @art-divin! I hope you had a great holiday week!

I'm back to work and I'll continue investigating the issue with linux tests. If you have any clues, this would be very helpful :)

@leonspok
Copy link
Contributor Author

leonspok commented Jan 3, 2024

🎉 All tests passed!

@art-divin art-divin merged commit fe41343 into krzysztofzablocki:master Jan 4, 2024
2 checks passed
@art-divin
Copy link
Collaborator

Hey @leonspok ,

thank you for resilience and eagerness to work with kind_of a messy state regarding the Linux support.

Looking forward to our next collab 🙌🏻👏🤝

@art-divin art-divin added this to the 2.1.4 milestone Jan 9, 2024
art-divin added a commit that referenced this pull request Jan 10, 2024
commit 71c2d46
Author: rokridi <mohamed.aymen.landolsi@gmail.com>
Date:   Tue Jan 9 11:08:43 2024 +0100

    [#1251] Swifty generated variable names + fixed generated mocks compilation issues due to method generic parameters (#1252)

commit b62a8fc
Author: Igor Savelev <igor.savelev@team.bumble.com>
Date:   Sat Jan 6 04:13:56 2024 +0000

    Initialise Subscript's returnTypeName with TypeSyntax, not String (#1250)

commit c7b57bc
Author: Igor Savelev <igor.savelev@team.bumble.com>
Date:   Thu Jan 4 17:17:21 2024 +0000

    Added isAsync and throws to Subscript (#1249)

    * Added isAsync and throws to Subscript

    * Updated Linux version of AutoMockable.swift

commit fe41343
Author: Igor Savelev <igor.savelev@team.bumble.com>
Date:   Thu Jan 4 08:58:37 2024 +0000

    Added generic requirements and generic parameters to Subscript (#1242)

commit 23179e8
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Wed Dec 27 00:23:47 2023 +0400

    docs: update metadata for 2.1.3 release

commit e88363c
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Wed Dec 27 00:06:11 2023 +0400

    docs: update metadata for 2.1.3 release

commit d74237a
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Tue Dec 26 10:25:35 2023 +0400

    update SwiftStencilKit & Stencil (#1246)

commit 510ba24
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Sun Dec 24 01:16:03 2023 +0400

    Introduce package access level (#1245)

    * added package modifier

    * added tests for Variable

    * added tests for package access level

commit b11d2d3
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Sat Dec 23 19:39:24 2023 +0400

    Add dynamic method modifier support (#1244)

    * added missing attributes to Attribute.Identifier enum

    * moved to Attribute.Identifier from raw strings in Method.swift

    * updated Method (linux version)

    * updated generated content

    * added unit tests for dynamic method modifier

    * added dynamic to Variable

    * updated generated runtime files

    * added tests for variable isDynamic

    * fixed compilation error

    * fixed compilation error

commit 07a8b28
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Wed Dec 20 04:35:37 2023 +0400

    Support method overriding in AutoMockable (#1240)

    * updated automockable stencil template

    * updated expected AutoMockable

    * updated CHANGELOG

    * added supported case for vararg

    * Added example protocols for overrides

    * More flexible support for overridden return types

    * Added support for closure return type

    * Added more methods for tests

    * updated AutoMockable.expected

    * reverted wrong trailing whitespace trimming

    * added missing member lookup

    * Squashed commit of the following:

    commit 7f85e02
    Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
    Date:   Wed Dec 20 01:10:31 2023 +0400

        Support for variadic types as method arguments (#1241)

        * Added support for variadic types as method arguments

        * Added changelog entry

        * added example protocol with varargs

        * support for vararg in return type's closure

        * added missing member lookup

    * Squashed commit of the following:

    commit 7f85e02
    Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
    Date:   Wed Dec 20 01:10:31 2023 +0400

        Support for variadic types as method arguments (#1241)

        * Added support for variadic types as method arguments

        * Added changelog entry

        * added example protocol with varargs

        * support for vararg in return type's closure

        * added missing member lookup

    * Squashed commit of the following:

    commit 7f85e02
    Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
    Date:   Wed Dec 20 01:10:31 2023 +0400

        Support for variadic types as method arguments (#1241)

        * Added support for variadic types as method arguments

        * Added changelog entry

        * added example protocol with varargs

        * support for vararg in return type's closure

        * added missing member lookup

    * Revert "Merge branch 'master' into support-method-overriding"

    This reverts commit 3c81133, reversing
    changes made to 48816e2.

    * Revert "Squashed commit of the following:"

    This reverts commit 4f7d246.

    # Conflicts:
    #	Templates/Tests/Expected/AutoMockable.expected

    * Updated AutoMockable.expected

commit 7f85e02
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Wed Dec 20 01:10:31 2023 +0400

    Support for variadic types as method arguments (#1241)

    * Added support for variadic types as method arguments

    * Added changelog entry

    * added example protocol with varargs

    * support for vararg in return type's closure

    * added missing member lookup

commit db7cc85
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Sun Dec 17 10:00:37 2023 +0400

    Fixed incorrect parsing of consequently declared "@" symbols (#1239)

    * Fixed bug with incorrect parsing of consequently declared "@" symbols

    * renamed `isMacros` to `isPropertyWrapper` for clarity

commit 1502c0f
Author: Igor Savelev <igor9774@gmail.com>
Date:   Fri Dec 15 14:48:48 2023 +0000

    Fixed missing attributes in optional closure type name (#1237)

    * Fixed missing attributes in optional closure type name

    * Reverted changes in unwrappedTypeName

    * Added fix for implicitly unwrapped closures

    * Added forced brackets for optional existential and opaque types

    * Revert "Added forced brackets for optional existential and opaque types"

    This reverts commit 50ff6e7.

commit 717e0ba
Author: Krzysztof Zabłocki <krzysztof.zablocki@pixle.pl>
Date:   Mon Dec 4 14:42:17 2023 +0100

    Update README.md

commit 1642f1f
Author: Pavel Trafimuk <pavel@viber.com>
Date:   Fri Dec 1 02:53:57 2023 +0300

    Reduced counts of collisions for cache srf filenames (#1231)

commit 184ee11
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Mon Nov 27 00:43:34 2023 +0400

    Updated XcodeProj to 8.16.0 (#1228)

    * Updated XcodeProj to 8.16.0

    * Updated CHANGELOG
art-divin added a commit that referenced this pull request Jan 10, 2024
commit 5856e3b
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Tue Jan 9 15:30:34 2024 -0500

    Update AutoMockable.expected (#1253)

    * updated automockable.expected

    * updated CHANGELOG

    * attempt to resolve issue on Linux

    * added missing example code for linux

commit 71c2d46
Author: rokridi <mohamed.aymen.landolsi@gmail.com>
Date:   Tue Jan 9 11:08:43 2024 +0100

    [#1251] Swifty generated variable names + fixed generated mocks compilation issues due to method generic parameters (#1252)

commit b62a8fc
Author: Igor Savelev <igor.savelev@team.bumble.com>
Date:   Sat Jan 6 04:13:56 2024 +0000

    Initialise Subscript's returnTypeName with TypeSyntax, not String (#1250)

commit c7b57bc
Author: Igor Savelev <igor.savelev@team.bumble.com>
Date:   Thu Jan 4 17:17:21 2024 +0000

    Added isAsync and throws to Subscript (#1249)

    * Added isAsync and throws to Subscript

    * Updated Linux version of AutoMockable.swift

commit fe41343
Author: Igor Savelev <igor.savelev@team.bumble.com>
Date:   Thu Jan 4 08:58:37 2024 +0000

    Added generic requirements and generic parameters to Subscript (#1242)

commit 23179e8
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Wed Dec 27 00:23:47 2023 +0400

    docs: update metadata for 2.1.3 release

commit e88363c
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Wed Dec 27 00:06:11 2023 +0400

    docs: update metadata for 2.1.3 release

commit d74237a
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Tue Dec 26 10:25:35 2023 +0400

    update SwiftStencilKit & Stencil (#1246)

commit 510ba24
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Sun Dec 24 01:16:03 2023 +0400

    Introduce package access level (#1245)

    * added package modifier

    * added tests for Variable

    * added tests for package access level

commit b11d2d3
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Sat Dec 23 19:39:24 2023 +0400

    Add dynamic method modifier support (#1244)

    * added missing attributes to Attribute.Identifier enum

    * moved to Attribute.Identifier from raw strings in Method.swift

    * updated Method (linux version)

    * updated generated content

    * added unit tests for dynamic method modifier

    * added dynamic to Variable

    * updated generated runtime files

    * added tests for variable isDynamic

    * fixed compilation error

    * fixed compilation error

commit 07a8b28
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Wed Dec 20 04:35:37 2023 +0400

    Support method overriding in AutoMockable (#1240)

    * updated automockable stencil template

    * updated expected AutoMockable

    * updated CHANGELOG

    * added supported case for vararg

    * Added example protocols for overrides

    * More flexible support for overridden return types

    * Added support for closure return type

    * Added more methods for tests

    * updated AutoMockable.expected

    * reverted wrong trailing whitespace trimming

    * added missing member lookup

    * Squashed commit of the following:

    commit 7f85e02
    Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
    Date:   Wed Dec 20 01:10:31 2023 +0400

        Support for variadic types as method arguments (#1241)

        * Added support for variadic types as method arguments

        * Added changelog entry

        * added example protocol with varargs

        * support for vararg in return type's closure

        * added missing member lookup

    * Squashed commit of the following:

    commit 7f85e02
    Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
    Date:   Wed Dec 20 01:10:31 2023 +0400

        Support for variadic types as method arguments (#1241)

        * Added support for variadic types as method arguments

        * Added changelog entry

        * added example protocol with varargs

        * support for vararg in return type's closure

        * added missing member lookup

    * Squashed commit of the following:

    commit 7f85e02
    Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
    Date:   Wed Dec 20 01:10:31 2023 +0400

        Support for variadic types as method arguments (#1241)

        * Added support for variadic types as method arguments

        * Added changelog entry

        * added example protocol with varargs

        * support for vararg in return type's closure

        * added missing member lookup

    * Revert "Merge branch 'master' into support-method-overriding"

    This reverts commit 3c81133, reversing
    changes made to 48816e2.

    * Revert "Squashed commit of the following:"

    This reverts commit 4f7d246.

    # Conflicts:
    #	Templates/Tests/Expected/AutoMockable.expected

    * Updated AutoMockable.expected

commit 7f85e02
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Wed Dec 20 01:10:31 2023 +0400

    Support for variadic types as method arguments (#1241)

    * Added support for variadic types as method arguments

    * Added changelog entry

    * added example protocol with varargs

    * support for vararg in return type's closure

    * added missing member lookup

commit db7cc85
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Sun Dec 17 10:00:37 2023 +0400

    Fixed incorrect parsing of consequently declared "@" symbols (#1239)

    * Fixed bug with incorrect parsing of consequently declared "@" symbols

    * renamed `isMacros` to `isPropertyWrapper` for clarity

commit 1502c0f
Author: Igor Savelev <igor9774@gmail.com>
Date:   Fri Dec 15 14:48:48 2023 +0000

    Fixed missing attributes in optional closure type name (#1237)

    * Fixed missing attributes in optional closure type name

    * Reverted changes in unwrappedTypeName

    * Added fix for implicitly unwrapped closures

    * Added forced brackets for optional existential and opaque types

    * Revert "Added forced brackets for optional existential and opaque types"

    This reverts commit 50ff6e7.

commit 717e0ba
Author: Krzysztof Zabłocki <krzysztof.zablocki@pixle.pl>
Date:   Mon Dec 4 14:42:17 2023 +0100

    Update README.md

commit 1642f1f
Author: Pavel Trafimuk <pavel@viber.com>
Date:   Fri Dec 1 02:53:57 2023 +0300

    Reduced counts of collisions for cache srf filenames (#1231)

commit 184ee11
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Mon Nov 27 00:43:34 2023 +0400

    Updated XcodeProj to 8.16.0 (#1228)

    * Updated XcodeProj to 8.16.0

    * Updated CHANGELOG
art-divin added a commit that referenced this pull request Jan 13, 2024
commit 5856e3b
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Tue Jan 9 15:30:34 2024 -0500

    Update AutoMockable.expected (#1253)

    * updated automockable.expected

    * updated CHANGELOG

    * attempt to resolve issue on Linux

    * added missing example code for linux

commit 71c2d46
Author: rokridi <mohamed.aymen.landolsi@gmail.com>
Date:   Tue Jan 9 11:08:43 2024 +0100

    [#1251] Swifty generated variable names + fixed generated mocks compilation issues due to method generic parameters (#1252)

commit b62a8fc
Author: Igor Savelev <igor.savelev@team.bumble.com>
Date:   Sat Jan 6 04:13:56 2024 +0000

    Initialise Subscript's returnTypeName with TypeSyntax, not String (#1250)

commit c7b57bc
Author: Igor Savelev <igor.savelev@team.bumble.com>
Date:   Thu Jan 4 17:17:21 2024 +0000

    Added isAsync and throws to Subscript (#1249)

    * Added isAsync and throws to Subscript

    * Updated Linux version of AutoMockable.swift

commit fe41343
Author: Igor Savelev <igor.savelev@team.bumble.com>
Date:   Thu Jan 4 08:58:37 2024 +0000

    Added generic requirements and generic parameters to Subscript (#1242)

commit 23179e8
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Wed Dec 27 00:23:47 2023 +0400

    docs: update metadata for 2.1.3 release

commit e88363c
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Wed Dec 27 00:06:11 2023 +0400

    docs: update metadata for 2.1.3 release

commit d74237a
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Tue Dec 26 10:25:35 2023 +0400

    update SwiftStencilKit & Stencil (#1246)

commit 510ba24
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Sun Dec 24 01:16:03 2023 +0400

    Introduce package access level (#1245)

    * added package modifier

    * added tests for Variable

    * added tests for package access level

commit b11d2d3
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Sat Dec 23 19:39:24 2023 +0400

    Add dynamic method modifier support (#1244)

    * added missing attributes to Attribute.Identifier enum

    * moved to Attribute.Identifier from raw strings in Method.swift

    * updated Method (linux version)

    * updated generated content

    * added unit tests for dynamic method modifier

    * added dynamic to Variable

    * updated generated runtime files

    * added tests for variable isDynamic

    * fixed compilation error

    * fixed compilation error

commit 07a8b28
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Wed Dec 20 04:35:37 2023 +0400

    Support method overriding in AutoMockable (#1240)

    * updated automockable stencil template

    * updated expected AutoMockable

    * updated CHANGELOG

    * added supported case for vararg

    * Added example protocols for overrides

    * More flexible support for overridden return types

    * Added support for closure return type

    * Added more methods for tests

    * updated AutoMockable.expected

    * reverted wrong trailing whitespace trimming

    * added missing member lookup

    * Squashed commit of the following:

    commit 7f85e02
    Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
    Date:   Wed Dec 20 01:10:31 2023 +0400

        Support for variadic types as method arguments (#1241)

        * Added support for variadic types as method arguments

        * Added changelog entry

        * added example protocol with varargs

        * support for vararg in return type's closure

        * added missing member lookup

    * Squashed commit of the following:

    commit 7f85e02
    Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
    Date:   Wed Dec 20 01:10:31 2023 +0400

        Support for variadic types as method arguments (#1241)

        * Added support for variadic types as method arguments

        * Added changelog entry

        * added example protocol with varargs

        * support for vararg in return type's closure

        * added missing member lookup

    * Squashed commit of the following:

    commit 7f85e02
    Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
    Date:   Wed Dec 20 01:10:31 2023 +0400

        Support for variadic types as method arguments (#1241)

        * Added support for variadic types as method arguments

        * Added changelog entry

        * added example protocol with varargs

        * support for vararg in return type's closure

        * added missing member lookup

    * Revert "Merge branch 'master' into support-method-overriding"

    This reverts commit 3c81133, reversing
    changes made to 48816e2.

    * Revert "Squashed commit of the following:"

    This reverts commit 4f7d246.

    # Conflicts:
    #	Templates/Tests/Expected/AutoMockable.expected

    * Updated AutoMockable.expected

commit 7f85e02
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Wed Dec 20 01:10:31 2023 +0400

    Support for variadic types as method arguments (#1241)

    * Added support for variadic types as method arguments

    * Added changelog entry

    * added example protocol with varargs

    * support for vararg in return type's closure

    * added missing member lookup

commit db7cc85
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Sun Dec 17 10:00:37 2023 +0400

    Fixed incorrect parsing of consequently declared "@" symbols (#1239)

    * Fixed bug with incorrect parsing of consequently declared "@" symbols

    * renamed `isMacros` to `isPropertyWrapper` for clarity

commit 1502c0f
Author: Igor Savelev <igor9774@gmail.com>
Date:   Fri Dec 15 14:48:48 2023 +0000

    Fixed missing attributes in optional closure type name (#1237)

    * Fixed missing attributes in optional closure type name

    * Reverted changes in unwrappedTypeName

    * Added fix for implicitly unwrapped closures

    * Added forced brackets for optional existential and opaque types

    * Revert "Added forced brackets for optional existential and opaque types"

    This reverts commit 50ff6e7.

commit 717e0ba
Author: Krzysztof Zabłocki <krzysztof.zablocki@pixle.pl>
Date:   Mon Dec 4 14:42:17 2023 +0100

    Update README.md

commit 1642f1f
Author: Pavel Trafimuk <pavel@viber.com>
Date:   Fri Dec 1 02:53:57 2023 +0300

    Reduced counts of collisions for cache srf filenames (#1231)

commit 184ee11
Author: Ruslan Alikhamov <r.alikhamov@gmail.com>
Date:   Mon Nov 27 00:43:34 2023 +0400

    Updated XcodeProj to 8.16.0 (#1228)

    * Updated XcodeProj to 8.16.0

    * Updated CHANGELOG
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants