Fix testing plugin package-qualified result types #222
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.
Summary
Fixes #206 - Testing plugin was generating invalid Go syntax for method return types when the result was an array or slice.
Problem
The testing plugin generated syntactically invalid code like:
This is invalid because you cannot apply the pointer operator
*before an array type with package qualification in between.Solution
Leveraged Goa's existing
GoFullTypeRefmethod fromcodegen/scope.goto properly generate package-qualified type references. This method correctly handles:[]*Result→[]*pkg.Resultmap[K]*V→map[K]*pkg.V[]map[K]*V→[]map[K]*pkg.VChanges
PkgResultReffield toclientMethodDatastructscope.GoFullTypeRef(m.Result, svcData.PkgName)to generate correctly qualified typesclient_methods.go.tpltemplate to use{{ $method.PkgResultRef }}Testing
Benefits