On 04/22/2015 11:49 PM, Pekka Paalanen wrote:

Allowing fully qualified names is another thing. Should we allow it? Is
it good practice? Is it useful? How would the fully qualitified names
look like?

Even if it's not used for codegen, you need it for docgen if you want
to be able to reference other interfaces' enums. Many interfaces may
have same-named enums.

Using enum="interfacename.enumname" would probably work. The "interfacename." is optional if you are describing a method on the same interface. Another possibility is to just add interface="interfacename" to the argument along with enum="enumname".

Due to the name collisions of both enum names and enum values, most language binding will probably have to fully qualify any values. So you are likely to see widget.setAlignment(Widget.Align.Left) despite the redundant information.

So a more drastic approach might be to make enums be in the same namespace as interfaces, renaming them as necessary to avoid collisions.

An even more drastic approach would be to put all the values in the same namespace as interfaces, again renaming (or perhaps changing the values) as necessary. This would allow the programmer to write Widget.setAlignment(Left). It would also match how enums in C work.
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to