< prev index next >

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

Print this page
*** 27,11 ***
  
  
  import com.sun.source.tree.MemberReferenceTree.ReferenceMode;
  import com.sun.tools.javac.code.*;
  import com.sun.tools.javac.code.Attribute.TypeCompound;
- import com.sun.tools.javac.code.Source.Feature;
  import com.sun.tools.javac.code.Symbol.*;
  import com.sun.tools.javac.code.Type.TypeVar;
  import com.sun.tools.javac.jvm.Target;
  import com.sun.tools.javac.tree.*;
  import com.sun.tools.javac.tree.JCTree.*;
--- 27,10 ---

*** 47,12 ***
  import static com.sun.tools.javac.code.TypeTag.TYPEVAR;
  import static com.sun.tools.javac.code.TypeTag.VOID;
  import static com.sun.tools.javac.comp.CompileStates.CompileState;
  import com.sun.tools.javac.tree.JCTree.JCBreak;
  
- import javax.lang.model.type.TypeKind;
- 
  /** This pass translates Generic Java to conventional Java.
   *
   *  <p><b>This is NOT part of any supported API.
   *  If you write code that depends on this, you do so at your own risk.
   *  This code and its internal interfaces are subject to change or
--- 46,10 ---

*** 638,10 ***
--- 635,11 ---
       */
      boolean needsConversionToLambda(JCMemberReference tree) {
          return interfaceParameterIsIntersectionOrUnionType(tree) ||
                  tree.hasKind(ReferenceKind.SUPER) ||
                  needsVarArgsConversion(tree) ||
+                 tree.codeReflectionInfo != null ||
                  isArrayOp(tree) ||
                  (!target.runtimeUseNestAccess() && isPrivateInOtherClass(tree)) ||
                  isProtectedInSuperClassOfEnclosingClassInOtherPackage(tree.sym, env.enclClass.sym) ||
                  !receiverAccessible(tree) ||
                  (tree.getMode() == ReferenceMode.NEW &&

*** 680,10 ***
--- 678,11 ---
                  JCLambda slam = make.Lambda(params.toList(), expr);
                  slam.target = tree.target;
                  slam.owner = tree.owner;
                  slam.type = tree.type;
                  slam.pos = tree.pos;
+                 slam.codeReflectionInfo = tree.codeReflectionInfo;
                  slam.wasMethodReference = true;
                  if (receiverExpression != null) {
                      // use a let expression so that the receiver expression is evaluated eagerly
                      return make.at(tree.pos).LetExpr(
                              make.VarDef(rcvr, receiverExpression), slam).setType(tree.type);
< prev index next >