[vala/wip/attributes: 102/119] On demand Deprecated and Experimental attributes
- From: Luca Bruno <lucabru src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/wip/attributes: 102/119] On demand Deprecated and Experimental attributes
- Date: Mon, 4 Jul 2011 10:30:39 +0000 (UTC)
commit d6552cb3c1b3b0b8a29dfbdbdcaca699cd982a7b
Author: Luca Bruno <lucabru src gnome org>
Date: Sun Jul 3 12:54:04 2011 +0200
On demand Deprecated and Experimental attributes
vala/valaclass.vala | 15 -----------
vala/valaconstant.vala | 15 -----------
vala/valadelegate.vala | 15 -----------
vala/valaenum.vala | 2 -
vala/valaerrordomain.vala | 15 -----------
vala/valafield.vala | 17 ------------
vala/valamethod.vala | 4 ---
vala/valasignal.vala | 4 ---
vala/valastruct.vala | 4 ---
vala/valasymbol.vala | 61 ++++++++++++++++++++------------------------
vala/valavariable.vala | 6 ----
11 files changed, 28 insertions(+), 130 deletions(-)
---
diff --git a/vala/valaclass.vala b/vala/valaclass.vala
index 09abf79..f70a88b 100644
--- a/vala/valaclass.vala
+++ b/vala/valaclass.vala
@@ -549,19 +549,6 @@ public class Vala.Class : ObjectTypeSymbol {
return true;
}
- /**
- * Process all associated attributes.
- */
- public void process_attributes () {
- foreach (Attribute a in attributes) {
- if (a.name == "Deprecated") {
- process_deprecated_attribute (a);
- } else if (a.name == "Experimental") {
- process_experimental_attribute (a);
- }
- }
- }
-
public bool is_fundamental () {
if (!is_compact && base_class == null) {
return true;
@@ -635,8 +622,6 @@ public class Vala.Class : ObjectTypeSymbol {
checked = true;
- process_attributes ();
-
var old_source_file = context.analyzer.current_source_file;
var old_symbol = context.analyzer.current_symbol;
diff --git a/vala/valaconstant.vala b/vala/valaconstant.vala
index 8a9e552..7361f9b 100644
--- a/vala/valaconstant.vala
+++ b/vala/valaconstant.vala
@@ -105,19 +105,6 @@ public class Vala.Constant : Symbol, Lockable {
}
}
- /**
- * Process all associated attributes.
- */
- public void process_attributes () {
- foreach (Attribute a in attributes) {
- if (a.name == "Deprecated") {
- process_deprecated_attribute (a);
- } else if (a.name == "Experimental") {
- process_experimental_attribute (a);
- }
- }
- }
-
public override bool check (CodeContext context) {
if (checked) {
return !error;
@@ -125,8 +112,6 @@ public class Vala.Constant : Symbol, Lockable {
checked = true;
- process_attributes ();
-
var old_source_file = context.analyzer.current_source_file;
var old_symbol = context.analyzer.current_symbol;
diff --git a/vala/valadelegate.vala b/vala/valadelegate.vala
index 216d516..0df961d 100644
--- a/vala/valadelegate.vala
+++ b/vala/valadelegate.vala
@@ -224,19 +224,6 @@ public class Vala.Delegate : TypeSymbol {
}
}
- /**
- * Process all associated attributes.
- */
- public void process_attributes () {
- foreach (Attribute a in attributes) {
- if (a.name == "Deprecated") {
- process_deprecated_attribute (a);
- } else if (a.name == "Experimental") {
- process_experimental_attribute (a);
- }
- }
- }
-
public override bool is_reference_type () {
return false;
}
@@ -310,8 +297,6 @@ public class Vala.Delegate : TypeSymbol {
checked = true;
- process_attributes ();
-
var old_source_file = context.analyzer.current_source_file;
if (source_reference != null) {
diff --git a/vala/valaenum.vala b/vala/valaenum.vala
index a97c614..367e2c8 100644
--- a/vala/valaenum.vala
+++ b/vala/valaenum.vala
@@ -154,8 +154,6 @@ public class Vala.Enum : TypeSymbol {
foreach (Attribute a in attributes) {
if (a.name == "Flags") {
is_flags = true;
- } else if (a.name == "Deprecated") {
- process_deprecated_attribute (a);
}
}
}
diff --git a/vala/valaerrordomain.vala b/vala/valaerrordomain.vala
index fd503a3..a73dcf8 100644
--- a/vala/valaerrordomain.vala
+++ b/vala/valaerrordomain.vala
@@ -107,19 +107,6 @@ public class Vala.ErrorDomain : TypeSymbol {
return false;
}
- /**
- * Process all associated attributes.
- */
- public void process_attributes () {
- foreach (Attribute a in attributes) {
- if (a.name == "Deprecated") {
- process_deprecated_attribute (a);
- } else if (a.name == "Experimental") {
- process_experimental_attribute (a);
- }
- }
- }
-
public override bool check (CodeContext context) {
if (checked) {
return !error;
@@ -127,8 +114,6 @@ public class Vala.ErrorDomain : TypeSymbol {
checked = true;
- process_attributes ();
-
foreach (ErrorCode ecode in codes) {
ecode.check (context);
}
diff --git a/vala/valafield.vala b/vala/valafield.vala
index 803b9f9..8b932a5 100644
--- a/vala/valafield.vala
+++ b/vala/valafield.vala
@@ -65,21 +65,6 @@ public class Vala.Field : Variable, Lockable {
}
}
- /**
- * Process all associated attributes.
- */
- public override void process_attributes () {
- base.process_attributes ();
-
- foreach (Attribute a in attributes) {
- if (a.name == "Deprecated") {
- process_deprecated_attribute (a);
- } else if (a.name == "Experimental") {
- process_experimental_attribute (a);
- }
- }
- }
-
public bool get_lock_used () {
return lock_used;
}
@@ -138,8 +123,6 @@ public class Vala.Field : Variable, Lockable {
return false;
}
- process_attributes ();
-
if (initializer != null) {
initializer.target_type = variable_type;
diff --git a/vala/valamethod.vala b/vala/valamethod.vala
index 3b2b58c..38466c4 100644
--- a/vala/valamethod.vala
+++ b/vala/valamethod.vala
@@ -255,10 +255,6 @@ public class Vala.Method : Subroutine {
printf_format = true;
} else if (a.name == "ScanfFormat") {
scanf_format = true;
- } else if (a.name == "Deprecated") {
- process_deprecated_attribute (a);
- } else if (a.name == "Experimental") {
- process_experimental_attribute (a);
} else if (a.name == "DestroysInstance") {
this_parameter.variable_type.value_owned = true;
}
diff --git a/vala/valasignal.vala b/vala/valasignal.vala
index d811a88..27be146 100644
--- a/vala/valasignal.vala
+++ b/vala/valasignal.vala
@@ -214,10 +214,6 @@ public class Vala.Signal : Symbol, Lockable {
has_emitter = true;
} else if (a.name == "Signal") {
process_signal_attribute (a);
- } else if (a.name == "Deprecated") {
- process_deprecated_attribute (a);
- } else if (a.name == "Experimental") {
- process_experimental_attribute (a);
}
}
}
diff --git a/vala/valastruct.vala b/vala/valastruct.vala
index 7d217c5..8c3b014 100644
--- a/vala/valastruct.vala
+++ b/vala/valastruct.vala
@@ -373,10 +373,6 @@ public class Vala.Struct : TypeSymbol {
process_floating_type_attribute (a);
} else if (a.name == "Immutable") {
is_immutable = true;
- } else if (a.name == "Deprecated") {
- process_deprecated_attribute (a);
- } else if (a.name == "Experimental") {
- process_experimental_attribute (a);
}
}
}
diff --git a/vala/valasymbol.vala b/vala/valasymbol.vala
index 06dd021..ed75dd9 100644
--- a/vala/valasymbol.vala
+++ b/vala/valasymbol.vala
@@ -70,22 +70,44 @@ public abstract class Vala.Symbol : CodeNode {
/**
* Specifies whether this symbol has been deprecated.
*/
- public bool deprecated { get; set; default = false; }
+ public bool deprecated {
+ get {
+ if (_deprecated == null) {
+ _deprecated = get_attribute ("Deprecated") != null;
+ }
+ return _deprecated;
+ }
+ }
/**
* Specifies what version this symbol has been deprecated since.
*/
- public string? deprecated_since { get; set; default = null; }
+ public string? deprecated_since {
+ get {
+ return get_attribute_string ("Deprecated", "since");
+ }
+ }
/**
* Specifies the replacement if this symbol has been deprecated.
*/
- public string? replacement { get; set; default = null; }
+ public string? replacement {
+ get {
+ return get_attribute_string ("Deprecated", "replacement");
+ }
+ }
/**
* Specifies whether this symbol is experimental.
*/
- public bool experimental { get; set; default = false; }
+ public bool experimental {
+ get {
+ if (_experimental == null) {
+ _experimental = get_attribute ("Experimental") != null;
+ }
+ return _experimental;
+ }
+ }
/**
* Specifies whether this symbol has been accessed.
@@ -179,6 +201,8 @@ public abstract class Vala.Symbol : CodeNode {
private weak Scope _owner;
private Scope _scope;
+ private bool? _deprecated;
+ private bool? _experimental;
public Symbol (string? name, SourceReference? source_reference, Comment? comment = null) {
this.name = name;
@@ -363,24 +387,6 @@ public abstract class Vala.Symbol : CodeNode {
}
/**
- * Process a [Deprecated] attribute
- */
- public virtual void process_deprecated_attribute (Attribute attr) {
- if (attr.name != "Deprecated") {
- return;
- }
-
- deprecated = true;
-
- if (attr.has_argument ("since")) {
- deprecated_since = attr.get_string ("since");
- }
- if (attr.has_argument ("replacement")) {
- replacement = attr.get_string ("replacement");
- }
- }
-
- /**
* Check to see if the symbol has been deprecated, and emit a warning
* if it has.
*/
@@ -396,17 +402,6 @@ public abstract class Vala.Symbol : CodeNode {
}
/**
- * Process a [Experimental] attribute
- */
- public virtual void process_experimental_attribute (Attribute attr) {
- if (attr.name != "Experimental") {
- return;
- }
-
- experimental = true;
- }
-
- /**
* Check to see if the symbol is experimental, and emit a warning
* if it is.
*/
diff --git a/vala/valavariable.vala b/vala/valavariable.vala
index cb8b6b4..9337751 100644
--- a/vala/valavariable.vala
+++ b/vala/valavariable.vala
@@ -57,10 +57,4 @@ public class Vala.Variable : Symbol {
this.variable_type = variable_type;
this.initializer = initializer;
}
-
- /**
- * Process all associated attributes.
- */
- public virtual void process_attributes () {
- }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]