anchor.diff:        token = expect('=', token);
         token = parseType(token);
       } else {
  -      token = ensureIdentifier(afterType, IdentifierContext.typedefDeclaration)
  -          .next;
  -      token = parseTypeVariablesOpt(token);
  +      token = ensureIdentifier(afterType, IdentifierContext.typedefDeclaration);
  +      token = parseTypeVariablesOpt(token.next);
         token =
             parseFormalParametersRequiredOpt(token, MemberKind.FunctionTypeAlias)
                 .next;
  
positive.code:     assert(optional('hide', token));
      Token hideKeyword = token;
      listener.beginHide(hideKeyword);
      token = parseIdentifierList(token.next);
      listener.endHide(hideKeyword);
      return token;
    }
  
negative.code:     // TODO(brianwilkerson) Accept the last consumed token.
      assert(optional('break', token));
      Token breakKeyword = token;
      bool hasTarget = false;
      if (token.next.isIdentifier) {
        token = ensureIdentifier(token.next, IdentifierContext.labelReference);
        hasTarget = true;
      }
      token = ensureSemicolon(token.next);
      listener.handleBreakStatement(hasTarget, breakKeyword, token);
      return token;
    }
  