boolean (@NotNull CFGBuilder builder, @NotNull PsiMethodCallExpression call) { if (!ASSERT_ALL.matches(call) || !MethodCallUtils.isVarArgCall(call)) return false; PsiExpression[] args = call.getArgumentList().getExpressions(); for (int i = 0; i < args.length; i++) { PsiExpression arg = args[i]; if (i == 0 && TypeUtils.isJavaLangString(arg.getType())) { builder.pushExpression(arg, NullabilityProblemKind.noProblem).pop(); } else { builder.evaluateFunction(arg); } } DfaVariableValue result = builder.createTempVariable(PsiTypes.booleanType()); builder.assignAndPop(result, DfTypes.FALSE); for (int i = 0; i < args.length; i++) { PsiExpression arg = args[i]; if (i == 0 && TypeUtils.isJavaLangString(arg.getType())) continue; builder .doTry(call) .invokeFunction(0, arg) .pop() .catchAll() .assignAndPop(result, DfTypes.TRUE) .end(); } PsiType throwable = JavaPsiFacade.getElementFactory(call.getProject()) .createTypeByFQClassName("org.opentest4j.MultipleFailuresError", call.getResolveScope()); builder.push(result) .ifConditionIs(true) .doThrow(throwable) .end() .pushUnknown(); // void method result return true; }