summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ccode/valaccodeenum.vala7
-rw-r--r--ccode/valaccodeenumvalue.vala8
-rw-r--r--ccode/valaccodestruct.vala7
-rw-r--r--ccode/valaccodetypedefinition.vala7
-rw-r--r--codegen/valaccodebasemodule.vala4
-rw-r--r--codegen/valaccodedelegatemodule.vala2
-rw-r--r--codegen/valaccodestructmodule.vala2
-rw-r--r--tests/annotations/deprecated.vala16
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<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 e1c02513b..e952f4b90 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 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<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 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,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 ();
}