diff options
author | Jürg Billeter <j@bitron.ch> | 2008-11-07 09:30:32 +0000 |
---|---|---|
committer | Jürg Billeter <juergbi@src.gnome.org> | 2008-11-07 09:30:32 +0000 |
commit | 9aefdf7ab94928f2cd6b4ad65f374f02fff739f4 (patch) | |
tree | 1b067e45dd20b85743549d0aee2b688912b71388 /vala/valathrowstatement.vala | |
parent | da89ecc15c743406bc6f4f2a6c9017742336586e (diff) | |
download | vala-9aefdf7ab94928f2cd6b4ad65f374f02fff739f4.tar.gz |
Move throw statement checking to ThrowStatement.check
2008-11-07 Jürg Billeter <j@bitron.ch>
* vala/valasemanticanalyzer.vala:
* vala/valathrowstatement.vala:
Move throw statement checking to ThrowStatement.check
svn path=/trunk/; revision=1997
Diffstat (limited to 'vala/valathrowstatement.vala')
-rw-r--r-- | vala/valathrowstatement.vala | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/vala/valathrowstatement.vala b/vala/valathrowstatement.vala index 867c2780a..d1f8a9f0d 100644 --- a/vala/valathrowstatement.vala +++ b/vala/valathrowstatement.vala @@ -72,4 +72,24 @@ public class Vala.ThrowStatement : CodeNode, Statement { 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; + } } |