library test;
import self as self;
import "dart:core" as core;

static method optional_toplevel([core::List<core::int*>* x = #C1]) → void {}
static method named_toplevel({core::List<core::int*>* x = #C1}) → void {}
static method main() → dynamic {
  function optional_local([core::List<core::int*>* x = #C1]) → void {}
  function named_local({core::List<core::int*>* x = #C1}) → void {}
  ([core::List<core::int*>*]) →* Null optional_closure = ([core::List<core::int*>* x = #C1]) → Null {};
  ({x: core::List<core::int*>*}) →* Null name_closure = ({core::List<core::int*>* x = #C1}) → Null {};
}

constants  {
  #C1 = <core::int*>[]
}
