use of org.checkerframework.dataflow.expression.FormalParameter in project checker-framework by typetools.
the class StringToJavaExpression method atMethodDecl.
/**
* Parses a string to a {@link JavaExpression} as if it were written at {@code method}. The
* returned {@code JavaExpression} uses {@link FormalParameter}s to represent parameters. Use
* {@link #atMethodBody(String, MethodTree, SourceChecker)} if parameters should be {@link
* LocalVariable}s instead.
*
* @param expression a Java expression to parse
* @param method method element at which {@code expression} is parsed
* @param checker checker used to get the {@link
* javax.annotation.processing.ProcessingEnvironment} and current {@link
* com.sun.source.tree.CompilationUnitTree}
* @return a {@code JavaExpression} for {@code expression}
* @throws JavaExpressionParseException if {@code expression} cannot be parsed
*/
static JavaExpression atMethodDecl(String expression, ExecutableElement method, SourceChecker checker) throws JavaExpressionParseException {
TypeMirror enclosingType = ElementUtils.enclosingTypeElement(method).asType();
ThisReference thisReference;
if (ElementUtils.isStatic(method)) {
// Can't use "this" on a static method
thisReference = null;
} else {
thisReference = new ThisReference(enclosingType);
}
List<FormalParameter> parameters = JavaExpression.getFormalParameters(method);
return JavaExpressionParseUtil.parse(expression, enclosingType, thisReference, parameters, null, checker.getPathToCompilationUnit(), checker.getProcessingEnvironment());
}
Aggregations