library;
//
// Problems in library:
//
// pkg/front_end/testcases/extensions/issue44003.dart:14:8: Error: 'foo' is already declared in this scope.
//   void foo(String baz, int a) {
//        ^^^
// pkg/front_end/testcases/extensions/issue44003.dart:10:8: Context: Previous declaration of 'foo'.
//   void foo(String bar) {
//        ^^^
//
// pkg/front_end/testcases/extensions/issue44003.dart:6:8: Error: The method 'foo' isn't defined for the class 'List<String>'.
//  - 'List' is from 'dart:core'.
// Try correcting the name to the name of an existing method, or defining a method named 'foo'.
//   args.foo('1', 2);
//        ^^^
//
import self as self;
import "dart:core" as core;

extension _extension#0 on core::List<core::String*>* {
  method foo = self::_extension#0|foo;
  tearoff foo = self::_extension#0|get#foo;
}
static method test(core::List<core::String*>* args) → void {
  invalid-expression "pkg/front_end/testcases/extensions/issue44003.dart:6:8: Error: The method 'foo' isn't defined for the class 'List<String>'.
 - 'List' is from 'dart:core'.
Try correcting the name to the name of an existing method, or defining a method named 'foo'.
  args.foo('1', 2);
       ^^^" in args{<unresolved>}.foo("1", 2);
}
static method _extension#0|foo(lowered final core::List<core::String*>* #this, core::String* bar) → void {
  core::print(1);
}
static method _extension#0|get#foo(lowered final core::List<core::String*>* #this) → (core::String*) →* void
  return (core::String* bar) → void => self::_extension#0|foo(#this, bar);
static method main() → dynamic {}
