src/share/classes/com/sun/tools/javac/code/Types.java

changeset 1434
34d1ebaf4645
parent 1430
4d68e2a05b50
child 1436
f6f1fd261f57
equal deleted inserted replaced
1433:4f9853659bf1 1434:34d1ebaf4645
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) {

mercurial