40 columns                              |
>>> require at least one newline between statements
{a();b();c();}
<<<
{
  a();
  b();
  c();
}
>>> allow an extra newline between statements
{
  a();

  b();
  c();
}
<<<
{
  a();

  b();
  c();
}
>>> collapse any other newlines
{


  a();



  b();



  c();


}
<<<
{
  a();

  b();

  c();
}
>>> dartbug.com/16810
{
  var a;;;
}
<<<
{
  var a;
  ;
  ;
}
>>> force blank line after non-empty local function
{
  a() {;}
  b();


  c() {;}d(){;}


}
<<<
{
  a() {
    ;
  }

  b();

  c() {
    ;
  }

  d() {
    ;
  }
}
>>> do not force blank line after empty local function
{ a() {} b() {} }
<<<
{
  a() {}
  b() {}
}
>>> do not force blank line after => body local function
{ a() => null; b() => null; }
<<<
{
  a() => null;
  b() => null;
}