[swift-evolution] Language enhancement: Nest enum declaration into protocol declaration

Jakub Bednář jakub.bednar at avg.com
Mon Nov 21 06:33:27 CST 2016


Hi fellow Swifters,

I have just started using the language and was trying to declare an enum inside a protocol.

protocol WorkingEngine {
   enum States {
  	Idle
        Pending
        Working
        Finished
        Canceled 
  }

  var state: States { get }
}

The compiler refused this and I had to take the enum outside of the protocol:

enum WorkingEngineStates {
  	Idle
        Pending
        Working
        Finished
        Canceled 
  }

protocol WorkingEngine {
  var state: WorkingEngineStates { get }
}

This does not seem coherent with the rest of the language, as enums can be nested in classes, structs and even enums, but not to protocols. 
I haven’t found any proposal for this change. Is this the correct place to request it or get some opinion on the idea?

Thanks a lot,

Jakub



More information about the swift-evolution mailing list