anchor.diff:    }
   
     Token parseVariablesDeclarationNoSemicolonRest(Token token) {
  -    // TODO(brianwilkerson) Accept the last consumed token.
       // Only called when parsing a for loop, so this is for parsing locals.
  -    return parseVariablesDeclarationMaybeSemicolonRest(token, false);
  +    return parseVariablesDeclarationMaybeSemicolonRest(token.next, false);
     }
   
     Token parseVariablesDeclarationMaybeSemicolon(
  
positive.code:   }
  
    Token parseVariablesDeclarationRest(Token token) {
      // TODO(brianwilkerson) Accept the last consumed token.
      return parseVariablesDeclarationMaybeSemicolonRest(token, true);
    }
  
    Token parseVariablesDeclarationNoSemicolon(Token token) {
  
negative.code:   /// ;
    /// ```
    Token parseVariablesDeclarationOrExpressionOpt(Token token) {
      // TODO(brianwilkerson) Return the last consumed token.
      Token next = token.next;
      final String value = next.stringValue;
      if (identical(value, ';')) {
        listener.handleNoExpression(next);
        return next;
      } else if (isOneOf4(next, '@', 'var', 'final', 'const')) {
        return parseVariablesDeclarationNoSemicolon(token.next).next;
      }
      return parseType(
          token.next, TypeContinuation.VariablesDeclarationOrExpression);
    }
  
    /// This method parses the portion of the forLoopParts that starts with the
  