Rémi Bernon (@rbernon) commented about tools/widl/parser.y:
} }
- if (!is_attr(iface->attrs, ATTR_LOCAL) && !is_attr(iface->attrs, ATTR_UUID) && !is_attr(iface->attrs, ATTR_VERSION))
- {
statement_list_t* methods = type_iface_get_stmts(iface);if (methods){int method_count = 0;STATEMENTS_FOR_EACH_FUNC( stmt, methods ){method_count++;}if (method_count)error_at( &iface->where, "Can't omit both local and uuid keyword" );}- }
I believe the check should be:
1) `[object]` interfaces are required to have a `[uuid]`, empty or not.
2) `[local]` interfaces are allowed to not have a `[uuid]`, empty or not.
3) remote (non-`[object]`, non-`[local]`) interfaces must have an `[uuid]`, unless they are empty, but they aren't supposed to be empty and there's a separate warning.