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

import "org-dartlang-testcase:///issue41499b_lib.dart" as opt_in;

typedef LegacyFoo = () → void;
static method test(() → void f) → dynamic
  ;
static method main() → dynamic
  ;

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

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

class C extends core::Object {
  synthetic constructor •() → self2::C
    ;
  static method sTest() → () → void
    ;
  method mTest() → () → void
    ;
  get gTest() → () → void
    ;
}
static method test() → () → void
  ;
