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; }
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; } } } }