library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd/issue41108.dart:6:12: Error: A value of type 'List<dynamic>?' can't be assigned to a variable of type 'List<dynamic>' because 'List<dynamic>?' is nullable and 'List<dynamic>' isn't.
//  - 'List' is from 'dart:core'.
//   List y = await l(); // should be a List?
//            ^
//
import self as self;
import "dart:core" as core;
import "dart:async" as asy;

static method test() → dynamic async /* futureValueType= dynamic */ {
  core::List<dynamic> y = invalid-expression "pkg/front_end/testcases/nnbd/issue41108.dart:6:12: Error: A value of type 'List<dynamic>?' can't be assigned to a variable of type 'List<dynamic>' because 'List<dynamic>?' is nullable and 'List<dynamic>' isn't.
 - 'List' is from 'dart:core'.
  List y = await l(); // should be a List?
           ^" in let core::List<dynamic>? #t1 = await self::l() in #t1 == null ?{core::List<dynamic>} #t1 as{TypeError,ForNonNullableByDefault} core::List<dynamic> : #t1{core::List<dynamic>};
}
static method l() → asy::Future<core::List<dynamic>>?
  return null;
static method main() → dynamic {}
