anchor.diff:  }
   
   DateTime readDateTime(ByteStream stream) {
  -  final int year = read4Digit(stream);
  -  final int month = read2Digit(stream);
  -  final int day = read2Digit(stream);
  -  int tag = stream.readByte();
  +  final year = read4Digit(stream);
  +  final month = read2Digit(stream);
  +  final day = read2Digit(stream);
  +  var tag = stream.readByte();
     if (tag == TagTime) {
  -    final int hour = read2Digit(stream);
  -    final int minute = read2Digit(stream);
  -    final int second = read2Digit(stream);
  -    int millisecond = 0;
  -    int microsecond = 0;
  +    final hour = read2Digit(stream);
  +    final minute = read2Digit(stream);
  +    final second = read2Digit(stream);
  +    var millisecond = 0;
  +    var microsecond = 0;
       tag = stream.readByte();
       if (tag == TagPoint) {
  -      List<int> result = readMillisecond(stream);
  +      final result = readMillisecond(stream);
         millisecond = result[0];
         microsecond = result[1];
         tag = result[2];
  
positive.code: }
  
  DateTime readTime(ByteStream stream) {
    final int hour = read2Digit(stream);
    final int minute = read2Digit(stream);
    final int second = read2Digit(stream);
    int millisecond = 0;
    int microsecond = 0;
    int tag = stream.readByte();
    if (tag == TagPoint) {
      List<int> result = readMillisecond(stream);
      millisecond = result[0];
      microsecond = result[1];
      tag = result[2];
  
negative.code: part of hprose.io;
  
  int readInt(ByteStream stream, {int tag: TagSemicolon}) {
    final s = stream.readUntil(tag);
    if (s.isEmpty) return 0;
    return int.parse(s, radix: 10);
  }
  