+2008-11-07 Jürg Billeter <j@bitron.ch>
+
+ * vala/valasemanticanalyzer.vala:
+ * vala/valathrowstatement.vala:
+
+ Move throw statement checking to ThrowStatement.check
+
2008-11-07 Jürg Billeter <j@bitron.ch>
* vala/valareturnstatement.vala:
}
public override void visit_throw_statement (ThrowStatement stmt) {
- stmt.error_expression.target_type = new ErrorType (null, null, stmt.source_reference);
- stmt.error_expression.target_type.value_owned = true;
-
- stmt.accept_children (this);
-
- var error_type = stmt.error_expression.value_type.copy ();
- error_type.source_reference = stmt.source_reference;
-
- stmt.add_error_type (error_type);
+ stmt.check (this);
}
public override void visit_try_statement (TryStatement stmt) {
error_expression = new_node;
}
}
+
+ public override bool check (SemanticAnalyzer analyzer) {
+ if (checked) {
+ return !error;
+ }
+
+ checked = true;
+
+ error_expression.target_type = new ErrorType (null, null, source_reference);
+ error_expression.target_type.value_owned = true;
+
+ accept_children (analyzer);
+
+ var error_type = error_expression.value_type.copy ();
+ error_type.source_reference = source_reference;
+
+ add_error_type (error_type);
+
+ return !error;
+ }
}