library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/flutter_issue100888.dart:21:50: Error: Expected ':' before this.
//       channel.channel!.activeFrom!.toLocal().day);
//                                                  ^
//
// pkg/front_end/testcases/general/flutter_issue100888.dart:21:50: Error: Expected an identifier, but got ';'.
// Try inserting an identifier before ';'.
//       channel.channel!.activeFrom!.toLocal().day);
//                                                  ^
//
import self as self;
import "dart:core" as core;

abstract class ChannelA extends core::Object {
  synthetic constructor •() → self::ChannelA
    : super core::Object::•()
    ;
  abstract get channel() → self::ChannelB?;
}
abstract class ChannelB extends core::Object {
  synthetic constructor •() → self::ChannelB
    : super core::Object::•()
    ;
  abstract get activeFrom() → self::ActiveFrom?;
}
abstract class ActiveFrom extends core::Object {
  synthetic constructor •() → self::ActiveFrom
    : super core::Object::•()
    ;
  abstract method toLocal() → core::DateTime;
}
static method method(self::ChannelA channel) → void {
  core::DateTime? af = !((let final self::ChannelB? #t1 = channel.{self::ChannelA::channel}{self::ChannelB?} in #t1 == null ?{self::ActiveFrom?} null : #t1{self::ChannelB}.{self::ChannelB::activeFrom}{self::ActiveFrom?}) == null) ?{invalid-type} new core::DateTime::•(channel.{self::ChannelA::channel}{self::ChannelB?}!.{self::ChannelB::activeFrom}{self::ActiveFrom?}!.{self::ActiveFrom::toLocal}(){() → core::DateTime}.{core::DateTime::year}{core::int}, channel.{self::ChannelA::channel}{self::ChannelB?}!.{self::ChannelB::activeFrom}{self::ActiveFrom?}!.{self::ActiveFrom::toLocal}(){() → core::DateTime}.{core::DateTime::month}{core::int}, channel.{self::ChannelA::channel}{self::ChannelB?}!.{self::ChannelB::activeFrom}{self::ActiveFrom?}!.{self::ActiveFrom::toLocal}(){() → core::DateTime}.{core::DateTime::day}{core::int}) : invalid-expression "pkg/front_end/testcases/general/flutter_issue100888.dart:21:50: Error: This couldn't be parsed.
      channel.channel!.activeFrom!.toLocal().day);
                                                 ^";
}
