langtools/src/share/classes/com/sun/tools/javac/code/Types.java
changeset 14723 46aa71a5e4e0
parent 14719 cd65a651beb3
child 14725 65836e833f59
equal deleted inserted replaced
14722:aaa39655aa2e 14723:46aa71a5e4e0
   435             if (abstracts.isEmpty()) {
   435             if (abstracts.isEmpty()) {
   436                 //t must define a suitable non-generic method
   436                 //t must define a suitable non-generic method
   437                 throw failure("not.a.functional.intf.1",
   437                 throw failure("not.a.functional.intf.1",
   438                             diags.fragment("no.abstracts", Kinds.kindName(origin), origin));
   438                             diags.fragment("no.abstracts", Kinds.kindName(origin), origin));
   439             } else if (abstracts.size() == 1) {
   439             } else if (abstracts.size() == 1) {
   440                 if (abstracts.first().type.tag == FORALL) {
   440                 return new FunctionDescriptor(abstracts.first());
   441                     throw failure("invalid.generic.desc.in.functional.intf",
       
   442                             abstracts.first(),
       
   443                             Kinds.kindName(origin),
       
   444                             origin);
       
   445                 } else {
       
   446                     return new FunctionDescriptor(abstracts.first());
       
   447                 }
       
   448             } else { // size > 1
   441             } else { // size > 1
   449                 for (Symbol msym : abstracts) {
       
   450                     if (msym.type.tag == FORALL) {
       
   451                         throw failure("invalid.generic.desc.in.functional.intf",
       
   452                                 abstracts.first(),
       
   453                                 Kinds.kindName(origin),
       
   454                                 origin);
       
   455                     }
       
   456                 }
       
   457                 FunctionDescriptor descRes = mergeDescriptors(origin, abstracts.toList());
   442                 FunctionDescriptor descRes = mergeDescriptors(origin, abstracts.toList());
   458                 if (descRes == null) {
   443                 if (descRes == null) {
   459                     //we can get here if the functional interface is ill-formed
   444                     //we can get here if the functional interface is ill-formed
   460                     ListBuffer<JCDiagnostic> descriptors = ListBuffer.lb();
   445                     ListBuffer<JCDiagnostic> descriptors = ListBuffer.lb();
   461                     for (Symbol desc : abstracts) {
   446                     for (Symbol desc : abstracts) {