langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/DeferredAttr.java
changeset 30728 f0c022c5290c
parent 29842 826ac2519523
child 31937 ad43a6639c4a
equal deleted inserted replaced
30727:a4dac07f827c 30728:f0c022c5290c
  1315                         return true;
  1315                         return true;
  1316                     case ANNOTATED_TYPE:
  1316                     case ANNOTATED_TYPE:
  1317                         return isSimpleReceiver(((JCAnnotatedType)rec).underlyingType);
  1317                         return isSimpleReceiver(((JCAnnotatedType)rec).underlyingType);
  1318                     case APPLY:
  1318                     case APPLY:
  1319                         return true;
  1319                         return true;
       
  1320                     case NEWCLASS:
       
  1321                         JCNewClass nc = (JCNewClass) rec;
       
  1322                         return nc.encl == null && nc.def == null && !TreeInfo.isDiamond(nc);
  1320                     default:
  1323                     default:
  1321                         return false;
  1324                         return false;
  1322                 }
  1325                 }
  1323             }
  1326             }
  1324             private ArgumentExpressionKind reduce(ArgumentExpressionKind kind) {
  1327             private ArgumentExpressionKind reduce(ArgumentExpressionKind kind) {
  1369             }
  1372             }
  1370 
  1373 
  1371             Type site;
  1374             Type site;
  1372 
  1375 
  1373             if (rec != null) {
  1376             if (rec != null) {
  1374                 if (rec.hasTag(APPLY)) {
  1377                 switch (rec.getTag()) {
  1375                     Symbol recSym = quicklyResolveMethod(env, (JCMethodInvocation) rec);
  1378                     case APPLY:
  1376                     if (recSym == null)
  1379                         Symbol recSym = quicklyResolveMethod(env, (JCMethodInvocation) rec);
  1377                         return null;
  1380                         if (recSym == null)
  1378                     Symbol resolvedReturnType =
  1381                             return null;
  1379                             analyzeCandidateMethods(recSym, syms.errSymbol, returnSymbolAnalyzer);
  1382                         Symbol resolvedReturnType =
  1380                     if (resolvedReturnType == null)
  1383                                 analyzeCandidateMethods(recSym, syms.errSymbol, returnSymbolAnalyzer);
  1381                         return null;
  1384                         if (resolvedReturnType == null)
  1382                     site = resolvedReturnType.type;
  1385                             return null;
  1383                 } else {
  1386                         site = resolvedReturnType.type;
  1384                     site = attribSpeculative(rec, env, attr.unknownTypeExprInfo).type;
  1387                         break;
       
  1388                     case NEWCLASS:
       
  1389                         JCNewClass nc = (JCNewClass) rec;
       
  1390                         site = attribSpeculative(nc.clazz, env, attr.unknownTypeExprInfo).type;
       
  1391                         break;
       
  1392                     default:
       
  1393                         site = attribSpeculative(rec, env, attr.unknownTypeExprInfo).type;
       
  1394                         break;
  1385                 }
  1395                 }
  1386             } else {
  1396             } else {
  1387                 site = env.enclClass.sym.type;
  1397                 site = env.enclClass.sym.type;
  1388             }
  1398             }
  1389 
  1399