void (int access, String name, String desc, String signature, List<String> annotations) { if ((access & ACC_SYNTHETIC) == 0) return; final boolean isStatic; final boolean isPublic; Pair<Boolean, String> p; if ((p = parse(STATIC_PREFIX, INSTANCE_PREFIX, name)).first != null) { isStatic = p.first; name = p.second; } else { return; } if ((p = parse(PUBLIC_PREFIX, PRIVATE_PREFIX, name)).first != null) { isPublic = p.first; name = p.second; } else { return; } final String typeString = fieldType(desc, signature); if (typeString == null) return; final int delimiter = name.indexOf(DELIMITER); if (delimiter > -1) { name = name.substring(delimiter + DELIMITER.length()); } byte flags = (byte)((isPublic ? TraitFieldDescriptor.PUBLIC : 0) | (isStatic ? TraitFieldDescriptor.STATIC : 0)); values.add(new TraitFieldDescriptor(flags, typeString, name, annotations)); }