< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java

Print this page




2376                             }
2377                     }
2378                 }
2379                 return false;
2380             }
2381 
2382             /**
2383              * Does this reference need to be converted to a lambda
2384              * (i.e. var args need to be expanded or "super" is used)
2385              */
2386             final boolean needsConversionToLambda() {
2387                 return interfaceParameterIsIntersectionOrUnionType() ||
2388                         isSuper ||
2389                         needsVarArgsConversion() ||
2390                         isArrayOp() ||
2391                         isPrivateInOtherClass() ||
2392                         isProtectedInSuperClassOfEnclosingClassInOtherPackage() ||
2393                         !receiverAccessible() ||
2394                         (tree.getMode() == ReferenceMode.NEW &&
2395                           tree.kind != ReferenceKind.ARRAY_CTOR &&
2396                           (tree.sym.owner.isLocal() || tree.sym.owner.isInner()));
2397             }
2398 
2399             Type generatedRefSig() {
2400                 return types.erasure(tree.sym.type);
2401             }
2402 
2403             Type bridgedRefSig() {
2404                 return types.erasure(types.findDescriptorSymbol(tree.target.tsym).type);
2405             }
2406         }
2407     }
2408     // </editor-fold>
2409 
2410     /*
2411      * These keys provide mappings for various translated lambda symbols
2412      * and the prevailing order must be maintained.
2413      */
2414     enum LambdaSymbolKind {
2415         PARAM,          // original to translated lambda parameters
2416         LOCAL_VAR,      // original to translated lambda locals




2376                             }
2377                     }
2378                 }
2379                 return false;
2380             }
2381 
2382             /**
2383              * Does this reference need to be converted to a lambda
2384              * (i.e. var args need to be expanded or "super" is used)
2385              */
2386             final boolean needsConversionToLambda() {
2387                 return interfaceParameterIsIntersectionOrUnionType() ||
2388                         isSuper ||
2389                         needsVarArgsConversion() ||
2390                         isArrayOp() ||
2391                         isPrivateInOtherClass() ||
2392                         isProtectedInSuperClassOfEnclosingClassInOtherPackage() ||
2393                         !receiverAccessible() ||
2394                         (tree.getMode() == ReferenceMode.NEW &&
2395                           tree.kind != ReferenceKind.ARRAY_CTOR &&
2396                           (tree.sym.owner.isLocal() || tree.sym.owner.isInner() || tree.sym.owner.isValue()));
2397             }
2398 
2399             Type generatedRefSig() {
2400                 return types.erasure(tree.sym.type);
2401             }
2402 
2403             Type bridgedRefSig() {
2404                 return types.erasure(types.findDescriptorSymbol(tree.target.tsym).type);
2405             }
2406         }
2407     }
2408     // </editor-fold>
2409 
2410     /*
2411      * These keys provide mappings for various translated lambda symbols
2412      * and the prevailing order must be maintained.
2413      */
2414     enum LambdaSymbolKind {
2415         PARAM,          // original to translated lambda parameters
2416         LOCAL_VAR,      // original to translated lambda locals


< prev index next >