]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
girparser: Add symbol deprecation
authorLuca Bruno <lucabru@src.gnome.org>
Sun, 29 Aug 2010 13:20:55 +0000 (15:20 +0200)
committerEvan Nemerson <evan@coeus-group.com>
Mon, 8 Nov 2010 09:43:19 +0000 (01:43 -0800)
vala/valagirparser.vala

index d83be10c20dc249011936dee956b36e426995d75..7a790246d0345c33f419cfc1fa430d3194ce25a4 100644 (file)
@@ -858,6 +858,11 @@ public class Vala.GirParser : CodeVisitor {
        }
 
        void postprocess_symbol (Symbol symbol, Metadata metadata) {
+               // deprecation
+               symbol.replacement = metadata.get_string (ArgumentType.REPLACEMENT);
+               symbol.deprecated_since = element_get_string ("deprecated-version", ArgumentType.DEPRECATED_SINCE);
+               symbol.deprecated = metadata.get_bool (ArgumentType.DEPRECATED) || symbol.replacement != null || symbol.deprecated_since != null;
+
                // mark to be reparented
                if (metadata.has_argument (ArgumentType.PARENT)) {
                        var target_symbol = parse_symbol_from_string (metadata.get_string (ArgumentType.PARENT), metadata.get_source_reference (ArgumentType.PARENT));
@@ -1056,6 +1061,14 @@ public class Vala.GirParser : CodeVisitor {
                return type;
        }
 
+       string? element_get_string (string attribute_name, ArgumentType arg_type) {
+               var str = metadata.get_string (arg_type);
+               if (str == null) {
+                       str = reader.get_attribute (attribute_name);
+               }
+               return str;
+       }
+
        DataType? element_get_type (DataType orig_type, bool owned_by_default, out bool changed = null) {
                if (&changed != null) {
                        changed = false;