// recursivelyCollectInitDependencies recursively collects the initialization dependency fields for the // field member, placing them in the deps map. func (gm generatingModule) recursivelyCollectInitDependencies(current typegraph.TGMember, field typegraph.TGMember, deps map[typegraph.TGMember]bool) { if _, found := deps[current]; found { return } if field.NodeId != current.NodeId && current.IsField() { deps[current] = true } else { srgMember, hasSRGMember := gm.Generator.getSRGMember(current) if !hasSRGMember { return } scope, _ := gm.Generator.scopegraph.GetScope(srgMember.GraphNode) for _, staticDep := range scope.GetStaticDependencies() { memberNodeId := compilergraph.GraphNodeId(staticDep.GetReferencedNode()) member := gm.Generator.scopegraph.TypeGraph().GetTypeOrMember(memberNodeId) gm.recursivelyCollectInitDependencies(member.(typegraph.TGMember), field, deps) } } }