From: Rico Tzschichholz Date: Thu, 5 Jan 2017 20:49:38 +0000 (+0100) Subject: girparser: Let alias inherit more information from base_type X-Git-Tag: 0.35.3~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9c9b3b4a02c1ad8d0fa198a53ff70ef6ce253dbb;p=thirdparty%2Fvala.git girparser: Let alias inherit more information from base_type --- diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala index 0c02eef16..5ed041a4f 100644 --- a/vala/valagirparser.vala +++ b/vala/valagirparser.vala @@ -3594,6 +3594,7 @@ public class Vala.GirParser : CodeVisitor { } cl.comment = alias.comment; cl.external = true; + cl.is_compact = ((Class) type_sym).is_compact; alias.symbol = cl; } else if (type_sym is Interface) { // this is not a correct alias, but what can we do otherwise? @@ -3632,6 +3633,15 @@ public class Vala.GirParser : CodeVisitor { alias.symbol = deleg; } + + // inherit atributes, like type_id + if (type_sym is Class || (type_sym is Struct && !simple_type)) { + if (type_sym.has_attribute_argument ("CCode", "has_type_id")) { + alias.symbol.set_attribute_bool ("CCode", "has_type_id", type_sym.get_attribute_bool ("CCode", "has_type_id")); + } else if (type_sym.has_attribute_argument ("CCode", "type_id")) { + alias.symbol.set_attribute_string ("CCode", "type_id", type_sym.get_attribute_string ("CCode", "type_id")); + } + } } void process_callable (Node node) {