<div dir="ltr"><div><div>
> Using enum="interfacename.enumname" would probably work. The<br>
> "interfacename." is optional if you are describing a method on the same<br>
> interface. Another possibility is to just add interface="interfacename"<br>
> to the argument along with enum="enumname".<br><br></div>The second possibility wouldn't work for bitfields that take enums from different interfaces.<br><br>
> An even more drastic approach would be to put all the values in the same<br>
> namespace as interfaces, again renaming (or perhaps changing the values)<br>
> as necessary. This would allow the programmer to write<br>
> Widget.setAlignment(Left). It would also match how enums in C work.<br><br></div>Putting enums next to interfaces, instead of inside of them, to me, also seems like the best option. I don't think it'll get any support however, as it isn't backwards compatible. <br><div><div><div><div><br></div></div></div></div></div><br><div class="gmail_quote">On Thu, 23 Apr 2015 at 20:22 Bill Spitzak <<a href="mailto:spitzak@gmail.com">spitzak@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 04/22/2015 11:49 PM, Pekka Paalanen wrote:<br>
<br>
> Allowing fully qualified names is another thing. Should we allow it? Is<br>
> it good practice? Is it useful? How would the fully qualitified names<br>
> look like?<br>
><br>
> Even if it's not used for codegen, you need it for docgen if you want<br>
> to be able to reference other interfaces' enums. Many interfaces may<br>
> have same-named enums.<br>
<br>
Using enum="interfacename.enumname" would probably work. The<br>
"interfacename." is optional if you are describing a method on the same<br>
interface. Another possibility is to just add interface="interfacename"<br>
to the argument along with enum="enumname".<br>
<br>
Due to the name collisions of both enum names and enum values, most<br>
language binding will probably have to fully qualify any values. So you<br>
are likely to see widget.setAlignment(Widget.Align.Left) despite the<br>
redundant information.<br>
<br>
So a more drastic approach might be to make enums be in the same<br>
namespace as interfaces, renaming them as necessary to avoid collisions.<br>
<br>
An even more drastic approach would be to put all the values in the same<br>
namespace as interfaces, again renaming (or perhaps changing the values)<br>
as necessary. This would allow the programmer to write<br>
Widget.setAlignment(Left). It would also match how enums in C work.<br>
</blockquote></div>