// Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// Don't try to fit in 80 columns with this much nesting.
// dart format width=300
import 'package:expect/expect.dart';

// Stress tests on loop nesting depth. Make sure loop and induction
// analysis do not break down (excessive compile-time or otherwise)
// when analyzing a deeply nested loop with dependent bounds.

@pragma("vm:never-inline")
foo(List<int?> a) {
  for (int i0 = 100; i0 <= a.length - 101; i0++)
    for (int i1 = i0 - 1; i1 <= i0 + 1; i1++)
      for (int i2 = i1 - 1; i2 <= i1 + 1; i2++)
        for (int i3 = i2 - 1; i3 <= i2 + 1; i3++)
          for (int i4 = i3 - 1; i4 <= i3 + 1; i4++)
            for (int i5 = i4 - 1; i5 <= i4 + 1; i5++)
              for (int i6 = i5 - 1; i6 <= i5 + 1; i6++)
                for (int i7 = i6 - 1; i7 <= i6 + 1; i7++)
                  for (int i8 = i7 - 1; i8 <= i7 + 1; i8++)
                    for (int i9 = i8 - 1; i9 <= i8 + 1; i9++)
                      for (int i10 = i9 - 1; i10 <= i9 + 1; i10++)
                        for (int i11 = i10 - 1; i11 <= i10 + 1; i11++)
                          for (int i12 = i11 - 1; i12 <= i11 + 1; i12++)
                            for (int i13 = i12 - 1; i13 <= i12 + 1; i13++)
                              for (int i14 = i13 - 1; i14 <= i13 + 1; i14++)
                                for (int i15 = i14 - 1; i15 <= i14 + 1; i15++)
                                  for (int i16 = i15 - 1; i16 <= i15 + 1; i16++)
                                    for (int i17 = i16 - 1; i17 <= i16 + 1; i17++)
                                      for (int i18 = i17 - 1; i18 <= i17 + 1; i18++)
                                        for (int i19 = i18 - 1; i19 <= i18 + 1; i19++)
                                          for (int i20 = i19 - 1; i20 <= i19 + 1; i20++)
                                            for (int i21 = i20 - 1; i21 <= i20 + 1; i21++)
                                              for (int i22 = i21 - 1; i22 <= i21 + 1; i22++)
                                                for (int i23 = i22 - 1; i23 <= i22 + 1; i23++)
                                                  for (int i24 = i23 - 1; i24 <= i23 + 1; i24++)
                                                    for (int i25 = i24 - 1; i25 <= i24 + 1; i25++)
                                                      for (int i26 = i25 - 1; i26 <= i25 + 1; i26++)
                                                        for (int i27 = i26 - 1; i27 <= i26 + 1; i27++)
                                                          for (int i28 = i27 - 1; i28 <= i27 + 1; i28++)
                                                            for (int i29 = i28 - 1; i29 <= i28 + 1; i29++)
                                                              for (int i30 = i29 - 1; i30 <= i29 + 1; i30++)
                                                                for (int i31 = i30 - 1; i31 <= i30 + 1; i31++)
                                                                  for (int i32 = i31 - 1; i32 <= i31 + 1; i32++)
                                                                    for (int i33 = i32 - 1; i33 <= i32 + 1; i33++)
                                                                      for (int i34 = i33 - 1; i34 <= i33 + 1; i34++)
                                                                        for (int i35 = i34 - 1; i35 <= i34 + 1; i35++)
                                                                          for (int i36 = i35 - 1; i36 <= i35 + 1; i36++)
                                                                            for (int i37 = i36 - 1; i37 <= i36 + 1; i37++)
                                                                              for (int i38 = i37 - 1; i38 <= i37 + 1; i38++)
                                                                                for (int i39 = i38 - 1; i39 <= i38 + 1; i39++)
                                                                                  for (int i40 = i39 - 1; i40 <= i39 + 1; i40++)
                                                                                    for (int i41 = i40 - 1; i41 <= i40 + 1; i41++)
                                                                                      for (int i42 = i41 - 1; i42 <= i41 + 1; i42++)
                                                                                        for (int i43 = i42 - 1; i43 <= i42 + 1; i43++)
                                                                                          for (int i44 = i43 - 1; i44 <= i43 + 1; i44++)
                                                                                            for (int i45 = i44 - 1; i45 <= i44 + 1; i45++)
                                                                                              for (int i46 = i45 - 1; i46 <= i45 + 1; i46++)
                                                                                                for (int i47 = i46 - 1; i47 <= i46 + 1; i47++)
                                                                                                  for (int i48 = i47 - 1; i48 <= i47 + 1; i48++)
                                                                                                    for (int i49 = i48 - 1; i49 <= i48 + 1; i49++)
                                                                                                      for (int i50 = i49 - 1; i50 <= i49 + 1; i50++)
                                                                                                        for (int i51 = i50 - 1; i51 <= i50 + 1; i51++)
                                                                                                          for (int i52 = i51 - 1; i52 <= i51 + 1; i52++)
                                                                                                            for (int i53 = i52 - 1; i53 <= i52 + 1; i53++)
                                                                                                              for (int i54 = i53 - 1; i54 <= i53 + 1; i54++)
                                                                                                                for (int i55 = i54 - 1; i55 <= i54 + 1; i55++)
                                                                                                                  for (int i56 = i55 - 1; i56 <= i55 + 1; i56++)
                                                                                                                    for (int i57 = i56 - 1; i57 <= i56 + 1; i57++)
                                                                                                                      for (int i58 = i57 - 1; i58 <= i57 + 1; i58++)
                                                                                                                        for (int i59 = i58 - 1; i59 <= i58 + 1; i59++)
                                                                                                                          for (int i60 = i59 - 1; i60 <= i59 + 1; i60++)
                                                                                                                            for (int i61 = i60 - 1; i61 <= i60 + 1; i61++)
                                                                                                                              for (int i62 = i61 - 1; i62 <= i61 + 1; i62++)
                                                                                                                                for (int i63 = i62 - 1; i63 <= i62 + 1; i63++)
                                                                                                                                  for (int i64 = i63 - 1; i64 <= i63 + 1; i64++)
                                                                                                                                    for (int i65 = i64 - 1; i65 <= i64 + 1; i65++)
                                                                                                                                      for (int i66 = i65 - 1; i66 <= i65 + 1; i66++)
                                                                                                                                        for (int i67 = i66 - 1; i67 <= i66 + 1; i67++)
                                                                                                                                          for (int i68 = i67 - 1; i68 <= i67 + 1; i68++)
                                                                                                                                            for (int i69 = i68 - 1; i69 <= i68 + 1; i69++)
                                                                                                                                              for (int i70 = i69 - 1; i70 <= i69 + 1; i70++)
                                                                                                                                                for (int i71 = i70 - 1; i71 <= i70 + 1; i71++)
                                                                                                                                                  for (int i72 = i71 - 1; i72 <= i71 + 1; i72++)
                                                                                                                                                    for (int i73 = i72 - 1; i73 <= i72 + 1; i73++)
                                                                                                                                                      for (int i74 = i73 - 1; i74 <= i73 + 1; i74++)
                                                                                                                                                        for (int i75 = i74 - 1; i75 <= i74 + 1; i75++)
                                                                                                                                                          for (int i76 = i75 - 1; i76 <= i75 + 1; i76++)
                                                                                                                                                            for (int i77 = i76 - 1; i77 <= i76 + 1; i77++)
                                                                                                                                                              for (int i78 = i77 - 1; i78 <= i77 + 1; i78++)
                                                                                                                                                                for (int i79 = i78 - 1; i79 <= i78 + 1; i79++)
                                                                                                                                                                  for (int i80 = i79 - 1; i80 <= i79 + 1; i80++)
                                                                                                                                                                    for (int i81 = i80 - 1; i81 <= i80 + 1; i81++)
                                                                                                                                                                      for (int i82 = i81 - 1; i82 <= i81 + 1; i82++)
                                                                                                                                                                        for (int i83 = i82 - 1; i83 <= i82 + 1; i83++)
                                                                                                                                                                          for (int i84 = i83 - 1; i84 <= i83 + 1; i84++)
                                                                                                                                                                            for (int i85 = i84 - 1; i85 <= i84 + 1; i85++)
                                                                                                                                                                              for (int i86 = i85 - 1; i86 <= i85 + 1; i86++)
                                                                                                                                                                                for (int i87 = i86 - 1; i87 <= i86 + 1; i87++)
                                                                                                                                                                                  for (int i88 = i87 - 1; i88 <= i87 + 1; i88++)
                                                                                                                                                                                    for (int i89 = i88 - 1; i89 <= i88 + 1; i89++)
                                                                                                                                                                                      for (int i90 = i89 - 1; i90 <= i89 + 1; i90++)
                                                                                                                                                                                        for (int i91 = i90 - 1; i91 <= i90 + 1; i91++)
                                                                                                                                                                                          for (int i92 = i91 - 1; i92 <= i91 + 1; i92++)
                                                                                                                                                                                            for (int i93 = i92 - 1; i93 <= i92 + 1; i93++)
                                                                                                                                                                                              for (int i94 = i93 - 1; i94 <= i93 + 1; i94++)
                                                                                                                                                                                                for (int i95 = i94 - 1; i95 <= i94 + 1; i95++)
                                                                                                                                                                                                  for (int i96 = i95 - 1; i96 <= i95 + 1; i96++)
                                                                                                                                                                                                    for (int i97 = i96 - 1; i97 <= i96 + 1; i97++)
                                                                                                                                                                                                      for (int i98 = i97 - 1; i98 <= i97 + 1; i98++)
                                                                                                                                                                                                        for (int i99 = i98 - 1; i99 <= i98 + 1; i99++)
                                                                                                                                                                                                          for (int i100 = i99 - 1; i100 <= i99 + 1; i100++) {
                                                                                                                                                                                                            // Range [0,a.length).
                                                                                                                                                                                                            a[i100] = a[i100]! + 1;
                                                                                                                                                                                                          }
}

