MethodContract.createConstraintArray

This commit is contained in:
peter
2014-06-06 21:53:58 +02:00
parent 109906efc7
commit 75c42570f2
2 changed files with 11 additions and 11 deletions
@@ -1465,18 +1465,18 @@ public class ControlFlowAnalyzer extends JavaElementVisitor {
final String className = owner.getQualifiedName();
if ("java.lang.System".equals(className)) {
if ("exit".equals(methodName)) {
return Collections.singletonList(new MethodContract(getAnyArgConstraints(paramCount), ValueConstraint.THROW_EXCEPTION));
return Collections.singletonList(new MethodContract(MethodContract.createConstraintArray(paramCount), ValueConstraint.THROW_EXCEPTION));
}
}
else if ("junit.framework.Assert".equals(className) || "org.junit.Assert".equals(className) ||
"junit.framework.TestCase".equals(className) || "org.testng.Assert".equals(className) || "org.testng.AssertJUnit".equals(className)) {
boolean testng = className.startsWith("org.testng.");
if ("fail".equals(methodName)) {
return Collections.singletonList(new MethodContract(getAnyArgConstraints(paramCount), ValueConstraint.THROW_EXCEPTION));
return Collections.singletonList(new MethodContract(MethodContract.createConstraintArray(paramCount), ValueConstraint.THROW_EXCEPTION));
}
int checkedParam = testng ? 0 : paramCount - 1;
ValueConstraint[] constraints = getAnyArgConstraints(paramCount);
ValueConstraint[] constraints = MethodContract.createConstraintArray(paramCount);
if ("assertTrue".equals(methodName)) {
constraints[checkedParam] = ValueConstraint.FALSE_VALUE;
return Collections.singletonList(new MethodContract(constraints, ValueConstraint.THROW_EXCEPTION));
@@ -1505,14 +1505,6 @@ public class ControlFlowAnalyzer extends JavaElementVisitor {
return AnnotationUtil.findAnnotation(method, ORG_JETBRAINS_ANNOTATIONS_CONTRACT);
}
private static ValueConstraint[] getAnyArgConstraints(int paramCount) {
ValueConstraint[] args = new ValueConstraint[paramCount];
for (int i = 0; i < args.length; i++) {
args[i] = ValueConstraint.ANY_VALUE;
}
return args;
}
private void pushTypeOrUnknown(PsiExpression expr) {
PsiType type = expr.getType();
@@ -36,6 +36,14 @@ public class MethodContract {
this.returnValue = returnValue;
}
static ValueConstraint[] createConstraintArray(int paramCount) {
ValueConstraint[] args = new ValueConstraint[paramCount];
for (int i = 0; i < args.length; i++) {
args[i] = ValueConstraint.ANY_VALUE;
}
return args;
}
@Override
public String toString() {
return StringUtil.join(arguments, new Function<ValueConstraint, String>() {