src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java
changeset 50250 04f9bb270ab8
parent 50213 3085969bdf91
child 50539 7bf4f1b5e438
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java	Thu May 24 14:35:32 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java	Thu May 24 11:13:42 2018 +0100
@@ -90,6 +90,7 @@
     private final JCDiagnostic.Factory diags;
     private final JavaFileManager fileManager;
     private final Source source;
+    private final Target target;
     private final Profile profile;
     private final boolean warnOnAnyAccessToMembers;
 
@@ -130,6 +131,7 @@
         fileManager = context.get(JavaFileManager.class);
 
         source = Source.instance(context);
+        target = Target.instance(context);
         warnOnAnyAccessToMembers = options.isSet("warnOnAccessToMembers");
 
         Target target = Target.instance(context);
@@ -1001,9 +1003,10 @@
                  !isTrustMeAllowedOnMethod(sym))) {
                 warnUnchecked(env.tree.pos(), Warnings.UncheckedGenericArrayCreation(argtype));
             }
-            if ((sym.baseSymbol().flags() & SIGNATURE_POLYMORPHIC) == 0) {
-                TreeInfo.setVarargsElement(env.tree, types.elemtype(argtype));
-            }
+            TreeInfo.setVarargsElement(env.tree, types.elemtype(argtype));
+         }
+         if ((sym.flags() & SIGNATURE_POLYMORPHIC) != 0 && !target.hasMethodHandles()) {
+            log.error(env.tree, Errors.BadTargetSigpolyCall(target, Target.JDK1_7));
          }
          return owntype;
     }