Rémi Bernon (@rbernon) commented about tools/widl/parser.y:
runtimeclass: tRUNTIMECLASS typename { $$ = type_runtimeclass_declare($2, current_namespace); } ;
-runtimeclass_def: attributes runtimeclass '{' class_interfaces '}' semicolon_opt - { $$ = type_runtimeclass_define($2, $1, $4); } +base + : %empty { $$ = NULL; } + | tRUNTIMECLASS runtimeclass { $$ = $2; } + ; + +runtimeclass_def: attributes runtimeclass inherit base '{' class_interfaces '}' semicolon_opt + { $$ = type_runtimeclass_define($2, $1, $6); } ; I don't see the `runtimeclass A : runtimeclass B` pattern anywhere in the SDK. Should it really be supported?
If not you only need to add `inherit` there. If it is, I'd suggest to duplicate the `inherit` rule and name it `class_inherit` instead of `base`, to be more explicit. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/2559#note_28623