--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java Fri Aug 30 10:44:06 2019 +0200
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java Fri Aug 30 12:24:16 2019 +0200
@@ -735,11 +735,9 @@
*/
public Type attribStat(JCTree tree, Env<AttrContext> env) {
Env<AttrContext> analyzeEnv = analyzer.copyEnvIfNeeded(tree, env);
- try {
- return attribTree(tree, env, statInfo);
- } finally {
- analyzer.analyzeIfNeeded(tree, analyzeEnv);
- }
+ Type result = attribTree(tree, env, statInfo);
+ analyzer.analyzeIfNeeded(tree, analyzeEnv);
+ return result;
}
/** Attribute a list of expressions, returning a list of types.
@@ -933,7 +931,7 @@
public void visitClassDef(JCClassDecl tree) {
Optional<ArgumentAttr.LocalCacheContext> localCacheContext =
- Optional.ofNullable(env.info.isSpeculative ?
+ Optional.ofNullable(env.info.attributionMode.isSpeculative ?
argumentAttr.withLocalCacheContext() : null);
try {
// Local and anonymous classes have not been entered yet, so we need to
@@ -3232,7 +3230,7 @@
return;
}
- if (!env.info.isSpeculative && that.getMode() == JCMemberReference.ReferenceMode.NEW) {
+ if (!env.info.attributionMode.isSpeculative && that.getMode() == JCMemberReference.ReferenceMode.NEW) {
Type enclosingType = exprType.getEnclosingType();
if (enclosingType != null && enclosingType.hasTag(CLASS)) {
// Check for the existence of an apropriate outer instance