boolean (InvocationExprent expr, VarType cltype) { if ("append".equals(expr.getName())) { MethodDescriptor md = expr.getDescriptor(); if (md.ret.equals(cltype) && md.params.length == 1) { VarType param = md.params[0]; switch (param.getType()) { case CodeConstants.TYPE_OBJECT: if (!param.equals(VarType.VARTYPE_STRING) && !param.equals(VarType.VARTYPE_OBJECT)) { break; } case CodeConstants.TYPE_BOOLEAN: case CodeConstants.TYPE_CHAR: case CodeConstants.TYPE_DOUBLE: case CodeConstants.TYPE_FLOAT: case CodeConstants.TYPE_INT: case CodeConstants.TYPE_LONG: return true; default: } } } return false; }