| library; | 
 | import self as self; | 
 | import "dart:core" as core; | 
 |  | 
 | class Class extends core::Object { | 
 |   synthetic constructor •() → self::Class | 
 |     : super core::Object::•() | 
 |     ; | 
 | } | 
 | extension Extension on self::Class { | 
 |   method method1 = self::Extension|method1; | 
 |   method tearoff method1 = self::Extension|get#method1; | 
 |   method method2 = self::Extension|method2; | 
 |   method tearoff method2 = self::Extension|get#method2; | 
 |   method method3 = self::Extension|method3; | 
 |   method tearoff method3 = self::Extension|get#method3; | 
 |   method method4 = self::Extension|method4; | 
 |   method tearoff method4 = self::Extension|get#method4; | 
 | } | 
 | static extension-member method Extension|method1(lowered final self::Class #this, {core::bool b = #C1, core::String s = #C2}) → void | 
 |   return null; | 
 | static extension-member method Extension|get#method1(lowered final self::Class #this) → ({b: core::bool, s: core::String}) → void | 
 |   return ({core::bool b = #C1, core::String s = #C2}) → void => self::Extension|method1(#this, b: b, s: s); | 
 | static extension-member method Extension|method2(lowered final self::Class #this, [core::bool b = #C1, core::String s = #C2]) → void | 
 |   return null; | 
 | static extension-member method Extension|get#method2(lowered final self::Class #this) → ([core::bool, core::String]) → void | 
 |   return ([core::bool b = #C1, core::String s = #C2]) → void => self::Extension|method2(#this, b, s); | 
 | static extension-member method Extension|method3(lowered final self::Class #this, core::int i, {core::bool b = #C1, core::String s = #C2}) → void {} | 
 | static extension-member method Extension|get#method3(lowered final self::Class #this) → (core::int, {b: core::bool, s: core::String}) → void | 
 |   return (core::int i, {core::bool b = #C1, core::String s = #C2}) → void => self::Extension|method3(#this, i, b: b, s: s); | 
 | static extension-member method Extension|method4(lowered final self::Class #this, core::int i, [core::bool b = #C1, core::String s = #C2]) → void {} | 
 | static extension-member method Extension|get#method4(lowered final self::Class #this) → (core::int, [core::bool, core::String]) → void | 
 |   return (core::int i, [core::bool b = #C1, core::String s = #C2]) → void => self::Extension|method4(#this, i, b, s); | 
 | static method main() → dynamic { | 
 |   self::Class c = new self::Class::•(); | 
 |   self::Extension|method1(c); | 
 |   self::Extension|method1(c, s: "foo"); | 
 |   self::Extension|method1(c, b: true); | 
 |   self::Extension|method1(c, b: true, s: "foo"); | 
 |   self::Extension|method1(c, s: "foo", b: true); | 
 |   self::Extension|method2(c); | 
 |   self::Extension|method2(c, true); | 
 |   self::Extension|method2(c, true, "foo"); | 
 |   self::Extension|method3(c, 42); | 
 |   self::Extension|method3(c, 42, s: "foo"); | 
 |   self::Extension|method3(c, 42, b: true); | 
 |   self::Extension|method3(c, 42, b: true, s: "foo"); | 
 |   self::Extension|method3(c, 42, s: "foo", b: true); | 
 |   self::Extension|method4(c, 42); | 
 |   self::Extension|method4(c, 42, true); | 
 |   self::Extension|method4(c, 42, true, "foo"); | 
 | } | 
 |  | 
 | constants  { | 
 |   #C1 = false | 
 |   #C2 = ", " | 
 | } |