pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:13:31: Context: Write to t@343
  var /*@ type=int* */ v1 = t = getInt();
                              ^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:14:31: Context: Write to t@343
  var /*@ type=num* */ v2 = t = getNum();
                              ^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:15:31: Context: Write to t@343
  var /*@ type=int* */ v4 = t ??= getInt();
                              ^^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:16:31: Context: Write to t@343
  var /*@ type=num* */ v5 = t ??= getNum();
                              ^^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:17:31: Context: Write to t@343
  var /*@ type=int* */ v7 = t += getInt();
                              ^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:18:31: Context: Write to t@343
  var /*@ type=num* */ v8 = t += getNum();
                              ^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:19:30: Context: Write to t@343
  var /*@ type=int* */ v10 = ++t;
                             ^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:20:31: Context: Write to t@343
  var /*@ type=int* */ v11 = t++;
                              ^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:24:31: Context: Write to t@343
  var /*@ type=int* */ v1 = t = getInt();
                              ^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:25:31: Context: Write to t@343
  var /*@ type=num* */ v2 = t = getNum();
                              ^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:26:34: Context: Write to t@343
  var /*@ type=double* */ v3 = t = getDouble();
                                 ^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:27:31: Context: Write to t@343
  var /*@ type=num* */ v4 = t ??= getInt();
                              ^^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:28:31: Context: Write to t@343
  var /*@ type=num* */ v5 = t ??= getNum();
                              ^^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:29:31: Context: Write to t@343
  var /*@ type=num* */ v6 = t ??= getDouble();
                              ^^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:30:31: Context: Write to t@343
  var /*@ type=num* */ v7 = t += getInt();
                              ^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:31:31: Context: Write to t@343
  var /*@ type=num* */ v8 = t += getNum();
                              ^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:32:31: Context: Write to t@343
  var /*@ type=num* */ v9 = t += getDouble();
                              ^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:33:30: Context: Write to t@343
  var /*@ type=num* */ v10 = ++t;
                             ^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:34:31: Context: Write to t@343
  var /*@ type=num* */ v11 = t++;
                              ^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:38:31: Context: Write to t@343
  var /*@ type=num* */ v2 = t = getNum();
                              ^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:39:34: Context: Write to t@343
  var /*@ type=double* */ v3 = t = getDouble();
                                 ^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:40:31: Context: Write to t@343
  var /*@ type=num* */ v5 = t ??= getNum();
                              ^^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:41:34: Context: Write to t@343
  var /*@ type=double* */ v6 = t ??= getDouble();
                                 ^^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:42:34: Context: Write to t@343
  var /*@ type=double* */ v7 = t += getInt();
                                 ^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:43:34: Context: Write to t@343
  var /*@ type=double* */ v8 = t += getNum();
                                 ^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:44:34: Context: Write to t@343
  var /*@ type=double* */ v9 = t += getDouble();
                                 ^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:45:33: Context: Write to t@343
  var /*@ type=double* */ v10 = ++t;
                                ^^
pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart:46:34: Context: Write to t@343
  var /*@ type=double* */ v11 = t++;
                                 ^^
