Git Product home page Git Product logo

Comments (2)

LandonTClipp avatar LandonTClipp commented on June 16, 2024

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.

golang/go#64208

from mockery.

LandonTClipp avatar LandonTClipp commented on June 16, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.