| Index: sdk/lib/_internal/compiler/implementation/ssa/value_range_analyzer.dart
|
| ===================================================================
|
| --- sdk/lib/_internal/compiler/implementation/ssa/value_range_analyzer.dart (revision 15190)
|
| +++ sdk/lib/_internal/compiler/implementation/ssa/value_range_analyzer.dart (working copy)
|
| @@ -628,12 +628,12 @@
|
| return info.newRange(value, value);
|
| }
|
|
|
| - Range visitInvokeInterceptor(HInvokeInterceptor interceptor) {
|
| - if (!interceptor.isInteger(types)) return info.newUnboundRange();
|
| - if (!interceptor.isLengthGetterOnStringOrArray(types)) {
|
| - return visitInstruction(interceptor);
|
| + Range visitFieldGet(HFieldGet fieldGet) {
|
| + if (!fieldGet.isInteger(types)) return info.newUnboundRange();
|
| + if (!fieldGet.receiver.isIndexablePrimitive(types)) {
|
| + return visitInstruction(fieldGet);
|
| }
|
| - LengthValue value = info.newLengthValue(interceptor);
|
| + LengthValue value = info.newLengthValue(fieldGet);
|
| // We know this range is above zero. To simplify the analysis, we
|
| // put the zero value as the lower bound of this range. This
|
| // allows to easily remove the second bound check in the following
|
|
|