@pragma("vm:never-inline")
bar(List<int?> a) {
  for (int i0 = a.length - 101; i0 >= 100; i0--)
    for (int i1 = i0 + 1; i1 >= i0 - 1; i1--)
      for (int i2 = i1 + 1; i2 >= i1 - 1; i2--)
        for (int i3 = i2 + 1; i3 >= i2 - 1; i3--)
          for (int i4 = i3 + 1; i4 >= i3 - 1; i4--)
            for (int i5 = i4 + 1; i5 >= i4 - 1; i5--)
              for (int i6 = i5 + 1; i6 >= i5 - 1; i6--)
                for (int i7 = i6 + 1; i7 >= i6 - 1; i7--)
                  for (int i8 = i7 + 1; i8 >= i7 - 1; i8--)
                    for (int i9 = i8 + 1; i9 >= i8 - 1; i9--)
                      for (int i10 = i9 + 1; i10 >= i9 - 1; i10--)
                        for (int i11 = i10 + 1; i11 >= i10 - 1; i11--)
                          for (int i12 = i11 + 1; i12 >= i11 - 1; i12--)
                            for (int i13 = i12 + 1; i13 >= i12 - 1; i13--)
                              for (int i14 = i13 + 1; i14 >= i13 - 1; i14--)
                                for (int i15 = i14 + 1; i15 >= i14 - 1; i15--)
                                  for (int i16 = i15 + 1; i16 >= i15 - 1; i16--)
                                    for (int i17 = i16 + 1; i17 >= i16 - 1; i17--)
                                      for (int i18 = i17 + 1; i18 >= i17 - 1; i18--)
                                        for (int i19 = i18 + 1; i19 >= i18 - 1; i19--)
                                          for (int i20 = i19 + 1; i20 >= i19 - 1; i20--)
                                            for (int i21 = i20 + 1; i21 >= i20 - 1; i21--)
                                              for (int i22 = i21 + 1; i22 >= i21 - 1; i22--)
                                                for (int i23 = i22 + 1; i23 >= i22 - 1; i23--)
                                                  for (int i24 = i23 + 1; i24 >= i23 - 1; i24--)
                                                    for (int i25 = i24 + 1; i25 >= i24 - 1; i25--)
                                                      for (int i26 = i25 + 1; i26 >= i25 - 1; i26--)
                                                        for (int i27 = i26 + 1; i27 >= i26 - 1; i27--)
                                                          for (int i28 = i27 + 1; i28 >= i27 - 1; i28--)
                                                            for (int i29 = i28 + 1; i29 >= i28 - 1; i29--)
                                                              for (int i30 = i29 + 1; i30 >= i29 - 1; i30--)
                                                                for (int i31 = i30 + 1; i31 >= i30 - 1; i31--)
                                                                  for (int i32 = i31 + 1; i32 >= i31 - 1; i32--)
                                                                    for (int i33 = i32 + 1; i33 >= i32 - 1; i33--)
                                                                      for (int i34 = i33 + 1; i34 >= i33 - 1; i34--)
                                                                        for (int i35 = i34 + 1; i35 >= i34 - 1; i35--)
                                                                          for (int i36 = i35 + 1; i36 >= i35 - 1; i36--)
                                                                            for (int i37 = i36 + 1; i37 >= i36 - 1; i37--)
                                                                              for (int i38 = i37 + 1; i38 >= i37 - 1; i38--)
                                                                                for (int i39 = i38 + 1; i39 >= i38 - 1; i39--)
                                                                                  for (int i40 = i39 + 1; i40 >= i39 - 1; i40--)
                                                                                    for (int i41 = i40 + 1; i41 >= i40 - 1; i41--)
                                                                                      for (int i42 = i41 + 1; i42 >= i41 - 1; i42--)
                                                                                        for (int i43 = i42 + 1; i43 >= i42 - 1; i43--)
                                                                                          for (int i44 = i43 + 1; i44 >= i43 - 1; i44--)
                                                                                            for (int i45 = i44 + 1; i45 >= i44 - 1; i45--)
                                                                                              for (int i46 = i45 + 1; i46 >= i45 - 1; i46--)
                                                                                                for (int i47 = i46 + 1; i47 >= i46 - 1; i47--)
                                                                                                  for (int i48 = i47 + 1; i48 >= i47 - 1; i48--)
                                                                                                    for (int i49 = i48 + 1; i49 >= i48 - 1; i49--)
                                                                                                      for (int i50 = i49 + 1; i50 >= i49 - 1; i50--)
                                                                                                        for (int i51 = i50 + 1; i51 >= i50 - 1; i51--)
                                                                                                          for (int i52 = i51 + 1; i52 >= i51 - 1; i52--)
                                                                                                            for (int i53 = i52 + 1; i53 >= i52 - 1; i53--)
                                                                                                              for (int i54 = i53 + 1; i54 >= i53 - 1; i54--)
                                                                                                                for (int i55 = i54 + 1; i55 >= i54 - 1; i55--)
                                                                                                                  for (int i56 = i55 + 1; i56 >= i55 - 1; i56--)
                                                                                                                    for (int i57 = i56 + 1; i57 >= i56 - 1; i57--)
                                                                                                                      for (int i58 = i57 + 1; i58 >= i57 - 1; i58--)
                                                                                                                        for (int i59 = i58 + 1; i59 >= i58 - 1; i59--)
                                                                                                                          for (int i60 = i59 + 1; i60 >= i59 - 1; i60--)
                                                                                                                            for (int i61 = i60 + 1; i61 >= i60 - 1; i61--)
                                                                                                                              for (int i62 = i61 + 1; i62 >= i61 - 1; i62--)
                                                                                                                                for (int i63 = i62 + 1; i63 >= i62 - 1; i63--)
                                                                                                                                  for (int i64 = i63 + 1; i64 >= i63 - 1; i64--)
                                                                                                                                    for (int i65 = i64 + 1; i65 >= i64 - 1; i65--)
                                                                                                                                      for (int i66 = i65 + 1; i66 >= i65 - 1; i66--)
                                                                                                                                        for (int i67 = i66 + 1; i67 >= i66 - 1; i67--)
                                                                                                                                          for (int i68 = i67 + 1; i68 >= i67 - 1; i68--)
                                                                                                                                            for (int i69 = i68 + 1; i69 >= i68 - 1; i69--)
                                                                                                                                              for (int i70 = i69 + 1; i70 >= i69 - 1; i70--)
                                                                                                                                                for (int i71 = i70 + 1; i71 >= i70 - 1; i71--)
                                                                                                                                                  for (int i72 = i71 + 1; i72 >= i71 - 1; i72--)
                                                                                                                                                    for (int i73 = i72 + 1; i73 >= i72 - 1; i73--)
                                                                                                                                                      for (int i74 = i73 + 1; i74 >= i73 - 1; i74--)
                                                                                                                                                        for (int i75 = i74 + 1; i75 >= i74 - 1; i75--)
                                                                                                                                                          for (int i76 = i75 + 1; i76 >= i75 - 1; i76--)
                                                                                                                                                            for (int i77 = i76 + 1; i77 >= i76 - 1; i77--)
                                                                                                                                                              for (int i78 = i77 + 1; i78 >= i77 - 1; i78--)
                                                                                                                                                                for (int i79 = i78 + 1; i79 >= i78 - 1; i79--)
                                                                                                                                                                  for (int i80 = i79 + 1; i80 >= i79 - 1; i80--)
                                                                                                                                                                    for (int i81 = i80 + 1; i81 >= i80 - 1; i81--)
                                                                                                                                                                      for (int i82 = i81 + 1; i82 >= i81 - 1; i82--)
                                                                                                                                                                        for (int i83 = i82 + 1; i83 >= i82 - 1; i83--)
                                                                                                                                                                          for (int i84 = i83 + 1; i84 >= i83 - 1; i84--)
                                                                                                                                                                            for (int i85 = i84 + 1; i85 >= i84 - 1; i85--)
                                                                                                                                                                              for (int i86 = i85 + 1; i86 >= i85 - 1; i86--)
                                                                                                                                                                                for (int i87 = i86 + 1; i87 >= i86 - 1; i87--)
                                                                                                                                                                                  for (int i88 = i87 + 1; i88 >= i87 - 1; i88--)
                                                                                                                                                                                    for (int i89 = i88 + 1; i89 >= i88 - 1; i89--)
                                                                                                                                                                                      for (int i90 = i89 + 1; i90 >= i89 - 1; i90--)
                                                                                                                                                                                        for (int i91 = i90 + 1; i91 >= i90 - 1; i91--)
                                                                                                                                                                                          for (int i92 = i91 + 1; i92 >= i91 - 1; i92--)
                                                                                                                                                                                            for (int i93 = i92 + 1; i93 >= i92 - 1; i93--)
                                                                                                                                                                                              for (int i94 = i93 + 1; i94 >= i93 - 1; i94--)
                                                                                                                                                                                                for (int i95 = i94 + 1; i95 >= i94 - 1; i95--)
                                                                                                                                                                                                  for (int i96 = i95 + 1; i96 >= i95 - 1; i96--)
                                                                                                                                                                                                    for (int i97 = i96 + 1; i97 >= i96 - 1; i97--)
                                                                                                                                                                                                      for (int i98 = i97 + 1; i98 >= i97 - 1; i98--)
                                                                                                                                                                                                        for (int i99 = i98 + 1; i99 >= i98 - 1; i99--)
                                                                                                                                                                                                          for (int i100 = i99 + 1; i100 >= i99 - 1; i100--) {
                                                                                                                                                                                                            // Range [0,a.length).
                                                                                                                                                                                                            a[i100] = a[i100]! + 1;
                                                                                                                                                                                                          }
}

main() {
  // To avoid executing the deep loops completely, we pass in a list
  // with null values, so that each first iteration throws an exception.
  List<int?> a = new List<int?>.filled(300, null);
  int tryCallingPlusOnNull = 0;
  try {
    foo(a);
  } on TypeError catch (e) {
    ++tryCallingPlusOnNull;
  }
  try {
    bar(a);
  } on TypeError catch (e) {
    ++tryCallingPlusOnNull;
  }
  Expect.equals(2, tryCallingPlusOnNull);
}
