private static boolean isSamInterface(@NotNull ClassDescriptor klass) {
    if (klass.getKind() != ClassKind.TRAIT) {
      return false;
    }

    List<CallableMemberDescriptor> abstractMembers = getAbstractMembers(klass.getDefaultType());
    if (abstractMembers.size() == 1) {
      CallableMemberDescriptor member = abstractMembers.get(0);
      if (member instanceof SimpleFunctionDescriptor) {
        return member.getTypeParameters().isEmpty();
      }
    }
    return false;
  }
Ejemplo n.º 2
0
 private void renderWhereSuffix(
     @NotNull CallableMemberDescriptor callable, @NotNull StringBuilder builder) {
   boolean first = true;
   for (TypeParameterDescriptor typeParameter : callable.getTypeParameters()) {
     if (typeParameter.getUpperBounds().size() > 1) {
       for (JetType upperBound : typeParameter.getUpperBounds()) {
         if (first) {
           builder.append(" ");
           builder.append(renderKeyword("where"));
           builder.append(" ");
         } else {
           builder.append(", ");
         }
         builder.append(typeParameter.getName());
         builder.append(" : ");
         builder.append(escape(renderType(upperBound)));
         first = false;
       }
     }
   }
 }