methodDataflow(TreePath methodPath, Context context, T transfer) {
final Tree leaf = methodPath.getLeaf();
Preconditions.checkArgument(leaf instanceof MethodTree,
"Leaf of methodPath must be of type MethodTree, but was %s", leaf.getClass().getName());
final MethodTree method = (MethodTree) leaf;
Preconditions.checkNotNull(method.getBody(),
"Method to analyze must have a body. Method passed in: %s() in file %s",
method.getName(),
methodPath.getCompilationUnit().getSourceFile().getName());
final ProcessingEnvironment env = JavacProcessingEnvironment.instance(context);
final ControlFlowGraph cfg = cfgCache.getUnchecked(new CFGParams(methodPath, env));
final AnalysisParams aparams = new AnalysisParams(transfer, cfg, env);