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
|