summaryrefslogtreecommitdiff
path: root/vendor/github.com/golang/mock/mockgen/tests/aux_imports_embedded_interface/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/golang/mock/mockgen/tests/aux_imports_embedded_interface/README.md')
-rw-r--r--vendor/github.com/golang/mock/mockgen/tests/aux_imports_embedded_interface/README.md36
1 files changed, 36 insertions, 0 deletions
diff --git a/vendor/github.com/golang/mock/mockgen/tests/aux_imports_embedded_interface/README.md b/vendor/github.com/golang/mock/mockgen/tests/aux_imports_embedded_interface/README.md
new file mode 100644
index 0000000..63955f6
--- /dev/null
+++ b/vendor/github.com/golang/mock/mockgen/tests/aux_imports_embedded_interface/README.md
@@ -0,0 +1,36 @@
+Embedded interfaces in `aux_files` generate `unknown embedded interface XXX` errors.
+See below for example of the problem:
+```
+// source
+import (
+ alias "some.org/package/imported"
+)
+
+type Source interface {
+ alias.Foreign
+}
+```
+
+```
+// some.org/package/imported
+type Foreign interface {
+ Embedded
+}
+
+type Embedded interface {}
+```
+
+Attempting to generate a mock will result in an `unknown embedded interface Embedded`.
+The issue is that the `fileParser` stores `auxInterfaces` underneath the package name
+explicitly specified in the `aux_files` flag.
+
+In the `parseInterface` method, there is an incorrect assumption about an embedded interface
+always being in the source file.
+```
+case *ast.Ident:
+ // Embedded interface in this package.
+ ei := p.auxInterfaces[""][v.String()]
+ if ei == nil {
+ return nil, p.errorf(v.Pos(), "unknown embedded interface %s", v.String())
+ }
+```