Skip to content

Commit 5c039b1

Browse files
authored
Enable unparam linter and fix issues (#873)
Reference: #865 To reduce potential confusion caused by function signatures. Previously: ```text terraform/state.go:387:30: `(*State).removeModule` - `path` is unused (unparam) func (s *State) removeModule(path []string, v *ModuleState) { ^ terraform/state.go:415:32: `(*State).removeInstance` - `path` is unused (unparam) func (s *State) removeInstance(path []string, r *ResourceState, v *InstanceState) { ^ helper/resource/testing.go:549:58: Test$1 - result 1 (error) is always nil (unparam) c.ProviderFactories[name] = func() (*schema.Provider, error) { ^ helper/resource/testing.go:1007:33: `modulePrimaryInstanceState` - `s` is unused (unparam) func modulePrimaryInstanceState(s *terraform.State, ms *terraform.ModuleState, name string) (*terraform.InstanceState, error) { ^ helper/resource/testing_test.go:39:21: TestTest_factoryError$1 - result 0 (*github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.Provider) is always nil (unparam) factory := func() (*schema.Provider, error) { ^ helper/schema/field_reader.go:174:32: `readListField` - `schema` is unused (unparam) r FieldReader, addr []string, schema *Schema) (FieldReadResult, error) { ^ helper/schema/field_reader_config_test.go:538:17: `testConfig` - `t` is unused (unparam) func testConfig(t *testing.T, raw map[string]interface{}) *terraform.ResourceConfig { ^ helper/schema/field_writer_map.go:118:2: `(*MapFieldWriter).setList` - `schema` is unused (unparam) schema *Schema) error { ^ helper/schema/field_writer_map.go:164:2: `(*MapFieldWriter).setMap` - `schema` is unused (unparam) schema *Schema) error { ^ helper/schema/field_writer_map.go:211:2: `(*MapFieldWriter).setObject` - `schema` is unused (unparam) schema *Schema) error { ^ helper/schema/grpc_provider.go:359:50: `(*GRPCProviderServer).upgradeFlatmapState` - `ctx` is unused (unparam) func (s *GRPCProviderServer) upgradeFlatmapState(ctx context.Context, version int, m map[string]string, res *Resource) (map[string]interface{}, int, error) { ^ helper/schema/resource.go:853:47: `isReservedResourceFieldName` - `s` is unused (unparam) func isReservedResourceFieldName(name string, s *Schema) bool { ^ helper/schema/resource_diff_test.go:41:34: `testDiffCases` - `oldPrefix` is unused (unparam) func testDiffCases(t *testing.T, oldPrefix string, oldOffset int, computed bool) []resourceDiffTestCase { ^ helper/schema/resource_test.go:557:38: `TestResourceApply_isNewResource$1` - `m` is unused (unparam) updateFunc := func(d *ResourceData, m interface{}) error { ```
1 parent dfcf7bc commit 5c039b1

14 files changed

+30
-32
lines changed

.golangci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@ linters:
2323
# - staticcheck # TODO: https://github.com/hashicorp/terraform-plugin-sdk/issues/865
2424
# - tenv # TODO: Enable when upgrading Go 1.16 to 1.17
2525
- unconvert
26-
# - unparam # TODO: https://github.com/hashicorp/terraform-plugin-sdk/issues/865
26+
- unparam
2727
- varcheck
2828
- vet

helper/resource/testing.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,7 @@ func Test(t testing.T, c TestCase) {
546546
t.Fatalf("ProviderFactory for %q already exists, cannot overwrite with Provider", name)
547547
}
548548
prov := p
549-
c.ProviderFactories[name] = func() (*schema.Provider, error) {
549+
c.ProviderFactories[name] = func() (*schema.Provider, error) { //nolint:unparam // required signature
550550
return prov, nil
551551
}
552552
}
@@ -1004,7 +1004,7 @@ func TestMatchOutput(name string, r *regexp.Regexp) TestCheckFunc {
10041004

10051005
// modulePrimaryInstanceState returns the instance state for the given resource
10061006
// name in a ModuleState
1007-
func modulePrimaryInstanceState(s *terraform.State, ms *terraform.ModuleState, name string) (*terraform.InstanceState, error) {
1007+
func modulePrimaryInstanceState(ms *terraform.ModuleState, name string) (*terraform.InstanceState, error) {
10081008
rs, ok := ms.Resources[name]
10091009
if !ok {
10101010
return nil, fmt.Errorf("Not found: %s in %s", name, ms.Path)
@@ -1026,14 +1026,14 @@ func modulePathPrimaryInstanceState(s *terraform.State, mp addrs.ModuleInstance,
10261026
return nil, fmt.Errorf("No module found at: %s", mp)
10271027
}
10281028

1029-
return modulePrimaryInstanceState(s, ms, name)
1029+
return modulePrimaryInstanceState(ms, name)
10301030
}
10311031

10321032
// primaryInstanceState returns the primary instance state for the given
10331033
// resource name in the root module.
10341034
func primaryInstanceState(s *terraform.State, name string) (*terraform.InstanceState, error) {
10351035
ms := s.RootModule()
1036-
return modulePrimaryInstanceState(s, ms, name)
1036+
return modulePrimaryInstanceState(ms, name)
10371037
}
10381038

10391039
// indexesIntoTypeSet is a heuristic to try and identify if a flatmap style

helper/resource/testing_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func TestParallelTest(t *testing.T) {
3636
func TestTest_factoryError(t *testing.T) {
3737
resourceFactoryError := fmt.Errorf("resource factory error")
3838

39-
factory := func() (*schema.Provider, error) {
39+
factory := func() (*schema.Provider, error) { //nolint:unparam // required signature
4040
return nil, resourceFactoryError
4141
}
4242
mt := new(mockT)

helper/schema/field_reader.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ func addrToSchema(addr []string, schemaMap map[string]*Schema) []*Schema {
171171
// "foo.#" for a list "foo" and that the indexes are "foo.0", "foo.1", etc.
172172
// after that point.
173173
func readListField(
174-
r FieldReader, addr []string, schema *Schema) (FieldReadResult, error) {
174+
r FieldReader, addr []string) (FieldReadResult, error) {
175175
addrPadded := make([]string, len(addr)+1)
176176
copy(addrPadded, addr)
177177
addrPadded[len(addrPadded)-1] = "#"

helper/schema/field_reader_config.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ func (r *ConfigFieldReader) readField(
100100
case TypeBool, TypeFloat, TypeInt, TypeString:
101101
return r.readPrimitive(k, schema)
102102
case TypeList:
103-
return readListField(&nestedConfigFieldReader{r}, address, schema)
103+
return readListField(&nestedConfigFieldReader{r}, address)
104104
case TypeMap:
105105
return r.readMap(k, schema)
106106
case TypeSet:
@@ -258,7 +258,7 @@ func (r *ConfigFieldReader) readSet(
258258
// Create the set that will be our result
259259
set := schema.ZeroValue().(*Set)
260260

261-
raw, err := readListField(&nestedConfigFieldReader{r}, address, schema)
261+
raw, err := readListField(&nestedConfigFieldReader{r}, address)
262262
if err != nil {
263263
return FieldReadResult{}, err
264264
}

helper/schema/field_reader_config_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -536,5 +536,6 @@ func TestConfigFieldReader_computedComplexSet(t *testing.T) {
536536
}
537537

538538
func testConfig(t *testing.T, raw map[string]interface{}) *terraform.ResourceConfig {
539+
t.Helper()
539540
return terraform.NewResourceConfigRaw(raw)
540541
}

helper/schema/field_reader_diff.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ func (r *DiffFieldReader) ReadField(address []string) (FieldReadResult, error) {
6767
case TypeBool, TypeInt, TypeFloat, TypeString:
6868
res, err = r.readPrimitive(address, schema)
6969
case TypeList:
70-
res, err = readListField(r, address, schema)
70+
res, err = readListField(r, address)
7171
case TypeMap:
7272
res, err = r.readMap(address, schema)
7373
case TypeSet:

helper/schema/field_reader_map.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func (r *MapFieldReader) ReadField(address []string) (FieldReadResult, error) {
2424
case TypeBool, TypeInt, TypeFloat, TypeString:
2525
return r.readPrimitive(address, schema)
2626
case TypeList:
27-
return readListField(r, address, schema)
27+
return readListField(r, address)
2828
case TypeMap:
2929
return r.readMap(k, schema)
3030
case TypeSet:

helper/schema/field_writer_map.go

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -100,22 +100,21 @@ func (w *MapFieldWriter) set(addr []string, value interface{}) error {
100100
case TypeBool, TypeInt, TypeFloat, TypeString:
101101
return w.setPrimitive(addr, value, schema)
102102
case TypeList:
103-
return w.setList(addr, value, schema)
103+
return w.setList(addr, value)
104104
case TypeMap:
105-
return w.setMap(addr, value, schema)
105+
return w.setMap(addr, value)
106106
case TypeSet:
107107
return w.setSet(addr, value, schema)
108108
case typeObject:
109-
return w.setObject(addr, value, schema)
109+
return w.setObject(addr, value)
110110
default:
111111
panic(fmt.Sprintf("Unknown type: %#v", schema.Type))
112112
}
113113
}
114114

115115
func (w *MapFieldWriter) setList(
116116
addr []string,
117-
v interface{},
118-
schema *Schema) error {
117+
v interface{}) error {
119118
k := strings.Join(addr, ".")
120119
setElement := func(idx string, value interface{}) error {
121120
addrCopy := make([]string, len(addr), len(addr)+1)
@@ -160,8 +159,7 @@ func (w *MapFieldWriter) setList(
160159

161160
func (w *MapFieldWriter) setMap(
162161
addr []string,
163-
value interface{},
164-
schema *Schema) error {
162+
value interface{}) error {
165163
k := strings.Join(addr, ".")
166164
v := reflect.ValueOf(value)
167165
vs := make(map[string]interface{})
@@ -207,8 +205,7 @@ func (w *MapFieldWriter) setMap(
207205

208206
func (w *MapFieldWriter) setObject(
209207
addr []string,
210-
value interface{},
211-
schema *Schema) error {
208+
value interface{}) error {
212209
// Set the entire object. First decode into a proper structure
213210
var v map[string]interface{}
214211
if err := mapstructure.Decode(value, &v); err != nil {

helper/schema/grpc_provider.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ func (s *GRPCProviderServer) UpgradeResourceState(ctx context.Context, req *tfpr
355355
// map[string]interface{}.
356356
// upgradeFlatmapState returns the json map along with the corresponding schema
357357
// version.
358-
func (s *GRPCProviderServer) upgradeFlatmapState(ctx context.Context, version int, m map[string]string, res *Resource) (map[string]interface{}, int, error) {
358+
func (s *GRPCProviderServer) upgradeFlatmapState(_ context.Context, version int, m map[string]string, res *Resource) (map[string]interface{}, int, error) {
359359
// this will be the version we've upgraded so, defaulting to the given
360360
// version in case no migration was called.
361361
upgradedVersion := version

0 commit comments

Comments
 (0)