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

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

extension _extension#0 on core::int {
  method _foo = self::_extension#0|_foo;
  tearoff _foo = self::_extension#0|get#_foo;
}
static method _extension#0|_foo<T extends core::Object? = dynamic>(lowered final core::int #this, (self::_extension#0|_foo::T%) → void x, {required self::_extension#0|_foo::T% a}) → void
  ;
static method _extension#0|get#_foo(lowered final core::int #this) → <T extends core::Object? = dynamic>((T%) → void, {a: T%}) → void
  return <T extends core::Object? = dynamic>((T%) → void x, {T% a}) → void => self::_extension#0|_foo<T%>(#this, x, a: a);
static method main() → dynamic
  ;

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

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

static method bar(core::int i) → dynamic
  ;
