anchor.diff:        'handleType S >',
         'endTypeArguments 1 < >'
       ]);
  -    expectComplexTypeArg('<S<void Function()>>',
  -        splitGtGt: false,
  -        expectedCalls: [
  -          'beginTypeArguments <',
  -          'handleIdentifier S typeReference',
  -          'beginTypeArguments <',
  -          'handleNoTypeVariables (',
  -          'beginFunctionType void', // was 'beginFunctionType Function'
  -          'handleVoidKeyword void', // was 'handleNoType <'
  -          'beginFormalParameters ( MemberKind.GeneralizedFunctionType',
  -          'endFormalParameters 0 ( ) MemberKind.GeneralizedFunctionType',
  -          'endFunctionType Function >>',
  -          'endTypeArguments 1 < )',
  -          'handleType S >>',
  -          'endTypeArguments 1 < >>'
  -        ]);
     }
   
     void test_computeTypeArg_complex_recovery() {
  
positive.code:       'handleType S >',
        'endTypeArguments 1 < >'
      ]);
      expectComplexTypeArg('<S<Function()>>', splitGtGt: false, expectedCalls: [
        'beginTypeArguments <',
        'handleIdentifier S typeReference',
        'beginTypeArguments <',
        'handleNoTypeVariables (',
        'beginFunctionType Function',
        'handleNoType <',
        'beginFormalParameters ( MemberKind.GeneralizedFunctionType',
        'endFormalParameters 0 ( ) MemberKind.GeneralizedFunctionType',
        'endFunctionType Function >>',
        'endTypeArguments 1 < )',
        'handleType S >>',
        'endTypeArguments 1 < >>'
      ]);
      expectComplexTypeArg('<S<void Function()>>', expectedCalls: [
        'beginTypeArguments <',
        'handleIdentifier S typeReference',
  
negative.code: }
  
  void expectComplexTypeArg(String source,
      {String expectedAfter,
      List<String> expectedCalls,
      List<ExpectedError> expectedErrors}) {
    Token start = scan(source);
  