Ignore anonymous imports when resolving import aliases #150
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
Given the following two files in a package:
file1.go:
file2.go:
, suppose you want to generate a mock of
Barrier
.Today, running
moq -out barrier.mock.go . Barrier
would produce the following:barrier.mock.go
, which is invalid Go 😢 .
Why
This is caused by a specific interaction between two steps:
Combined, the above means the valid
bar
alias is overwritten by the invalid_
that gets processed later, and applied to the imported types in the generated functions.Solution
Ignore anonymous imports when constructing the alias map. This means a valid alias will never be overwritten, and as anonymous imports will always be unused by a mock, they will always be safe to ignore.