anchor.diff:          rewriter.insertToken(extendsKeyword, next);
           rewriter.insertToken(superclassToken, next);
           token = parseType(extendsKeyword.next);
  -        token = parseMixinApplicationRest(token).next;
  +        token = parseMixinApplicationRest(token);
           listener.handleClassExtends(extendsKeyword);
         } else {
  -        token = parseClassExtendsOpt(token.next);
  +        token = parseClassExtendsOpt(token);
   
           if (recoveryListener.extendsKeyword != null) {
             if (hasExtends) {
  
positive.code: 
    /// Recover given out-of-order clauses in a class header.
    Token parseClassHeaderRecovery(Token token, Token begin, Token classKeyword) {
      // TODO(brianwilkerson) Return the last consumed token.
      final primaryListener = listener;
      final recoveryListener = new ClassHeaderRecoveryListener(primaryListener);
  
  
negative.code:   /// ;
    /// ```
    Token parseClassImplementsOpt(Token token) {
      Token implementsKeyword;
      int interfacesCount = 0;
      if (optional('implements', token.next)) {
        implementsKeyword = token.next;
        do {
          token = parseType(token.next.next);
          ++interfacesCount;
        } while (optional(',', token.next));
      }
      listener.handleClassImplements(implementsKeyword, interfacesCount);
      return token;
  