library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd_mixed/literal_from_opt_in.dart:5:1: Error: A library can't opt out of non-nullable by default, when in nnbd-strong mode.
// // @dart=2.5
// ^^^^^^^^^^^^
//
import self as self;

import "org-dartlang-testcase:///literal_from_opt_in_lib.dart";

static method main() → dynamic
  ;

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

class Const<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/  {
  final field self2::Const::T% field;
  const constructor •(self2::Const::T% field) → self2::Const<self2::Const::T%>
    : self2::Const::field = field, super core::Object::•()
    ;
}
static const field self2::Const<core::int> a = const self2::Const::•<core::int>(0);
static const field self2::Const<core::int?> b = const self2::Const::•<core::int?>(0);
static const field self2::Const<core::int?> c = const self2::Const::•<core::int?>(null);
static const field self2::Const<core::int>? d = const self2::Const::•<core::int>(0);
static const field self2::Const<core::int>? e = null;
