Skip to content

Commit 2316c93

Browse files
authored
Handle Pointer types correctly (#51)
Closes #50
1 parent 134d167 commit 2316c93

File tree

3 files changed

+34
-0
lines changed

3 files changed

+34
-0
lines changed

intrange.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,8 @@ func recursiveOperandToString(
439439
return recursiveOperandToString(e.X, false) + "[" + recursiveOperandToString(e.Index, false) + "]"
440440
case *ast.BinaryExpr:
441441
return recursiveOperandToString(e.X, false) + " " + e.Op.String() + " " + recursiveOperandToString(e.Y, false)
442+
case *ast.StarExpr:
443+
return "*" + recursiveOperandToString(e.X, false)
442444
default:
443445
return ""
444446
}

testdata/main.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -663,3 +663,19 @@ func issue33() {
663663
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.`
664664
}
665665
}
666+
667+
func issue50() {
668+
x := 10
669+
i := &x
670+
for k := 0; k < int(*i); k++ { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)`
671+
}
672+
673+
for k := int(0); k < int(*i); k++ { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)`
674+
}
675+
676+
for k := 0; k < *i; k++ { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)`
677+
}
678+
679+
for k := int32(0); k < int32(*i); k++ { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)`
680+
}
681+
}

testdata/main.go.golden

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -663,3 +663,19 @@ func issue33() {
663663
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.`
664664
}
665665
}
666+
667+
func issue50() {
668+
x := 10
669+
i := &x
670+
for range *i { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)`
671+
}
672+
673+
for range *i { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)`
674+
}
675+
676+
for range *i { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)`
677+
}
678+
679+
for range int32(*i) { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)`
680+
}
681+
}

0 commit comments

Comments
 (0)