40 columns                              |
>>> function declaration
int f/*<S, T>*/(int x) => 3;
<<<
int f/*<S, T>*/(int x) => 3;
>>> type bounds
int f/*<S extends Set<S>>*/(int x) => 3;
<<<
int f/*<S extends Set<S>>*/(int x) => 3;
>>> method
class C {
  static int f/*<S, T>*/(int x) => 3;
  int m/*<S, T>*/(int x) => 3;
}
<<<
class C {
  static int f/*<S, T>*/(int x) => 3;
  int m/*<S, T>*/(int x) => 3;
}
>>> function type parameter
void foo(int f/*<S>*/(int x)) {}
<<<
void foo(int f/*<S>*/(int x)) {}
>>> variable
var x = /*<S>*/(int x) => x;
<<<
var x = /*<S>*/(int x) => x;
>>> parameter type
foo/*<S>*/(dynamic/*=S*/ x) => x;
<<<
foo/*<S>*/(dynamic/*=S*/ x) => x;
>>> return type
dynamic/*=S*/ foo/*<S>*/() => x;
<<<
dynamic/*=S*/ foo/*<S>*/() => x;
>>> without dynamic
main() {
  /*=S*/ foo/*<S>*/(/*=S*/ x) {return x;}
}
<<<
main() {
  /*=S*/ foo/*<S>*/(/*=S*/ x) {
    return x;
  }
}
>>> var
void foo/*<S>*/(var /*=S*/ x) {
  var /*=S*/ y = x;
}
<<<
void foo/*<S>*/(var/*=S*/ x) {
  var/*=S*/ y = x;
}