40 columns                              |
>>> line comments
enum A {
  // comment
  B,

  // comment
  C

  // comment
}
<<<
enum A {
  // comment
  B,

  // comment
  C

  // comment
}
>>> block comments
enum A {
  /* comment */
  B,

  /* comment */
  C

  /* comment */
}
<<<
enum A {
  /* comment */
  B,

  /* comment */
  C

  /* comment */
}
>>> remove blank line before beginning of body
enum A {



  // comment
  B
}
<<<
enum A {
  // comment
  B
}
>>> ensure blank line above doc comments
enum Foo {/// doc
a,/// doc
b;/// doc
var x = 1;
/// doc
void y() {}}
<<<
enum Foo {
  /// doc
  a,

  /// doc
  b;

  /// doc
  var x = 1;

  /// doc
  void y() {}
}