From cccf2ad9f2c6d3bb96af755bbb325bc27f232c10 Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Fri, 11 Nov 2016 19:30:41 +0100 Subject: [PATCH] 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 2288456cb..f2a378879 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 values = new ArrayList (); 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 e1c02513b..e952f4b90 100644 --- a/ccode/valaccodeenumvalue.vala +++ b/ccode/valaccodeenumvalue.vala @@ -31,11 +31,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. */ @@ -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 1eadd025c..fce7fcba8 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 declarations = new ArrayList (); @@ -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 84d6ce293..797c3baf0 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 89ee6bcb2..4641aff08 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 f97420f43..7150c4e4a 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 6b6682b0e..1eb6a57b6 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 c9f4a1a08..91ed21ee8 100644 --- a/tests/annotations/deprecated.vala +++ b/tests/annotations/deprecated.vala @@ -1,3 +1,6 @@ +[Version (deprecated = true)] +delegate void FooDelegate (); + [Version (deprecated = true)] struct FooStruct { [Version (deprecated = true)] @@ -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 (); } -- 2.47.3