bugReporter.reportBug(new BugInstance("SIC_INNER_SHOULD_BE_STATIC", 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( bug, priority)
public void report() {        TreeSet<FieldAnnotation> readOnlyFields = 			new TreeSet<FieldAnnotation>(declaredFields);	readOnlyFields.removeAll(writtenFields);	readOnlyFields.retainAll(readFields);        Set<FieldAnnotation> writeOnlyFields = declaredFields;	writeOnlyFields.removeAll(readFields);	for(Iterator<FieldAnnotation> i = readOnlyFields.iterator(); i.hasNext(); )  {		FieldAnnotation f = i.next();		String fieldName = f.getFieldName();		String className = f.getClassName();		    bugReporter.reportBug(new BugInstance("UWF_UNWRITTEN_FIELD", 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("SS_SHOULD_BE_STATIC", NORMAL_PRIORITY)			.addClass(className)			.addField(f));		  else if (!writtenFields.contains(f) && !superWrittenFields.contains(f.getFieldName()))		    bugReporter.reportBug(new BugInstance("UUF_UNUSED_FIELD", NORMAL_PRIORITY)			.addClass(className)			.addField(f));		  else		    bugReporter.reportBug(new BugInstance("URF_UNREAD_FIELD", NORMAL_PRIORITY)			.addClass(className)			.addField(f));		   }		  else if ( !innerClassCannotBeStatic.contains(className)) {			boolean easyChange = !needsOuterObjectInConstructor.contains(className);			if (easyChange || !isAnonymousInnerClass) {				  int priority = LOW_PRIORITY;			  if (easyChange && !isAnonymousInnerClass) 				priority = NORMAL_PRIORITY; 			   bugReporter.reportBug(new BugInstance("SIC_INNER_SHOULD_BE_STATIC", 					priority)				.addClass(className));			   }			}		}	}	