public FieldVisitor visitField(final int access, final String name,
			final String desc, final String signature, final Object value) {
		String s = remapper.mapFieldName(className, name, desc);
		if ("-".equals(s)) {
			return null;
		}
		if ((access & (Opcodes.ACC_PUBLIC | Opcodes.ACC_PROTECTED)) == 0) {
			if ((access & Opcodes.ACC_FINAL) != 0
					&& (access & Opcodes.ACC_STATIC) != 0 && desc.length() == 1) {
				return null;
			}
			if ("org/objectweb/asm".equals(pkgName) && s.equals(name)) {
				System.out.println("INFO: " + s + " could be renamed");
			}
			super.visitField(access, name, desc, null, value);
		} else {
			if (!s.equals(name)) {
				throw new RuntimeException("The public or protected field "
						+ className + '.' + name + " must not be renamed.");
			}
			super.visitField(access, name, desc, null, value);
		}
		return null; // remove debug info
	}