// Copyright (c) 2018, 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.

// @dart = 2.9

// Test checking that inlines replacing binding instructions with non-binding
// instructions do not cause the compiler to crash due to not appropriately
// replacing uses of the original binding instruction.
//
// Here, all phi nodes generated within the try block are kept alive, and one of
// the phi nodes within toList (which gets inlined) uses the value of an
// instance call to setLength. Inlining setLength wthin toList replaced the
// (binding) InstanceCall instruction with a (non-binding) StoreInstanceField
// instruction, which caused the phi node to have an invalid SSA index argument.

void foo() {
  try {
    for (var i = 0; i < 1000; i++) {
      List(10).toList(growable: true);
    }
  } catch (e) {}
}

void main() {
  foo();
  foo();
}
