File tree Expand file tree Collapse file tree 2 files changed +42
-0
lines changed Expand file tree Collapse file tree 2 files changed +42
-0
lines changed Original file line number Diff line number Diff line change @@ -245,6 +245,8 @@ func findNExpr(expr ast.Expr) ast.Expr {
245
245
return e
246
246
case * ast.SelectorExpr :
247
247
return e
248
+ case * ast.IndexExpr :
249
+ return e
248
250
default :
249
251
return nil
250
252
}
@@ -293,7 +295,19 @@ func identEqual(a, b ast.Expr) bool {
293
295
294
296
return identEqual (aT .Sel , selectorB .Sel ) && identEqual (aT .X , selectorB .X )
295
297
case * ast.IndexExpr :
298
+ indexB , ok := b .(* ast.IndexExpr )
299
+ if ok {
300
+ return identEqual (aT .X , indexB .X ) && identEqual (aT .Index , indexB .Index )
301
+ }
302
+
296
303
return identEqual (aT .X , b )
304
+ case * ast.BasicLit :
305
+ litB , ok := b .(* ast.BasicLit )
306
+ if ! ok {
307
+ return false
308
+ }
309
+
310
+ return aT .Value == litB .Value
297
311
default :
298
312
return false
299
313
}
Original file line number Diff line number Diff line change @@ -198,3 +198,31 @@ func issue16(service protoreflect.ServiceDescriptor) {
198
198
print (i )
199
199
}
200
200
}
201
+
202
+ func opReEval_IndexExpressions_ArrayLike (n []int ) {
203
+ for i := 0 ; i < n [0 ]; i ++ { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)`
204
+ print (i )
205
+ }
206
+
207
+ for i := 0 ; i < n [0 ]; i ++ {
208
+ n [0 ]++
209
+ }
210
+
211
+ for i := 0 ; i < n [0 ]; i ++ {
212
+ n [0 ] = 5
213
+ }
214
+ }
215
+
216
+ func opReEval_IndexExpressions_Map (n map [string ]int ) {
217
+ for i := 0 ; i < n ["N" ]; i ++ { // want `for loop can be changed to use an integer range \(Go 1\.22\+\)`
218
+ print (i )
219
+ }
220
+
221
+ for i := 0 ; i < n ["N" ]; i ++ {
222
+ n ["N" ]++
223
+ }
224
+
225
+ for i := 0 ; i < n ["N" ]; i ++ {
226
+ n ["N" ] = 5
227
+ }
228
+ }
You can’t perform that action at this time.
0 commit comments