public Set<TypeReference> getDelegatedInterfaces(final MemberDeclaration delegate) { Set<TypeReference> _xblockexpression = null; { final Set<TypeReference> interfacesOfDeclaringType = this.getImplementedInterfaces(this.context.newSelfTypeReference(delegate.getDeclaringType())); final Set<TypeReference> listedInterfaces = this.listedInterfaces(delegate); final Set<TypeReference> availableInterfaces = this.getImplementedInterfaces(this.getType(delegate)); final Function1<TypeReference, Boolean> _function = (TypeReference iface) -> { return Boolean.valueOf((interfacesOfDeclaringType.contains(iface) && (listedInterfaces.isEmpty() || IterableExtensions.<TypeReference>exists(listedInterfaces, ((Function1<TypeReference, Boolean>) (TypeReference it) -> { return Boolean.valueOf(iface.isAssignableFrom(it)); }))))); }; _xblockexpression = IterableExtensions.<TypeReference>toSet(IterableExtensions.<TypeReference>filter(availableInterfaces, _function)); } return _xblockexpression; }
final Set<TypeReference> interfacesOfDeclaringType = this.getImplementedInterfaces(declaringType); final Set<TypeReference> availableInterfaces = this.getImplementedInterfaces(this.getType(delegate)); final Set<TypeReference> listedInterfaces = this.listedInterfaces(delegate); boolean valid = true; for (final TypeReference iface : listedInterfaces) {