boolean () { if (isStatic && "valueOf".equals(name) && parameters.size() == 1) { int paramType = parameters.get(0).getExprType().getType(); // special handling for ambiguous types if (parameters.get(0).type == Exprent.EXPRENT_CONST) { // 'Integer.valueOf(1)' has '1' type detected as TYPE_BYTECHAR // 'Integer.valueOf(40_000)' has '40_000' type detected as TYPE_CHAR // so we check the type family instead if (parameters.get(0).getExprType().getTypeFamily() == CodeConstants.TYPE_FAMILY_INTEGER) { if (className.equals("java/lang/Integer")) { return true; } } if (paramType == CodeConstants.TYPE_BYTECHAR || paramType == CodeConstants.TYPE_SHORTCHAR) { if (className.equals("java/lang/Character")) { return true; } } } return className.equals(getClassNameForPrimitiveType(paramType)); } return false; }