private List getFieldAssignments(SIRGlobal s,
private List<JStatement> getFieldAssignments(SIRGlobal s,
    private List/*<JStatement>*/ getFieldAssignments(SIRGlobal s, 						     final String f) {        JMethodDeclaration[] methods = s.getMethods();        assert methods.length == 1 : methods.length;        // final here is bogus: List doesn't change but List        // contents change.  final is necessary for reference from        // inner class.        final LinkedList fsAssignments = new LinkedList();        final boolean[] isUsefulAssignment = {false};                methods[0].accept(new KjcEmptyVisitor() {            public void visitExpressionStatement(JExpressionStatement self,                                                 JExpression expr) {                isUsefulAssignment[0] = false;                super.visitExpressionStatement(self,expr);                if (isUsefulAssignment[0]) {                    fsAssignments.addLast(self);                }            }            public void visitAssignmentExpression(JAssignmentExpression self,                                                  JExpression left,                                                   JExpression right) {                super.visitAssignmentExpression(self, left, right);                JExpression field = CommonUtils.lhsBaseExpr(left);                if (field instanceof JFieldAccessExpression) {                    JFieldAccessExpression fexpr = 			(JFieldAccessExpression) field;                    // lhsBaseExpr should either have found an access to a                     // field in 'this' static block -- static blocks should not                    //  assign to fields of other classes -- TODO:static check.                    // (lhsBaseExpr could also have found an assigment to a                     // local which could occur even if all fields are only                     // given constant values since FieldProp does not remove 		    // dead code.                    assert fexpr.getPrefix() instanceof JThisExpression :field;                    if (fexpr.getIdent().equals(f)) {                        isUsefulAssignment[0] = true;                    }                }            }            });                return fsAssignments; //retval;    }