main = <No Member>;
library from "package:flutter/src/widgets/framework.dart" as fra {

  abstract class Bar extends dart.core::Object /*hasConstConstructor*/  {
    const constructor •() → fra::Bar
      : super dart.core::Object::•()
      ;
  }
  abstract class Widget extends fra::Bar implements wid::_HasCreationLocation /*hasConstConstructor*/  {
    final field wid::_Location? _location /*isLegacy*/;
    const constructor •({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → fra::Widget
      : super fra::Bar::•(), fra::Widget::_location = $creationLocationd_0dea112b090073317d4
      ;
  }
}
library from "package:flutter/src/widgets/widget_inspector.dart" as wid {

  abstract class _HasCreationLocation extends dart.core::Object {
    synthetic constructor •() → wid::_HasCreationLocation
      : super dart.core::Object::•()
      ;
    abstract get _location() → wid::_Location;
  }
  class _Location extends dart.core::Object /*hasConstConstructor*/  {
    final field dart.core::String file;
    final field dart.core::int line;
    final field dart.core::int column;
    final field dart.core::String name;
    final field dart.core::List<wid::_Location> parameterLocations;
    const constructor •({required dart.core::String file = #C1, required dart.core::int line = #C1, required dart.core::int column = #C1, required dart.core::String name = #C1, required dart.core::List<wid::_Location> parameterLocations = #C1}) → wid::_Location
      : wid::_Location::file = file, wid::_Location::line = line, wid::_Location::column = column, wid::_Location::name = name, wid::_Location::parameterLocations = parameterLocations, super dart.core::Object::•()
      ;
    static method _#new#tearOff({required dart.core::String file = #C1, required dart.core::int line = #C1, required dart.core::int column = #C1, required dart.core::String name = #C1, required dart.core::List<wid::_Location> parameterLocations = #C1}) → wid::_Location
      return new wid::_Location::•(file: file, line: line, column: column, name: name, parameterLocations: parameterLocations);
  }
}
library from "org-dartlang-test:///foo.dart" as foo {

  import "package:flutter/src/widgets/framework.dart";
  import "package:flutter/src/widgets/widget_inspector.dart";

  class Foo extends fra::Widget /*hasConstConstructor*/  {
    const constructor _({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Foo
      : super fra::Widget::•($creationLocationd_0dea112b090073317d4: $creationLocationd_0dea112b090073317d4)
      ;
    static factory •({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Foo
      return #C7;
    static method _#new#tearOff() → foo::Foo
      return foo::Foo::•($creationLocationd_0dea112b090073317d4: #C9);
    static method _#_#tearOff() → foo::Foo
      return new foo::Foo::_($creationLocationd_0dea112b090073317d4: #C12);
  }
  class Bar extends fra::Widget /*hasConstConstructor*/  {
    static final field dynamic _redirecting# = <dynamic>[foo::Bar::•]/*isLegacy*/;
    const constructor _({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Bar
      : super fra::Widget::•($creationLocationd_0dea112b090073317d4: $creationLocationd_0dea112b090073317d4)
      ;
    static factory •({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Bar
      return new foo::Bar::_($creationLocationd_0dea112b090073317d4: $creationLocationd_0dea112b090073317d4);
    static method _#new#tearOff() → foo::Bar
      return new foo::Bar::_($creationLocationd_0dea112b090073317d4: #C16);
    static method _#_#tearOff() → foo::Bar
      return new foo::Bar::_($creationLocationd_0dea112b090073317d4: #C18);
  }
  class Baz extends fra::Widget /*hasConstConstructor*/  {
    static final field dynamic _redirecting# = <dynamic>[foo::Baz::_]/*isLegacy*/;
    const constructor __({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Baz
      : super fra::Widget::•($creationLocationd_0dea112b090073317d4: $creationLocationd_0dea112b090073317d4)
      ;
    static factory •({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Baz
      return #C22;
    static method _#new#tearOff() → foo::Baz
      return foo::Baz::•($creationLocationd_0dea112b090073317d4: #C23);
    static factory _({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Baz
      return new foo::Baz::__($creationLocationd_0dea112b090073317d4: $creationLocationd_0dea112b090073317d4);
    static method _#_#tearOff() → foo::Baz
      return new foo::Baz::__($creationLocationd_0dea112b090073317d4: #C25);
    static method _#__#tearOff() → foo::Baz
      return new foo::Baz::__($creationLocationd_0dea112b090073317d4: #C27);
  }
  class Boz extends fra::Widget /*hasConstConstructor*/  {
    const constructor _({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Boz
      : super fra::Widget::•($creationLocationd_0dea112b090073317d4: $creationLocationd_0dea112b090073317d4)
      ;
    static factory •({required dart.core::bool createNew = #C1, wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Boz {
      if(createNew) {
        return new foo::Boz::_($creationLocationd_0dea112b090073317d4: $creationLocationd_0dea112b090073317d4);
      }
      else {
        return #C32;
      }
    }
    static method _#new#tearOff({required dart.core::bool createNew = #C1}) → foo::Boz
      return foo::Boz::•(createNew: createNew, $creationLocationd_0dea112b090073317d4: #C33);
    static method _#_#tearOff() → foo::Boz
      return new foo::Boz::_($creationLocationd_0dea112b090073317d4: #C35);
  }
}
library from "org-dartlang-test:///main.dart" as main {

  import "org-dartlang-test:///foo.dart";

  static field foo::Foo newFoo = foo::Foo::•($creationLocationd_0dea112b090073317d4: #C38);
  static field foo::Bar newBar = new foo::Bar::_($creationLocationd_0dea112b090073317d4: #C39);
  static field foo::Bar constBar = #C42;
  static field foo::Baz newBaz = foo::Baz::•($creationLocationd_0dea112b090073317d4: #C43);
  static field foo::Boz newBoz = foo::Boz::•(createNew: true, $creationLocationd_0dea112b090073317d4: #C44);
  static field foo::Boz constBoz = foo::Boz::•(createNew: false, $creationLocationd_0dea112b090073317d4: #C46);
}
constants  {
  #C1 = null
  #C2 = "org-dartlang-test:///foo.dart"
  #C3 = 2.0
  #C4 = 51.0
  #C5 = "Foo"
  #C6 = wid::_Location {file:#C2, line:#C3, column:#C4, name:#C5, parameterLocations:#C1}
  #C7 = foo::Foo {_location:#C6}
  #C8 = 36.0
  #C9 = wid::_Location {file:#C2, line:#C3, column:#C8, name:#C5, parameterLocations:#C1}
  #C10 = 3.0
  #C11 = 7.0
  #C12 = wid::_Location {file:#C2, line:#C10, column:#C11, name:#C5, parameterLocations:#C1}
  #C13 = 4.0
  #C14 = 42.0
  #C15 = "Bar"
  #C16 = wid::_Location {file:#C2, line:#C13, column:#C14, name:#C15, parameterLocations:#C1}
  #C17 = 5.0
  #C18 = wid::_Location {file:#C2, line:#C17, column:#C11, name:#C15, parameterLocations:#C1}
  #C19 = 6.0
  #C20 = "Baz"
  #C21 = wid::_Location {file:#C2, line:#C19, column:#C4, name:#C20, parameterLocations:#C1}
  #C22 = foo::Baz {_location:#C21}
  #C23 = wid::_Location {file:#C2, line:#C19, column:#C8, name:#C20, parameterLocations:#C1}
  #C24 = 15.0
  #C25 = wid::_Location {file:#C2, line:#C11, column:#C24, name:#C20, parameterLocations:#C1}
  #C26 = 8.0
  #C27 = wid::_Location {file:#C2, line:#C26, column:#C11, name:#C20, parameterLocations:#C1}
  #C28 = 9.0
  #C29 = 128.0
  #C30 = "Boz"
  #C31 = wid::_Location {file:#C2, line:#C28, column:#C29, name:#C30, parameterLocations:#C1}
  #C32 = foo::Boz {_location:#C31}
  #C33 = wid::_Location {file:#C2, line:#C28, column:#C8, name:#C30, parameterLocations:#C1}
  #C34 = 10.0
  #C35 = wid::_Location {file:#C2, line:#C34, column:#C11, name:#C30, parameterLocations:#C1}
  #C36 = "org-dartlang-test:///main.dart"
  #C37 = 18.0
  #C38 = wid::_Location {file:#C36, line:#C3, column:#C37, name:#C5, parameterLocations:#C1}
  #C39 = wid::_Location {file:#C36, line:#C10, column:#C37, name:#C15, parameterLocations:#C1}
  #C40 = 22.0
  #C41 = wid::_Location {file:#C36, line:#C13, column:#C40, name:#C15, parameterLocations:#C1}
  #C42 = foo::Bar {_location:#C41}
  #C43 = wid::_Location {file:#C36, line:#C17, column:#C37, name:#C20, parameterLocations:#C1}
  #C44 = wid::_Location {file:#C36, line:#C19, column:#C37, name:#C30, parameterLocations:#C1}
  #C45 = 20.0
  #C46 = wid::_Location {file:#C36, line:#C11, column:#C45, name:#C30, parameterLocations:#C1}
}
