diff --git a/intrange.go b/intrange.go index 229c847..9173bdf 100644 --- a/intrange.go +++ b/intrange.go @@ -439,6 +439,8 @@ func recursiveOperandToString( return recursiveOperandToString(e.X, false) + "[" + recursiveOperandToString(e.Index, false) + "]" case *ast.BinaryExpr: return recursiveOperandToString(e.X, false) + " " + e.Op.String() + " " + recursiveOperandToString(e.Y, false) + case *ast.StarExpr: + return "*" + recursiveOperandToString(e.X, false) default: return "" } diff --git a/testdata/main.go b/testdata/main.go index 3690bcf..b7c2077 100644 --- a/testdata/main.go +++ b/testdata/main.go @@ -663,3 +663,19 @@ func issue33() { for i = 0; i < 10; i++ { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)\nBecause the key is not part of the loop's scope, take care to consider side effects.` } } + +func issue50() { + x := 10 + i := &x + for k := 0; k < int(*i); k++ { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)` + } + + for k := int(0); k < int(*i); k++ { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)` + } + + for k := 0; k < *i; k++ { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)` + } + + for k := int32(0); k < int32(*i); k++ { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)` + } +} diff --git a/testdata/main.go.golden b/testdata/main.go.golden index 8f3c268..6e03687 100644 --- a/testdata/main.go.golden +++ b/testdata/main.go.golden @@ -663,3 +663,19 @@ func issue33() { for i = 0; i < 10; i++ { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)\nBecause the key is not part of the loop's scope, take care to consider side effects.` } } + +func issue50() { + x := 10 + i := &x + for range *i { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)` + } + + for range *i { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)` + } + + for range *i { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)` + } + + for range int32(*i) { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)` + } +}