// @dart = 2.6
class Bar {
  const Bar();
  const Bar.named(x);
}

class Baz {
  Baz(@foo constructorFormal);
  factory Baz.bazFactory(@foo factoryFormal) => null;
  fisk(@foo formal1, @Bar() formal2, @Bar.named(foo) formal3,
      @foo @Bar.named(foo) formal4,
      [@foo optional]) {}
  hest({@foo named}) => null;
}

const int foo = 42;
main() {}
typedef hest_t({@foo named});
