summaryrefslogtreecommitdiff
path: root/vala/valadeclarationstatement.vala
diff options
context:
space:
mode:
authorLuca Bruno <lucabru@src.gnome.org>2011-08-07 12:44:41 +0200
committerRico Tzschichholz <ricotz@ubuntu.com>2018-10-23 18:45:45 +0200
commit6395a2efe8f166fe8b2595fc2ba08dc4bcc69216 (patch)
tree330e9fd04c476190b76ccc8710ca1d9dd8573fa8 /vala/valadeclarationstatement.vala
parent6c44fc72635e0a55f57bb9db526c4d83ddd551df (diff)
downloadvala-6395a2efe8f166fe8b2595fc2ba08dc4bcc69216.tar.gz
Collect error_types on demand to allow transformations
Diffstat (limited to 'vala/valadeclarationstatement.vala')
-rw-r--r--vala/valadeclarationstatement.vala21
1 files changed, 10 insertions, 11 deletions
diff --git a/vala/valadeclarationstatement.vala b/vala/valadeclarationstatement.vala
index f0a3d4161..ab652e906 100644
--- a/vala/valadeclarationstatement.vala
+++ b/vala/valadeclarationstatement.vala
@@ -62,6 +62,16 @@ public class Vala.DeclarationStatement : CodeNode, Statement {
declaration.accept (visitor);
}
+ public override void get_error_types (Collection<DataType> collection, SourceReference? source_reference = null) {
+ if (source_reference == null) {
+ source_reference = this.source_reference;
+ }
+ var local = declaration as LocalVariable;
+ if (local != null && local.initializer != null) {
+ local.initializer.get_error_types (collection, source_reference);
+ }
+ }
+
public override bool check (CodeContext context) {
if (checked) {
return !error;
@@ -71,17 +81,6 @@ public class Vala.DeclarationStatement : CodeNode, Statement {
declaration.check (context);
- var local = declaration as LocalVariable;
- if (local != null && local.initializer != null) {
- foreach (DataType error_type in local.initializer.get_error_types ()) {
- // ensure we can trace back which expression may throw errors of this type
- var initializer_error_type = error_type.copy ();
- initializer_error_type.source_reference = local.initializer.source_reference;
-
- add_error_type (initializer_error_type);
- }
- }
-
return !error;
}