&& !fieldsOfSerializableOrNativeClassed.contains(f))
&& !fieldsOfSerializableOrNativeClassed.contains(f)) { int priority = NORMAL_PRIORITY; if (!(fieldSignature.charAt(0) == 'L' || fieldSignature.charAt(0) == '[')) priority++; else if (assumedNonNull.contains(f)) priority--;
	public void report() {		TreeSet<FieldAnnotation> notInitializedInConstructors =		        new TreeSet<FieldAnnotation>(declaredFields);		notInitializedInConstructors.retainAll(readFields);		notInitializedInConstructors.retainAll(writtenFields);		notInitializedInConstructors.retainAll(assumedNonNull);		notInitializedInConstructors.removeAll(writtenInConstructorFields);		TreeSet<FieldAnnotation> readOnlyFields =		        new TreeSet<FieldAnnotation>(declaredFields);		readOnlyFields.removeAll(writtenFields);		readOnlyFields.retainAll(readFields);		Set<FieldAnnotation> writeOnlyFields = declaredFields;		writeOnlyFields.removeAll(readFields);		for (Iterator<FieldAnnotation> i = notInitializedInConstructors.iterator(); i.hasNext();) {			FieldAnnotation f = i.next();			String fieldName = f.getFieldName();			String className = f.getClassName();			String fieldSignature = f.getFieldSignature();			if (!superWrittenFields.contains(fieldName)				 && !fieldsOfSerializableOrNativeClassed.contains(f)				 && (fieldSignature.charAt(0) == 'L' || fieldSignature.charAt(0) == '[')				)				bugReporter.reportBug(new BugInstance(this, "UWF_FIELD_NOT_INIIALIZED_IN_CONSTRUCTOR", LOW_PRIORITY)				        .addClass(className)				        .addField(f));		}		for (Iterator<FieldAnnotation> i = readOnlyFields.iterator(); i.hasNext();) {			FieldAnnotation f = i.next();			String fieldName = f.getFieldName();			String className = f.getClassName();			if (!superWrittenFields.contains(fieldName)				 && !fieldsOfSerializableOrNativeClassed.contains(f))				bugReporter.reportBug(new BugInstance(this, 				"UWF_UNWRITTEN_FIELD", 				assumedNonNull.contains(f) ? HIGH_PRIORITY : NORMAL_PRIORITY)				        .addClass(className)				        .addField(f));		}		for (Iterator<FieldAnnotation> i = writeOnlyFields.iterator(); i.hasNext();) {			FieldAnnotation f = i.next();			String fieldName = f.getFieldName();			String className = f.getClassName();			int lastDollar =			        Math.max(className.lastIndexOf('$'),			                className.lastIndexOf('+'));			boolean isAnonymousInnerClass =			        (lastDollar > 0)			        && (lastDollar < className.length() - 1)			        && Character.isDigit(className.charAt(className.length() - 1));			boolean allUpperCase =			        fieldName.equals(fieldName.toUpperCase());			if (superReadFields.contains(f.getFieldName())) continue;			if (!fieldName.startsWith("this$")			        && !fieldName.startsWith("this+")			) {				if (constantFields.contains(f))					bugReporter.reportBug(new BugInstance(this, "SS_SHOULD_BE_STATIC", NORMAL_PRIORITY)					        .addClass(className)					        .addField(f));				else if (fieldsOfSerializableOrNativeClassed.contains(f)) {					// ignore it				} else if (!writtenFields.contains(f) && !superWrittenFields.contains(f.getFieldName()))					bugReporter.reportBug(new BugInstance(this, "UUF_UNUSED_FIELD", NORMAL_PRIORITY)					        .addClass(className)					        .addField(f));				else					bugReporter.reportBug(new BugInstance(this, "URF_UNREAD_FIELD", NORMAL_PRIORITY)					        .addClass(className)					        .addField(f));			} else if (!innerClassCannotBeStatic.contains(className)) {				boolean easyChange = !needsOuterObjectInConstructor.contains(className);				if (easyChange || !isAnonymousInnerClass) {					// easyChange    isAnonymousInnerClass					// true          false			medium, SIC					// true          true				low, SIC_ANON					// false         true				not reported					// false         false			low, SIC_THIS					int priority = LOW_PRIORITY;					if (easyChange && !isAnonymousInnerClass)						priority = NORMAL_PRIORITY;					String bug = "SIC_INNER_SHOULD_BE_STATIC";					if (isAnonymousInnerClass)						bug = "SIC_INNER_SHOULD_BE_STATIC_ANON";					else if (!easyChange)						bug = "SIC_INNER_SHOULD_BE_STATIC_NEEDS_THIS";					bugReporter.reportBug(new BugInstance(this, bug, priority)					        .addClass(className));				}			}		}	}