diff --git a/config/raw_config.go b/config/raw_config.go index cf3bdf9bd3..260e315bb0 100644 --- a/config/raw_config.go +++ b/config/raw_config.go @@ -62,6 +62,10 @@ func (r *RawConfig) RawMap() map[string]interface{} { // Copy returns a copy of this RawConfig, uninterpolated. func (r *RawConfig) Copy() *RawConfig { + if r == nil { + return nil + } + r.lock.Lock() defer r.lock.Unlock() diff --git a/terraform/resource_test.go b/terraform/resource_test.go index ab6a2273b0..0916af09d9 100644 --- a/terraform/resource_test.go +++ b/terraform/resource_test.go @@ -247,6 +247,14 @@ func TestResourceConfigDeepCopy_nil(t *testing.T) { } } +func TestResourceConfigDeepCopy_nilComputed(t *testing.T) { + rc := &ResourceConfig{} + actual := rc.DeepCopy() + if actual.ComputedKeys != nil { + t.Fatalf("bad: %#v", actual) + } +} + func TestResourceConfigEqual_nil(t *testing.T) { var nilRc *ResourceConfig notNil := NewResourceConfig(nil)