library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd/definitely_unassigned_late_local_variables.dart:15:9: Error: Late variable 'value' without initializer is definitely unassigned.
//     bar(value); // Error.
//         ^^^^^
//
// pkg/front_end/testcases/nnbd/definitely_unassigned_late_local_variables.dart:16:12: Error: Late variable 'intValue' without initializer is definitely unassigned.
//     barInt(intValue); // Error.
//            ^^^^^^^^
//
import self as self;
import "dart:core" as core;

abstract class A<T extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::A<self::A::T%>
    : super core::Object::•()
    ;
  method bar(generic-covariant-impl self::A::T% value) → dynamic {}
  method barInt(core::int value) → dynamic {}
  method foo() → dynamic {
    late self::A::T% value;
    late core::int intValue;
    this.{self::A::bar}(invalid-expression "pkg/front_end/testcases/nnbd/definitely_unassigned_late_local_variables.dart:15:9: Error: Late variable 'value' without initializer is definitely unassigned.
    bar(value); // Error.
        ^^^^^" in value){(self::A::T%) → dynamic};
    this.{self::A::barInt}(invalid-expression "pkg/front_end/testcases/nnbd/definitely_unassigned_late_local_variables.dart:16:12: Error: Late variable 'intValue' without initializer is definitely unassigned.
    barInt(intValue); // Error.
           ^^^^^^^^" in intValue){(core::int) → dynamic};
  }
}
static method main() → dynamic {}
