[infer][java] model for Integer

Summary:
@public
This adds an Infer model for the Integer class in Java.

Test Plan: Manually inspected the specs, and added a test.
master
Jules Villard 10 years ago
parent 784c5b23d2
commit 904ebb0154

@ -0,0 +1,28 @@
package java.lang;
public final class Integer {
public static int MAX_VALUE = 2147483647; // 2**31-1
public static int MIN_VALUE = -2147483648; // -2**31
protected final int value;
public Integer(int i) {
this.value = i;
}
public static Integer valueOf(int i) {
return new Integer(i);
}
public boolean equals(Object anObject) {
return anObject != null
&& anObject instanceof Integer
&& this.value == ((Integer) anObject).value;
}
public int intValue() {
return this.value;
}
}

@ -0,0 +1,19 @@
import java.util.HashMap;
public class IntegerExample {
private static void testIntegerEquals() {
Integer a = new Integer(42);
Integer b = new Integer(42);
Integer c = null;
if (!a.equals(b)) {
c.intValue();
}
if (a != 42) {
c.intValue();
}
}
}

@ -0,0 +1,44 @@
// Copyright (c) 2015-Present Facebook. All rights reserved.
package endtoend.java.infer;
import static org.hamcrest.MatcherAssert.assertThat;
import static utils.matchers.ResultContainsNoErrorInMethod.doesNotContain;
import org.junit.BeforeClass;
import org.junit.Test;
import java.io.IOException;
import utils.InferException;
import utils.InferResults;
public class IntegerClassTest {
public static final String SOURCE_FILE =
"infer/tests/codetoanalyze/java/infer/IntegerExample.java";
public static final String NULL_DEREFERENCE = "NULL_DEREFERENCE";
private static InferResults inferResults;
@BeforeClass
public static void loadResults() throws IOException {
inferResults = InferResults.loadInferResults(IntegerClassTest.class, SOURCE_FILE);
}
@Test
public void test()
throws InterruptedException, IOException, InferException {
assertThat(
"Results should not contain NPE errors",
inferResults,
doesNotContain(
NULL_DEREFERENCE,
SOURCE_FILE,
"testIntegerEquals"
)
);
}
}
Loading…
Cancel
Save