// ---- AUTO-GENERATED -------------------
// This file was autogenerated by running:
//
//     dart path/to/up_to_date_test.dart update
//
// Do not edit this file by hand.
// ---------------------------------------

library tests.compiler.dart2js.cps_ir.update_all;

import 'runner.dart';

main(args) {
  runTest('argument_refinement_1.dart', update: true);
  runTest('argument_refinement_10.dart', update: true);
  runTest('argument_refinement_11.dart', update: true);
  runTest('argument_refinement_12.dart', update: true);
  runTest('argument_refinement_13.dart', update: true);
  runTest('argument_refinement_14.dart', update: true);
  runTest('argument_refinement_15.dart', update: true);
  runTest('argument_refinement_16.dart', update: true);
  runTest('argument_refinement_17.dart', update: true);
  runTest('argument_refinement_18.dart', update: true);
  runTest('argument_refinement_19.dart', update: true);
  runTest('argument_refinement_2.dart', update: true);
  runTest('argument_refinement_20.dart', update: true);
  runTest('argument_refinement_21.dart', update: true);
  runTest('argument_refinement_22.dart', update: true);
  runTest('argument_refinement_23.dart', update: true);
  runTest('argument_refinement_24.dart', update: true);
  runTest('argument_refinement_25.dart', update: true);
  runTest('argument_refinement_26.dart', update: true);
  runTest('argument_refinement_27.dart', update: true);
  runTest('argument_refinement_28.dart', update: true);
  runTest('argument_refinement_3.dart', update: true);
  runTest('argument_refinement_4.dart', update: true);
  runTest('argument_refinement_5.dart', update: true);
  runTest('argument_refinement_6.dart', update: true);
  runTest('argument_refinement_7.dart', update: true);
  runTest('argument_refinement_8.dart', update: true);
  runTest('argument_refinement_9.dart', update: true);
  runTest('argument_refinement_num_1.dart', update: true);
  runTest('argument_refinement_num_10.dart', update: true);
  runTest('argument_refinement_num_11.dart', update: true);
  runTest('argument_refinement_num_12.dart', update: true);
  runTest('argument_refinement_num_13.dart', update: true);
  runTest('argument_refinement_num_14.dart', update: true);
  runTest('argument_refinement_num_15.dart', update: true);
  runTest('argument_refinement_num_16.dart', update: true);
  runTest('argument_refinement_num_17.dart', update: true);
  runTest('argument_refinement_num_2.dart', update: true);
  runTest('argument_refinement_num_3.dart', update: true);
  runTest('argument_refinement_num_4.dart', update: true);
  runTest('argument_refinement_num_5.dart', update: true);
  runTest('argument_refinement_num_6.dart', update: true);
  runTest('argument_refinement_num_7.dart', update: true);
  runTest('argument_refinement_num_8.dart', update: true);
  runTest('argument_refinement_num_9.dart', update: true);
  runTest('basic_1.dart', update: true);
  runTest('basic_10.dart', update: true);
  runTest('basic_11.dart', update: true);
  runTest('basic_12.dart', update: true);
  runTest('basic_13.dart', update: true);
  runTest('basic_14.dart', update: true);
  runTest('basic_15.dart', update: true);
  runTest('basic_16.dart', update: true);
  runTest('basic_2.dart', update: true);
  runTest('basic_3.dart', update: true);
  runTest('basic_4.dart', update: true);
  runTest('basic_5.dart', update: true);
  runTest('basic_6.dart', update: true);
  runTest('basic_7.dart', update: true);
  runTest('basic_8.dart', update: true);
  runTest('basic_9.dart', update: true);
  runTest('closures_1.dart', update: true);
  runTest('closures_10.dart', update: true);
  runTest('closures_11.dart', update: true);
  runTest('closures_12.dart', update: true);
  runTest('closures_13.dart', update: true);
  runTest('closures_14.dart', update: true);
  runTest('closures_15.dart', update: true);
  runTest('closures_2.dart', update: true);
  runTest('closures_3.dart', update: true);
  runTest('closures_4.dart', update: true);
  runTest('closures_5.dart', update: true);
  runTest('closures_6.dart', update: true);
  runTest('closures_7.dart', update: true);
  runTest('closures_8.dart', update: true);
  runTest('closures_9.dart', update: true);
  runTest('codeUnitAt_1.dart', update: true);
  runTest('codeUnitAt_2.dart', update: true);
  runTest('constructor_1.dart', update: true);
  runTest('constructor_10.dart', update: true);
  runTest('constructor_11.dart', update: true);
  runTest('constructor_12.dart', update: true);
  runTest('constructor_13.dart', update: true);
  runTest('constructor_14.dart', update: true);
  runTest('constructor_2.dart', update: true);
  runTest('constructor_3.dart', update: true);
  runTest('constructor_4.dart', update: true);
  runTest('constructor_5.dart', update: true);
  runTest('constructor_6.dart', update: true);
  runTest('constructor_7.dart', update: true);
  runTest('constructor_8.dart', update: true);
  runTest('constructor_9.dart', update: true);
  runTest('control_flow_1.dart', update: true);
  runTest('control_flow_2.dart', update: true);
  runTest('control_flow_3.dart', update: true);
  runTest('control_flow_4.dart', update: true);
  runTest('control_flow_5.dart', update: true);
  runTest('control_flow_6.dart', update: true);
  runTest('control_flow_7.dart', update: true);
  runTest('control_flow_8.dart', update: true);
  runTest('control_flow_9.dart', update: true);
  runTest('gvn_1.dart', update: true);
  runTest('interceptors_1.dart', update: true);
  runTest('interceptors_2.dart', update: true);
  runTest('literals_1.dart', update: true);
  runTest('operators2_1.dart', update: true);
  runTest('operators2_2.dart', update: true);
  runTest('operators2_3.dart', update: true);
  runTest('operators2_4.dart', update: true);
  runTest('operators2_5.dart', update: true);
  runTest('operators2_6.dart', update: true);
  runTest('operators2_7.dart', update: true);
  runTest('operators2_8.dart', update: true);
  runTest('operators_1.dart', update: true);
  runTest('operators_2.dart', update: true);
  runTest('operators_3.dart', update: true);
  runTest('operators_4.dart', update: true);
  runTest('operators_5.dart', update: true);
  runTest('operators_6.dart', update: true);
  runTest('operators_7.dart', update: true);
  runTest('operators_8.dart', update: true);
  runTest('runtime_types_1.dart', update: true);
  runTest('runtime_types_2.dart', update: true);
  runTest('runtime_types_3.dart', update: true);
  runTest('runtime_types_4.dart', update: true);
  runTest('supercall_1.dart', update: true);
  runTest('supercall_2.dart', update: true);
  runTest('supercall_3.dart', update: true);
}
