library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

static final field core::bool inSoundMode = !(core::_GrowableList::•<core::int?>(0) is{ForNonNullableByDefault} core::List<core::int>);
static method main() → dynamic {
  try {
    throw let dynamic #t1 = null as{ForNonNullableByDefault} dynamic in #t1 == null ?{core::Object} #t1 as{TypeError,ForNonNullableByDefault} core::Object : #t1{core::Object};
  }
  on core::NullThrownError catch(final core::NullThrownError e) {
    if(self::inSoundMode) {
      throw "Expected TypeError";
    }
    else {
      core::print("${e.{core::Object::runtimeType}{core::Type}}:${e}");
    }
  }
  on core::TypeError catch(final core::TypeError e) {
    if(self::inSoundMode) {
      core::print("${e.{core::Object::runtimeType}{core::Type}}:${e}");
    }
    else {
      throw "Expected NullThrowError";
    }
  }
}


Extra constant evaluation status:
Evaluated: AsExpression @ org-dartlang-testcase:///issue49198.dart:9:16 -> NullConstant(null)
Evaluated: EqualsNull @ org-dartlang-testcase:///issue49198.dart:9:5 -> BoolConstant(true)
Evaluated: VariableGet @ org-dartlang-testcase:///issue49198.dart:9:16 -> NullConstant(null)
Evaluated: VariableGet @ org-dartlang-testcase:///issue49198.dart:9:5 -> NullConstant(null)
Extra constant evaluation: evaluated: 25, effectively constant: 4
