Skip to content

Conversation

owen-mc
Copy link
Contributor

@owen-mc owen-mc commented Mar 20, 2025

A struct type like this

struct {
   A
}

was getting printed by depstubber as

struct {
  A A
}

This fixes that.

It was hard to test it locally because model/model.go is accessed from the github repo. I had to add some code after copying the go.mod file to add a redirection to it so that it uses the local copy. I have left this in, commented out, to make it easier to test this kind of changing in future.

Unfortunately I was not able to find any way to avoid printing promoted methods as if they were methods on the type itself. It seems this is deliberately not exposed in the reflect package.

owen-mc added 2 commits March 20, 2025 16:25
`model/model.go` is accessing from the github repo, so to test changes
to it we need to make sure it is read from the correct local folder
instead.
@owen-mc owen-mc marked this pull request as ready for review March 20, 2025 22:22
@Copilot Copilot AI review requested due to automatic review settings March 20, 2025 22:22
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request fixes the printing of embedded fields when using depstubber by preventing redundant field names in the output.

  • In reflect.go, a commented code block has been added to aid local testing by appending a replace directive to go.mod.
  • In model/model.go, an Anonymous field flag has been introduced in the Field struct and the Field.String() method has been updated to avoid printing the type name twice for embedded fields.

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
reflect.go Added a commented section for local development testing that appends a replace directive to go.mod.
model/model.go Introduced an Anonymous field and updated Field.String() to correctly print embedded fields without repetition.
Comments suppressed due to low confidence (2)

reflect.go:120

  • [nitpick] Consider adding a note or using build tags so that the commented testing code is clearly marked for removal or activation only in development environments.
// To enable local development of model/model.go, uncomment the following lines

model/model.go:607

  • Ensure that there is adequate test coverage verifying that anonymous fields are printed correctly without duplicating field names.
if f.Anonymous {

Tip: If you use Visual Studio Code, you can request a review from Copilot before you push from the "Source Control" tab. Learn more

@owen-mc owen-mc requested a review from a team March 21, 2025 09:50
@owen-mc owen-mc merged commit a10bef2 into main Mar 21, 2025
4 checks passed
@owen-mc owen-mc deleted the owen-mc/fix-embedded-fields branch March 21, 2025 11:19
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.

2 participants