break; case 2: if (seen == GETFIELD) { state = 3; f = getRefConstantOperand(); } else state = 0; break; case 3: if (seen == PUTFIELD && getRefConstantOperand().equals(f)) {  bugReporter.reportBug(new BugInstance("SA_FIELD_SELF_ASSIGNMENT", NORMAL_PRIORITY) .addClass(getClassName()) .addMethod(getClassName(), getMethodName(), getMethodSig()) .addField(getDottedClassConstantOperand(), getNameConstantOperand(), getDottedSigConstantOperand(), false) .addSourceLine(this)  ); } state = 0;
    public void sawOpcode(int seen) {	switch (state) {	case 0:		if (seen == ALOAD_0)			state = 1;		break;	case 1:		if (seen == ALOAD_0)			state = 2;		else			state = 0;		break;	case 2:		if (seen == GETFIELD) {			state = 3;			f = getRefConstantOperand();			}		else			state = 0;		break;	case 3:		if (seen == PUTFIELD && getRefConstantOperand().equals(f)) {                                bugReporter.reportBug(new BugInstance("SA_FIELD_SELF_ASSIGNMENT", NORMAL_PRIORITY)                                        .addClass(getClassName())                                        .addMethod(getClassName(), getMethodName(), getMethodSig())                                        .addField(getDottedClassConstantOperand(), getNameConstantOperand(),						getDottedSigConstantOperand(), false)                                        .addSourceLine(this)					);			}		state = 0;		}	}