public <T> int readFieldNumber(Schema<T> schema) throws IOException { final int fieldNumber = input.readFieldNumber(schema); if(WireFormat.getTagWireType(input.getLastTag()) == WIRETYPE_REFERENCE) { // a reference. lastRef = input.readUInt32(); messageReference = true; } else { // always unset. messageReference = false; } return fieldNumber; }