Comments (4)
The issue most likely resides somewhere here. Specifically, it would be this switch case. Mockery may be accidentally throwing away the variadic-ness about this variable type.
This should be very easy to fix, because the types.Type
object has a Variadic() bool
method that tells you if it's, well, variadic. Then the renderTypeTuple
method can be updated to print the correct ellipsis, instead of a slice.
There's the other consideration that you could technically have an arbitrarily deep nested function declaration
type ExposedFunction func(args ...func(args ...func(args ...bool))) interface{}
So the real solution would involve recursion, but I've never seen something like this out in the wild.
from mockery.
Thank you for your feedback, yes, handling the recursion now may be overkill.
What is the next step? I can do a PR to handle the case, but it will take me some time to ramp up on the project.
from mockery.
What time frame are you looking at to get a PR @nicovak? I'm always willing to do some dev work myself but we all lead busy lives so not sure how quickly I could do it.
from mockery.
Closing in favor of #431 as this is a duplicate issue. The solution lies within the code block I mentioned.
from mockery.
Related Issues (20)
- Feature Request: Infer Local Package During Generation HOT 1
- Question: MinTimes(), MaxTimes() HOT 1
- pathlib values undefined HOT 3
- Generated Mock Importing Non-Existent 'command-line-arguments' Package HOT 2
- Option to replace a generic type parameter with a specific type HOT 3
- Should 2.39.1 enough to generate mocks for 2.40.1 HOT 7
- Mockery mistakenly imports internal packages when running the 'mockery' command HOT 2
- error: package "context" without types was imported
- mockery built with go 1.22~rc2 fails HOT 6
- Running mockery with docker does not work with go 1.22
- Could not run the latest Mockery Docker image with 1.22 codebase HOT 1
- Investigate if we can use `GODEBUG=gotypealias=1` to get around type alias sadness HOT 2
- Logging warning when mock config is orphaned HOT 1
- Variadic function issues. HOT 10
- Files being created even with `dry-run: true` HOT 1
- Discussion: is interface just for mocking a good idea? HOT 1
- Configuration option `inpackage` is not functioning as expected HOT 3
- Incorrect mocks generated when there are multiple interfaces in the same package HOT 6
- Indirect dependency from go-viper includes critical vulnerability CVE-2021-28235
- Using exclude on windows throws an error because of path separator being used, I have raised a PR
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mockery.