Exprent (Exprent exprent) { if (exprent.type == Exprent.EXPRENT_INVOCATION) { InvocationExprent iex = (InvocationExprent)exprent; if ("valueOf".equals(iex.getName()) && ClassNameConstants.JAVA_LANG_STRING.equals(iex.getClassName())) { MethodDescriptor md = iex.getDescriptor(); if (md.params.length == 1) { VarType param = md.params[0]; switch (param.getType()) { case CodeConstants.TYPE_OBJECT: if (!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 iex.getParameters().get(0); } } } } return exprent; }