vala r974 - in trunk: . vala vapi



Author: juergbi
Date: Tue Feb  5 18:45:05 2008
New Revision: 974
URL: http://svn.gnome.org/viewvc/vala?rev=974&view=rev

Log:
2008-02-05  Juerg Billeter  <j bitron ch>

	* vala/valacfgbuilder.vala: assume that control flow ends when
	  invoking a method with the [NoReturn] attribute

	* vapi/glib-2.0.vapi: add [NoReturn] to assert_not_reached


Modified:
   trunk/ChangeLog
   trunk/vala/valacfgbuilder.vala
   trunk/vapi/glib-2.0.vapi

Modified: trunk/vala/valacfgbuilder.vala
==============================================================================
--- trunk/vala/valacfgbuilder.vala	(original)
+++ trunk/vala/valacfgbuilder.vala	Tue Feb  5 18:45:05 2008
@@ -166,6 +166,16 @@
 		current_block.add_node (stmt);
 
 		handle_errors (stmt);
+
+		if (stmt.expression is InvocationExpression) {
+			var expr = (InvocationExpression) stmt.expression;
+			var ma = expr.call as MemberAccess;
+			if (ma.symbol_reference != null && ma.symbol_reference.get_attribute ("NoReturn") != null) {
+				current_block = null;
+				unreachable_reported = false;
+				return;
+			}
+		}
 	}
 
 	public override void visit_if_statement (IfStatement! stmt) {

Modified: trunk/vapi/glib-2.0.vapi
==============================================================================
--- trunk/vapi/glib-2.0.vapi	(original)
+++ trunk/vapi/glib-2.0.vapi	Tue Feb  5 18:45:05 2008
@@ -1395,6 +1395,7 @@
 
 	public static void return_if_fail (bool expr);
 	public static void assert (bool expr);
+	[NoReturn]
 	public static void assert_not_reached ();
 
 	/* Message Logging */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]