[Accepted] SE-0384: Importing Forward Declared Objective-C Interfaces and Protocols

Hi folks,

The review for SE-0384: Importing Forward Declared Objective-C Interfaces and Protocols ran from January 4 to January 18. The language workgroup has decided to accept the proposal.

The proposal was received favorably, with much of the discussion occurring around compatibility with the REPL and LLDB expression evaluator. The language workgroup believes it is desirable to have language features supported uniformly across all of these use cases. However, we feel that the challenges involved to support this feature in the REPL and LLDB are a matter of continued implementation work and refactoring and not a fundamental design problem of the proposal. The proposal as currently implemented still embodies a strict improvement for the usability of Objective-C APIs imported into Swift.

One community member raised the question of whether forward-declared enums and structs should also be supported as part of this proposal. The language workgroup recognizes this as a desired direction but feels that it should be a separate proposal, as there are unique technical issues not applicable to forward-declared Objective-C classes and protocols (for example, not knowing the layout of the declared type).

Thank you to all who participated in the review!

—Tony Allevato, review manager

13 Likes

Hi @allevato as per my understanding I am facing same problem which was part of this proposal but for a custom framework: No member in framework target: Swift class as forward class in ObjC, accessed in Swift through ObjC class.

Am I missing anything over here?