Comments (2)
I dived into seeing if this is feasible, but it appears not. The gotypelias
flag in Go 1.22 only applies to the go/types
API. See initial proposal. However the compiler export data format, and importer changes, have not been completed yet. This is necessary because go/packages
(which this project uses to parse the type tree) imports the compiler-exported data. So it seems we won't get go/packages
support until Go 1.23 at least.
from mockery.
Some additional clarity on where this issue lies. I discovered the gopackages
tool that allows you to briefly inspect the syntax of a particular package. You see that when we ask it to print one of our packages that has a type alias on an internal type, the alias is not preserved:
go run golang.org/x/tools/go/packages/gopackages -mode allsyntax github.com/vektra/mockery/v2/pkg/fixtures/example_project/replace_type
Go package "github.com/vektra/mockery/v2/pkg/fixtures/example_project/replace_type":
package replace_type
has complete exported type info and typed ASTs
file /Users/landonclipp/git/LandonTClipp/mockery/pkg/fixtures/example_project/replace_type/rt.go
import "github.com/vektra/mockery/v2/pkg/fixtures/example_project/replace_type/rti/rt1"
import "github.com/vektra/mockery/v2/pkg/fixtures/example_project/replace_type/rti/rt2"
type RType interface{Replace1(f github.com/vektra/mockery/v2/pkg/fixtures/example_project/replace_type/rti/internal.RTInternal1); Replace2(f github.com/vektra/mockery/v2/pkg/fixtures/example_project/replace_type/rti/internal.RTInternal2)}
method (RType) Replace1(f github.com/vektra/mockery/v2/pkg/fixtures/example_project/replace_type/rti/internal.RTInternal1)
method (RType) Replace2(f github.com/vektra/mockery/v2/pkg/fixtures/example_project/replace_type/rti/internal.RTInternal2)
This is just further proof that we cannot do anything further until the Go devs update the compiler export format and importers.
from mockery.
Related Issues (20)
- Omitting `.Return()` on an expectation results in a panic and a stack trace rather than a useful error message HOT 7
- Mockery recursion should handle subpackages with their own config files
- Recursive: true appears to no longer work with v2.37 HOT 2
- Filename generated with variable name HOT 2
- 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
- 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
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.