From 04281353e48cb97e69d3794660566ee98c569d03 Mon Sep 17 00:00:00 2001 From: Akshay Shah Date: Wed, 24 May 2017 21:59:26 -0700 Subject: [PATCH] Remove checks for complete graphs, fix tests --- container_test.go | 22 ---------------------- internal/graph/graph.go | 12 ------------ internal/graph/node.go | 8 -------- 3 files changed, 42 deletions(-) diff --git a/container_test.go b/container_test.go index d86e8420..86ca8b64 100644 --- a/container_test.go +++ b/container_test.go @@ -403,28 +403,6 @@ func TestInvokeReturnedError(t *testing.T) { assert.NoError(t, err) } -func TestInvokeFailureUnresolvedDependencies(t *testing.T) { - t.Parallel() - c := New() - - err := c.Provide( - NewParent1, - ) - assert.NoError(t, err) - - err = c.Invoke(func(p1 *Parent1) {}) - require.Contains(t, err.Error(), "unable to resolve *dig.Parent1") - - var zeroP12 *Parent12 - err = c.Invoke(func(p12 *Parent12) { - zeroP12 = p12 - }) - require.NoError(t, err) - newZeroP12, ok := reflect.Zero(reflect.TypeOf(zeroP12)).Interface().(*Parent12) - require.True(t, ok) - assert.Equal(t, zeroP12, newZeroP12) -} - func TestProvide(t *testing.T) { t.Parallel() c := New() diff --git a/internal/graph/graph.go b/internal/graph/graph.go index 46fc318c..0eaf691c 100644 --- a/internal/graph/graph.go +++ b/internal/graph/graph.go @@ -178,18 +178,6 @@ func (g *Graph) recursiveDetectCycles(n graphNode, l []string) error { return nil } -func (g *Graph) validateGraph(ct reflect.Type) (reflect.Value, error) { - for _, node := range g.nodes { - for _, dep := range node.dependencies() { - // check that the dependency is a registered objNode - if _, ok := g.nodes[dep]; !ok { - return reflect.Zero(ct), nil - } - } - } - return reflect.Zero(ct), nil -} - // ConstructorArguments returns arguments in the provided constructor func (g *Graph) ConstructorArguments(ctype reflect.Type) ([]reflect.Value, error) { // find dependencies from the graph and place them in the args diff --git a/internal/graph/node.go b/internal/graph/node.go index a05ab8f8..09a32f2b 100644 --- a/internal/graph/node.go +++ b/internal/graph/node.go @@ -97,14 +97,6 @@ func (n *funcNode) value(g *Graph, objType reflect.Type) (reflect.Value, error) } ct := reflect.TypeOf(n.constructor) - - // check that all the dependencies have nodes present in the graph - // doesn't mean everything will go smoothly during resolve, but it - // drastically increases the chances that we're not missing something - if v, err := g.validateGraph(ct); err != nil { - return v, err - } - args, err := g.ConstructorArguments(ct) if err != nil { return reflect.Zero(objType), err