[vala/staging] Transform CCode*'s "deprecated" into using CCodeNode's "modifiers"



commit cccf2ad9f2c6d3bb96af755bbb325bc27f232c10
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Fri Nov 11 19:30:41 2016 +0100

    Transform CCode*'s "deprecated" into using CCodeNode's "modifiers"

 ccode/valaccodeenum.vala             |    7 +------
 ccode/valaccodeenumvalue.vala        |    8 +++-----
 ccode/valaccodestruct.vala           |    7 +------
 ccode/valaccodetypedefinition.vala   |    7 +------
 codegen/valaccodebasemodule.vala     |    4 ++--
 codegen/valaccodedelegatemodule.vala |    2 +-
 codegen/valaccodestructmodule.vala   |    2 +-
 tests/annotations/deprecated.vala    |   16 ++++++++++++++++
 8 files changed, 26 insertions(+), 27 deletions(-)
---
diff --git a/ccode/valaccodeenum.vala b/ccode/valaccodeenum.vala
index 2288456..f2a3788 100644
--- a/ccode/valaccodeenum.vala
+++ b/ccode/valaccodeenum.vala
@@ -31,11 +31,6 @@ public class Vala.CCodeEnum : CCodeNode {
         */
        public string name { get; set; }
 
-       /**
-        * Whether the enum is deprecated.
-        */
-       public bool deprecated { get; set; default = false; }
-       
        private List<CCodeEnumValue> values = new ArrayList<CCodeEnumValue> ();
        
        public CCodeEnum (string? name = null) {
@@ -75,7 +70,7 @@ public class Vala.CCodeEnum : CCodeNode {
                        writer.write_string (" ");
                        writer.write_string (name);
                }
-               if (deprecated) {
+               if (CCodeModifiers.DEPRECATED in modifiers) {
                        writer.write_string (" G_GNUC_DEPRECATED");
                }
                writer.write_string (";");
diff --git a/ccode/valaccodeenumvalue.vala b/ccode/valaccodeenumvalue.vala
index e1c0251..e952f4b 100644
--- a/ccode/valaccodeenumvalue.vala
+++ b/ccode/valaccodeenumvalue.vala
@@ -32,11 +32,6 @@ public class Vala.CCodeEnumValue : CCodeNode {
        public string name { get; set; }
 
        /**
-        * Whether this enum value is deprecated.
-        */
-       public bool deprecated { get; set; default = false; }
-
-       /**
         * The numerical representation of this enum value.
         */
        public CCodeExpression? value { get; set; }
@@ -52,5 +47,8 @@ public class Vala.CCodeEnumValue : CCodeNode {
                        writer.write_string (" = ");
                        value.write (writer);
                }
+               if (CCodeModifiers.DEPRECATED in modifiers) {
+                       writer.write_string (" G_GNUC_DEPRECATED");
+               }
        }
 }
diff --git a/ccode/valaccodestruct.vala b/ccode/valaccodestruct.vala
index 1eadd02..fce7fcb 100644
--- a/ccode/valaccodestruct.vala
+++ b/ccode/valaccodestruct.vala
@@ -31,11 +31,6 @@ public class Vala.CCodeStruct : CCodeNode {
         */
        public string name { get; set; }
 
-       /**
-        * Whether the struct is deprecated.
-        */
-       public bool deprecated { get; set; default = false; }
-
        public bool is_empty { get { return declarations.size == 0; } }
 
        private List<CCodeDeclaration> declarations = new ArrayList<CCodeDeclaration> ();
@@ -75,7 +70,7 @@ public class Vala.CCodeStruct : CCodeNode {
                }
 
                writer.write_end_block ();
-               if (deprecated) {
+               if (CCodeModifiers.DEPRECATED in modifiers) {
                        writer.write_string (" G_GNUC_DEPRECATED");
                }
                writer.write_string (";");
diff --git a/ccode/valaccodetypedefinition.vala b/ccode/valaccodetypedefinition.vala
index 84d6ce2..797c3ba 100644
--- a/ccode/valaccodetypedefinition.vala
+++ b/ccode/valaccodetypedefinition.vala
@@ -36,11 +36,6 @@ public class Vala.CCodeTypeDefinition : CCodeNode {
         */
        public CCodeDeclarator declarator { get; set; }
 
-       /**
-        * Whether the type is deprecated.
-        */
-       public bool deprecated { get; set; default = false; }
-       
        public CCodeTypeDefinition (string type, CCodeDeclarator decl) {
                type_name = type;
                declarator = decl;
@@ -59,7 +54,7 @@ public class Vala.CCodeTypeDefinition : CCodeNode {
                
                declarator.write_declaration (writer);
 
-               if (deprecated) {
+               if (CCodeModifiers.DEPRECATED in modifiers) {
                        writer.write_string (" G_GNUC_DEPRECATED");
                }
 
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index 89ee6bc..4641aff 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -794,7 +794,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 
                var cenum = new CCodeEnum (get_ccode_name (en));
 
-               cenum.deprecated = en.version.deprecated;
+               cenum.modifiers |= (en.version.deprecated ? CCodeModifiers.DEPRECATED : 0);
 
                int flag_shift = 0;
                foreach (EnumValue ev in en.get_values ()) {
@@ -809,7 +809,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                                ev.value.emit (this);
                                c_ev = new CCodeEnumValue (get_ccode_name (ev), get_cvalue (ev.value));
                        }
-                       c_ev.deprecated = ev.version.deprecated;
+                       c_ev.modifiers |= (ev.version.deprecated ? CCodeModifiers.DEPRECATED : 0);
                        cenum.add_value (c_ev);
                }
 
diff --git a/codegen/valaccodedelegatemodule.vala b/codegen/valaccodedelegatemodule.vala
index f97420f..7150c4e 100644
--- a/codegen/valaccodedelegatemodule.vala
+++ b/codegen/valaccodedelegatemodule.vala
@@ -116,7 +116,7 @@ public class Vala.CCodeDelegateModule : CCodeArrayModule {
                }
 
                var ctypedef = new CCodeTypeDefinition (return_type_cname, cfundecl);
-               ctypedef.deprecated = d.version.deprecated;
+               ctypedef.modifiers |= (d.version.deprecated ? CCodeModifiers.DEPRECATED : 0);
 
                decl_space.add_type_definition (ctypedef);
        }
diff --git a/codegen/valaccodestructmodule.vala b/codegen/valaccodestructmodule.vala
index 6b6682b..1eb6a57 100644
--- a/codegen/valaccodestructmodule.vala
+++ b/codegen/valaccodestructmodule.vala
@@ -64,7 +64,7 @@ public abstract class Vala.CCodeStructModule : CCodeBaseModule {
                }
 
                var instance_struct = new CCodeStruct ("_%s".printf (get_ccode_name (st)));
-               instance_struct.deprecated = st.version.deprecated;
+               instance_struct.modifiers |= (st.version.deprecated ? CCodeModifiers.DEPRECATED : 0);
 
                foreach (Field f in st.get_fields ()) {
                        if (f.binding == MemberBinding.INSTANCE)  {
diff --git a/tests/annotations/deprecated.vala b/tests/annotations/deprecated.vala
index c9f4a1a..91ed21e 100644
--- a/tests/annotations/deprecated.vala
+++ b/tests/annotations/deprecated.vala
@@ -1,4 +1,7 @@
 [Version (deprecated = true)]
+delegate void FooDelegate ();
+
+[Version (deprecated = true)]
 struct FooStruct {
        [Version (deprecated = true)]
        public int bar;
@@ -26,7 +29,20 @@ void test_class_property () {
        assert (foo.bar == 42);
 }
 
+[Version (deprecated = true)]
+enum FooEnum {
+       [Version (deprecated = true)]
+       BAR,
+       BAZ;
+}
+
+void test_enum () {
+       var foo = FooEnum.BAR;
+       assert (foo == 0);
+}
+
 void main () {
        test_class_property ();
        test_struct_field ();
+       test_enum ();
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]