Skip to content

Commit 1fc7752

Browse files
committed
Implement String.valueOf() methods using CProverString methods
Implements the versions with parameters of primitive types
1 parent 5945c13 commit 1fc7752

File tree

1 file changed

+7
-13
lines changed

1 file changed

+7
-13
lines changed

src/main/java/java/lang/String.java

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4238,9 +4238,7 @@ public static String copyValueOf(char data[]) {
42384238
* @diffblue.fullSupport
42394239
*/
42404240
public static String valueOf(boolean b) {
4241-
// DIFFBLUE MODEL LIBRARY This is treated internally in JBMC
4242-
return CProver.nondetWithoutNullForNotModelled();
4243-
// return b ? "true" : "false";
4241+
return b ? "true" : "false";
42444242
}
42454243

42464244
/**
@@ -4255,8 +4253,8 @@ public static String valueOf(boolean b) {
42554253
* @diffblue.untested
42564254
*/
42574255
public static String valueOf(char c) {
4258-
// DIFFBLUE MODEL LIBRARY This is treated internally in CBMC
4259-
return CProver.nondetWithNullForNotModelled();
4256+
char data[] = {c};
4257+
return CProverString.ofCharArray(data, 0, 1);
42604258
// char data[] = {c};
42614259
// return new String(data, true);
42624260
}
@@ -4275,8 +4273,7 @@ public static String valueOf(char c) {
42754273
* @diffblue.untested
42764274
*/
42774275
public static String valueOf(int i) {
4278-
// DIFFBLUE MODEL LIBRARY This is treated internally in CBMC
4279-
return CProver.nondetWithoutNullForNotModelled();
4276+
return CProverString.toString(i);
42804277
// return Integer.toString(i);
42814278
}
42824279

@@ -4294,8 +4291,7 @@ public static String valueOf(int i) {
42944291
* @diffblue.untested
42954292
*/
42964293
public static String valueOf(long l) {
4297-
// DIFFBLUE MODEL LIBRARY This is treated internally in CBMC
4298-
return CProver.nondetWithoutNullForNotModelled();
4294+
return CProverString.toString(l);
42994295
// return Long.toString(l);
43004296
}
43014297

@@ -4314,8 +4310,7 @@ public static String valueOf(long l) {
43144310
* actual program.
43154311
*/
43164312
public static String valueOf(float f) {
4317-
// DIFFBLUE MODEL LIBRARY This is treated internally in CBMC
4318-
return CProver.nondetWithoutNullForNotModelled();
4313+
return CProverString.toString(f);
43194314
// return Float.toString(f);
43204315
}
43214316

@@ -4334,9 +4329,8 @@ public static String valueOf(float f) {
43344329
* actual program.
43354330
*/
43364331
public static String valueOf(double d) {
4337-
// DIFFBLUE MODEL LIBRARY we cast the number down to float because
43384332
// string solver only knows how to convert floats to string
4339-
return valueOf(CProver.doubleToFloat(d));
4333+
return CProverString.toString(d);
43404334
// return Double.toString(d);
43414335
}
43424336

0 commit comments

Comments
 (0)