< prev index next > src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java
Print this page
package com.sun.tools.javac.comp;
import java.util.*;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
+ import java.util.function.Function;
import java.util.stream.Stream;
import javax.lang.model.element.ElementKind;
import javax.tools.JavaFileObject;
log.useSource(prev);
}
return env;
}
+ public <R> R runWithAttributedMethod(Env<AttrContext> env, JCMethodDecl tree, Function<JCBlock, R> attributedAction) {
+ JavaFileObject prevSource = log.useSource(env.toplevel.sourcefile);
+ try {
+ JCBlock dupTree = (JCBlock)deferredAttr.attribSpeculative(tree.body, env, statInfo,
+ null, DeferredAttr.AttributionMode.ATTRIB_TO_TREE,
+ argumentAttr.withLocalCacheContext());
+ return attributedAction.apply(dupTree);
+ } finally {
+ attrRecover.doRecovery();
+ log.useSource(prevSource);
+ }
+ }
+
private JCTree breakTree = null;
private static class BreakAttr extends RuntimeException {
static final long serialVersionUID = -6924771130405446405L;
private transient Env<AttrContext> env;
< prev index next >