fix References used by the ReferenceTransformer
There was a bug where all references would be discarded in the case when a self-reference was encountered. Since a module references all descendants by it's own path, it returns a self-reference by definition.
This commit is contained in:
parent
7e4dcdb9f0
commit
e0ad3300c6
|
@ -127,6 +127,7 @@ func (m *ReferenceMap) References(v dag.Vertex) ([]dag.Vertex, []string) {
|
||||||
var matches []dag.Vertex
|
var matches []dag.Vertex
|
||||||
var missing []string
|
var missing []string
|
||||||
prefix := m.prefix(v)
|
prefix := m.prefix(v)
|
||||||
|
|
||||||
for _, ns := range rn.References() {
|
for _, ns := range rn.References() {
|
||||||
found := false
|
found := false
|
||||||
for _, n := range strings.Split(ns, "/") {
|
for _, n := range strings.Split(ns, "/") {
|
||||||
|
@ -139,19 +140,14 @@ func (m *ReferenceMap) References(v dag.Vertex) ([]dag.Vertex, []string) {
|
||||||
// Mark that we found a match
|
// Mark that we found a match
|
||||||
found = true
|
found = true
|
||||||
|
|
||||||
// Make sure this isn't a self reference, which isn't included
|
|
||||||
selfRef := false
|
|
||||||
for _, p := range parents {
|
for _, p := range parents {
|
||||||
|
// don't include self-references
|
||||||
if p == v {
|
if p == v {
|
||||||
selfRef = true
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if selfRef {
|
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
matches = append(matches, p)
|
||||||
|
}
|
||||||
|
|
||||||
matches = append(matches, parents...)
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue