pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:13:31: Context: Write to t@343
  var /*@ type=int* */ v1 = t = getInt();
                              ^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:14:31: Context: Write to t@343
  var /*@ type=int* */ v4 = t ??= getInt();
                              ^^^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:15:31: Context: Write to t@343
  var /*@ type=int* */ v7 = t += getInt();
                              ^^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:16:30: Context: Write to t@343
  var /*@ type=int* */ v10 = ++t;
                             ^^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:17:31: Context: Write to t@343
  var /*@ type=int* */ v11 = t++;
                              ^^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:21:31: Context: Write to t@343
  var /*@ type=int* */ v1 = t = getInt();
                              ^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:22:31: Context: Write to t@343
  var /*@ type=num* */ v2 = t = getNum();
                              ^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:23:34: Context: Write to t@343
  var /*@ type=double* */ v3 = t = getDouble();
                                 ^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:24:31: Context: Write to t@343
  var /*@ type=num* */ v4 = t ??= getInt();
                              ^^^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:25:31: Context: Write to t@343
  var /*@ type=num* */ v5 = t ??= getNum();
                              ^^^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:26:31: Context: Write to t@343
  var /*@ type=num* */ v6 = t ??= getDouble();
                              ^^^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:27:31: Context: Write to t@343
  var /*@ type=num* */ v7 = t += getInt();
                              ^^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:28:31: Context: Write to t@343
  var /*@ type=num* */ v8 = t += getNum();
                              ^^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:29:31: Context: Write to t@343
  var /*@ type=num* */ v9 = t += getDouble();
                              ^^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:30:30: Context: Write to t@343
  var /*@ type=num* */ v10 = ++t;
                             ^^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:31:31: Context: Write to t@343
  var /*@ type=num* */ v11 = t++;
                              ^^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:35:34: Context: Write to t@343
  var /*@ type=double* */ v3 = t = getDouble();
                                 ^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:36:34: Context: Write to t@343
  var /*@ type=double* */ v6 = t ??= getDouble();
                                 ^^^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:37:34: Context: Write to t@343
  var /*@ type=double* */ v7 = t += getInt();
                                 ^^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:38:34: Context: Write to t@343
  var /*@ type=double* */ v8 = t += getNum();
                                 ^^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:39:34: Context: Write to t@343
  var /*@ type=double* */ v9 = t += getDouble();
                                 ^^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:40:33: Context: Write to t@343
  var /*@ type=double* */ v10 = ++t;
                                ^^
pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart:41:34: Context: Write to t@343
  var /*@ type=double* */ v11 = t++;
                                 ^^
