facebookarchive / swift

An annotation-based Java library for creating Thrift serializable types and services.
Apache License 2.0
900 stars 297 forks source link

Support Builders of interface types. #279

Closed jsirois closed 6 years ago

jsirois commented 8 years ago

With 243fa41166f826543db11faa046429c8e16b7d26, the path was opened for builders to produce concrete implementations of abstract struct types; however the ThriftCodecByteCodeGenerator implementation still assumes struct types are classes, and so invalid bytecode is emitted for calling method extractors on structs of interface type (INVOKEVIRTUAL instead of INVOKEINTERFACE). Fixup ThriftCodecByteCodeGenerator to handle codegen for structs of interface type.