summaryrefslogtreecommitdiff
path: root/codegen
diff options
context:
space:
mode:
authorFlorian Brosch <flo.brosch@gmail.com>2014-07-10 20:35:22 +0200
committerLuca Bruno <lucabru@src.gnome.org>2016-01-30 14:45:32 +0100
commitea92f8d6b5d8d627954295e14ccec7b793facdc8 (patch)
tree6fb4a3e054672fbdfc691359a02b86dea1fca4b4 /codegen
parentbc4fc3dcd6bd5e9b266c3158a033acfa8e64ee89 (diff)
downloadvala-ea92f8d6b5d8d627954295e14ccec7b793facdc8.tar.gz
Introduce [Version (...)]
Parameters: since: string, version number experimental: bool (was: [Experimental]) experimental_until: string, version number deprecated_since: string, version number (was: [Deprecated (since="")]) replacement: string, symbol name (was: [Deprecated (replacement="")]) deprecated: bool (was: [Deprecated]) Used symbols labeled with [Version (since = "")] are checked against the locally installed package version. Use --disable-since-check to avoid this behaviour. Fixes bug 678912.
Diffstat (limited to 'codegen')
-rw-r--r--codegen/valaccodebasemodule.vala6
-rw-r--r--codegen/valaccodedelegatemodule.vala2
-rw-r--r--codegen/valaccodemethodmodule.vala2
-rw-r--r--codegen/valaccodestructmodule.vala4
-rw-r--r--codegen/valagirwriter.vala11
5 files changed, 14 insertions, 11 deletions
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index 6f4fc6c05..0f79235bd 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -788,7 +788,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
var cenum = new CCodeEnum (get_ccode_name (en));
- cenum.deprecated = en.deprecated;
+ cenum.deprecated = en.version.deprecated;
int flag_shift = 0;
foreach (EnumValue ev in en.get_values ()) {
@@ -803,7 +803,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.deprecated;
+ c_ev.deprecated = ev.version.deprecated;
cenum.add_value (c_ev);
}
@@ -1003,7 +1003,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
} else {
cdecl.modifiers = CCodeModifiers.EXTERN;
}
- if (f.deprecated) {
+ if (f.version.deprecated) {
cdecl.modifiers |= CCodeModifiers.DEPRECATED;
}
decl_space.add_type_member_declaration (cdecl);
diff --git a/codegen/valaccodedelegatemodule.vala b/codegen/valaccodedelegatemodule.vala
index 9eb57ed34..f97420f43 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.deprecated;
+ ctypedef.deprecated = d.version.deprecated;
decl_space.add_type_definition (ctypedef);
}
diff --git a/codegen/valaccodemethodmodule.vala b/codegen/valaccodemethodmodule.vala
index 710bc1151..d147eb18b 100644
--- a/codegen/valaccodemethodmodule.vala
+++ b/codegen/valaccodemethodmodule.vala
@@ -169,7 +169,7 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule {
function.modifiers |= CCodeModifiers.INTERNAL;
}
- if (m.deprecated) {
+ if (m.version.deprecated) {
function.modifiers |= CCodeModifiers.DEPRECATED;
}
diff --git a/codegen/valaccodestructmodule.vala b/codegen/valaccodestructmodule.vala
index fe2a7c2a7..3f226d55b 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.deprecated;
+ instance_struct.deprecated = st.version.deprecated;
foreach (Field f in st.get_fields ()) {
string field_ctype = get_ccode_name (f.variable_type);
@@ -77,7 +77,7 @@ public abstract class Vala.CCodeStructModule : CCodeBaseModule {
var suffix = get_ccode_declarator_suffix (f.variable_type);
if (suffix != null) {
- suffix.deprecated = f.deprecated;
+ suffix.deprecated = f.version.deprecated;
}
instance_struct.add_field (field_ctype, get_ccode_name (f), suffix);
diff --git a/codegen/valagirwriter.vala b/codegen/valagirwriter.vala
index a69e12a93..01389cfab 100644
--- a/codegen/valagirwriter.vala
+++ b/codegen/valagirwriter.vala
@@ -282,12 +282,15 @@ public class Vala.GIRWriter : CodeVisitor {
}
private void write_symbol_attributes (Symbol symbol) {
- if (symbol.deprecated) {
- buffer.append_printf (" deprecated=\"%s\"", (symbol.replacement == null) ? "" : "Use %s".printf (symbol.replacement));
- if (symbol.deprecated_since != null) {
- buffer.append_printf (" deprecated-version=\"%s\"", symbol.deprecated_since);
+ if (symbol.version.deprecated) {
+ buffer.append_printf (" deprecated=\"%s\"", (symbol.version.replacement == null) ? "" : "Use %s".printf (symbol.version.replacement));
+ if (symbol.version.deprecated_since != null) {
+ buffer.append_printf (" deprecated-version=\"%s\"", symbol.version.deprecated_since);
}
}
+ if (symbol.version.since != null) {
+ buffer.append_printf (" version=\"%s\"", symbol.version.since);
+ }
}
public override void visit_class (Class cl) {