When swift2thrift was implemented, we added a restriction that a @ThriftService class cannot extend multiple @ThriftService classes, ever. This was because if we find this pattern in Swift classes, we cannot generate code for it in Thrift IDL, because that language doesn't support it.
However we only need to disallow swift2thrift codegen for this. We can still allow this pattern in swift, as long as you separate the @ThriftServices you intend to export via swift2thrift into interface classes, and only compose them in an implementation @ThriftService class that you don't intend to export via swift2thrift.
When swift2thrift was implemented, we added a restriction that a @ThriftService class cannot extend multiple @ThriftService classes, ever. This was because if we find this pattern in Swift classes, we cannot generate code for it in Thrift IDL, because that language doesn't support it.
However we only need to disallow swift2thrift codegen for this. We can still allow this pattern in swift, as long as you separate the @ThriftServices you intend to export via swift2thrift into interface classes, and only compose them in an implementation @ThriftService class that you don't intend to export via swift2thrift.