vala r1228 - in trunk: . gee gen-project gobject vala vapigen



Author: juergbi
Date: Mon Apr 14 20:07:37 2008
New Revision: 1228
URL: http://svn.gnome.org/viewvc/vala?rev=1228&view=rev

Log:
2008-04-14  Juerg Billeter  <j bitron ch>

	* vala/valasemanticanalyzer.vala: report warning when using null
	  literal as return expression of method returning non-null value

	* */*.vala: fix warnings


Modified:
   trunk/ChangeLog
   trunk/gee/arraylist.vala
   trunk/gee/hashmap.vala
   trunk/gee/hashset.vala
   trunk/gee/iterator.vala
   trunk/gee/list.vala
   trunk/gee/map.vala
   trunk/gee/readonlycollection.vala
   trunk/gee/readonlylist.vala
   trunk/gee/readonlymap.vala
   trunk/gee/readonlyset.vala
   trunk/gen-project/valaprojectgenerator.vala
   trunk/gobject/valaccodegenerator.vala
   trunk/gobject/valaccodegeneratormethod.vala
   trunk/gobject/valaccodegeneratorsignal.vala
   trunk/gobject/valadbusbindingprovider.vala
   trunk/vala/valaarraytype.vala
   trunk/vala/valaattribute.vala
   trunk/vala/valabindingprovider.vala
   trunk/vala/valaclass.vala
   trunk/vala/valacodecontext.vala
   trunk/vala/valacodegenerator.vala
   trunk/vala/valacodenode.vala
   trunk/vala/valadatatype.vala
   trunk/vala/valadelegate.vala
   trunk/vala/valadelegatetype.vala
   trunk/vala/valaenum.vala
   trunk/vala/valaerrordomain.vala
   trunk/vala/valaerrortype.vala
   trunk/vala/valaexpressionstatement.vala
   trunk/vala/valainterface.vala
   trunk/vala/valamethodtype.vala
   trunk/vala/valaparser.vala
   trunk/vala/valapointertype.vala
   trunk/vala/valascanner.vala
   trunk/vala/valascope.vala
   trunk/vala/valasemanticanalyzer.vala
   trunk/vala/valasignaltype.vala
   trunk/vala/valasourcefile.vala
   trunk/vala/valastringliteral.vala
   trunk/vala/valastruct.vala
   trunk/vala/valasymbol.vala
   trunk/vala/valatypesymbol.vala
   trunk/vala/valaunresolvedtype.vala
   trunk/vala/valavaluetype.vala
   trunk/vala/valavoidtype.vala
   trunk/vapigen/valagidlparser.vala
   trunk/vapigen/valavapigen.vala

Modified: trunk/gee/arraylist.vala
==============================================================================
--- trunk/gee/arraylist.vala	(original)
+++ trunk/gee/arraylist.vala	Mon Apr 14 20:07:37 2008
@@ -68,7 +68,7 @@
 		return -1;
 	}
 
-	public G get (int index) {
+	public G? get (int index) {
 		assert (index >= 0 && index < _size);
 
 		return _items[index];
@@ -178,7 +178,7 @@
 			return (_index < _list._size);
 		}
 
-		public G get () {
+		public G? get () {
 			assert (_stamp == _list._stamp);
 
 			if (_index < 0 || _index >= _list._size) {

Modified: trunk/gee/hashmap.vala
==============================================================================
--- trunk/gee/hashmap.vala	(original)
+++ trunk/gee/hashmap.vala	Mon Apr 14 20:07:37 2008
@@ -91,7 +91,7 @@
 		return (*node != null);
 	}
 
-	public V get (K key) {
+	public V? get (K key) {
 		Node<K,V>* node = (*lookup_node (key));
 		if (node != null) {
 			return node->value;
@@ -251,7 +251,7 @@
 			return (_node != null);
 		}
 
-		public K get () {
+		public K? get () {
 			assert (_stamp == _map._stamp);
 			assert (_node != null);
 			return _node.key;
@@ -334,7 +334,7 @@
 			return (_node != null);
 		}
 
-		public V get () {
+		public V? get () {
 			assert (_stamp == _map._stamp);
 			assert (_node != null);
 			return _node.value;

Modified: trunk/gee/hashset.vala
==============================================================================
--- trunk/gee/hashset.vala	(original)
+++ trunk/gee/hashset.vala	Mon Apr 14 20:07:37 2008
@@ -193,7 +193,7 @@
 			return (_node != null);
 		}
 
-		public G get () {
+		public G? get () {
 			assert (_stamp == _set._stamp);
 			assert (_node != null);
 			return _node.key;

Modified: trunk/gee/iterator.vala
==============================================================================
--- trunk/gee/iterator.vala	(original)
+++ trunk/gee/iterator.vala	Mon Apr 14 20:07:37 2008
@@ -1,6 +1,6 @@
 /* iterator.vala
  *
- * Copyright (C) 2007  JÃrg Billeter
+ * Copyright (C) 2007-2008  JÃrg Billeter
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -37,6 +37,6 @@
 	 *
 	 * @return the current element in the iteration
 	 */
-	public abstract G get ();
+	public abstract G? get ();
 }
 

Modified: trunk/gee/list.vala
==============================================================================
--- trunk/gee/list.vala	(original)
+++ trunk/gee/list.vala	Mon Apr 14 20:07:37 2008
@@ -31,7 +31,7 @@
 	 *
 	 * @return      the item at the specified index in the list
 	 */
-	public abstract G get (int index);
+	public abstract G? get (int index);
 
 	/**
 	 * Sets the item at the specified index in this list.

Modified: trunk/gee/map.vala
==============================================================================
--- trunk/gee/map.vala	(original)
+++ trunk/gee/map.vala	Mon Apr 14 20:07:37 2008
@@ -60,7 +60,7 @@
 	 * @return    the value associated with the key, or null if the key
 	 *            couldn't be found
 	 */
-	public abstract V get (K key);
+	public abstract V? get (K key);
 
 	/**
 	 * Inserts a new key and value into this map.

Modified: trunk/gee/readonlycollection.vala
==============================================================================
--- trunk/gee/readonlycollection.vala	(original)
+++ trunk/gee/readonlycollection.vala	Mon Apr 14 20:07:37 2008
@@ -77,7 +77,7 @@
 			return false;
 		}
 
-		public G get () {
+		public G? get () {
 			return null;
 		}
 	}

Modified: trunk/gee/readonlylist.vala
==============================================================================
--- trunk/gee/readonlylist.vala	(original)
+++ trunk/gee/readonlylist.vala	Mon Apr 14 20:07:37 2008
@@ -84,7 +84,7 @@
 		assert_not_reached ();
 	}
 
-	public G get (int index) {
+	public G? get (int index) {
 		if (_list == null) {
 			return null;
 		}
@@ -105,7 +105,7 @@
 			return false;
 		}
 
-		public G get () {
+		public G? get () {
 			return null;
 		}
 	}

Modified: trunk/gee/readonlymap.vala
==============================================================================
--- trunk/gee/readonlymap.vala	(original)
+++ trunk/gee/readonlymap.vala	Mon Apr 14 20:07:37 2008
@@ -64,7 +64,7 @@
 		return _map.contains (key);
 	}
 
-	public V get (K key) {
+	public V? get (K key) {
 		if (_map == null) {
 			return null;
 		}

Modified: trunk/gee/readonlyset.vala
==============================================================================
--- trunk/gee/readonlyset.vala	(original)
+++ trunk/gee/readonlyset.vala	Mon Apr 14 20:07:37 2008
@@ -77,7 +77,7 @@
 			return false;
 		}
 
-		public G get () {
+		public G? get () {
 			return null;
 		}
 	}

Modified: trunk/gen-project/valaprojectgenerator.vala
==============================================================================
--- trunk/gen-project/valaprojectgenerator.vala	(original)
+++ trunk/gen-project/valaprojectgenerator.vala	Mon Apr 14 20:07:37 2008
@@ -594,7 +594,7 @@
 		FileUtils.set_contents (project_path + "/MAINTAINERS", s, -1);
 	}
 
-	private string get_automake_path () {
+	private string? get_automake_path () {
 		var automake_paths = new string[] { "/usr/share/automake",
 		                                    "/usr/share/automake-1.10",
 		                                    "/usr/share/automake-1.9" };

Modified: trunk/gobject/valaccodegenerator.vala
==============================================================================
--- trunk/gobject/valaccodegenerator.vala	(original)
+++ trunk/gobject/valaccodegenerator.vala	Mon Apr 14 20:07:37 2008
@@ -1198,7 +1198,7 @@
 		}
 	}
 
-	private CCodeExpression get_dup_func_expression (DataType type, SourceReference? source_reference) {
+	private CCodeExpression? get_dup_func_expression (DataType type, SourceReference? source_reference) {
 		if (type.data_type != null) {
 			string dup_function;
 			if (type.data_type.is_reference_counting ()) {
@@ -1226,7 +1226,7 @@
 		}
 	}
 
-	private CCodeExpression get_destroy_func_expression (DataType type) {
+	private CCodeExpression? get_destroy_func_expression (DataType type) {
 		if (type.data_type != null) {
 			string unref_function;
 			if (type.data_type.is_reference_counting ()) {
@@ -2665,7 +2665,7 @@
 		visit_expression (expr);
 	}
 	
-	private MemberAccess find_property_access (Expression expr) {
+	private MemberAccess? find_property_access (Expression expr) {
 		if (expr is ParenthesizedExpression) {
 			var pe = (ParenthesizedExpression) expr;
 			return find_property_access (pe.inner);
@@ -2683,7 +2683,7 @@
 		return null;
 	}
 	
-	private CCodeExpression get_ref_expression (Expression expr) {
+	private CCodeExpression? get_ref_expression (Expression expr) {
 		/* (temp = expr, temp == NULL ? NULL : ref (temp))
 		 *
 		 * can be simplified to
@@ -3548,287 +3548,287 @@
 		return type;
 	}
 
-	public override CodeBinding create_namespace_binding (Namespace node) {
+	public override CodeBinding? create_namespace_binding (Namespace node) {
 		return null;
 	}
 
-	public override CodeBinding create_class_binding (Class node) {
+	public override CodeBinding? create_class_binding (Class node) {
 		return null;
 	}
 
-	public override CodeBinding create_struct_binding (Struct node) {
+	public override CodeBinding? create_struct_binding (Struct node) {
 		return null;
 	}
 
-	public override CodeBinding create_interface_binding (Interface node) {
+	public override CodeBinding? create_interface_binding (Interface node) {
 		return null;
 	}
 
-	public override CodeBinding create_enum_binding (Enum node) {
+	public override CodeBinding? create_enum_binding (Enum node) {
 		return null;
 	}
 
-	public override CodeBinding create_enum_value_binding (EnumValue node) {
+	public override CodeBinding? create_enum_value_binding (EnumValue node) {
 		return null;
 	}
 
-	public override CodeBinding create_error_domain_binding (ErrorDomain node) {
+	public override CodeBinding? create_error_domain_binding (ErrorDomain node) {
 		return null;
 	}
 
-	public override CodeBinding create_error_code_binding (ErrorCode node) {
+	public override CodeBinding? create_error_code_binding (ErrorCode node) {
 		return null;
 	}
 
-	public override CodeBinding create_delegate_binding (Delegate node) {
+	public override CodeBinding? create_delegate_binding (Delegate node) {
 		return null;
 	}
 
-	public override CodeBinding create_constant_binding (Constant node) {
+	public override CodeBinding? create_constant_binding (Constant node) {
 		return null;
 	}
 
-	public override CodeBinding create_field_binding (Field node) {
+	public override CodeBinding? create_field_binding (Field node) {
 		return null;
 	}
 
-	public override CodeBinding create_method_binding (Method node) {
+	public override CodeBinding? create_method_binding (Method node) {
 		return new CCodeMethodBinding (this, node);
 	}
 
-	public override CodeBinding create_creation_method_binding (CreationMethod node) {
+	public override CodeBinding? create_creation_method_binding (CreationMethod node) {
 		return null;
 	}
 
-	public override CodeBinding create_formal_parameter_binding (FormalParameter node) {
+	public override CodeBinding? create_formal_parameter_binding (FormalParameter node) {
 		return null;
 	}
 
-	public override CodeBinding create_property_binding (Property node) {
+	public override CodeBinding? create_property_binding (Property node) {
 		return null;
 	}
 
-	public override CodeBinding create_property_accessor_binding (PropertyAccessor node) {
+	public override CodeBinding? create_property_accessor_binding (PropertyAccessor node) {
 		return null;
 	}
 
-	public override CodeBinding create_signal_binding (Signal node) {
+	public override CodeBinding? create_signal_binding (Signal node) {
 		return null;
 	}
 
-	public override CodeBinding create_constructor_binding (Constructor node) {
+	public override CodeBinding? create_constructor_binding (Constructor node) {
 		return null;
 	}
 
-	public override CodeBinding create_destructor_binding (Destructor node) {
+	public override CodeBinding? create_destructor_binding (Destructor node) {
 		return null;
 	}
 
-	public override CodeBinding create_type_parameter_binding (TypeParameter node) {
+	public override CodeBinding? create_type_parameter_binding (TypeParameter node) {
 		return null;
 	}
 
-	public override CodeBinding create_block_binding (Block node) {
+	public override CodeBinding? create_block_binding (Block node) {
 		return null;
 	}
 
-	public override CodeBinding create_empty_statement_binding (EmptyStatement node) {
+	public override CodeBinding? create_empty_statement_binding (EmptyStatement node) {
 		return null;
 	}
 
-	public override CodeBinding create_declaration_statement_binding (DeclarationStatement node) {
+	public override CodeBinding? create_declaration_statement_binding (DeclarationStatement node) {
 		return null;
 	}
 
-	public override CodeBinding create_local_variable_declaration_binding (LocalVariableDeclaration node) {
+	public override CodeBinding? create_local_variable_declaration_binding (LocalVariableDeclaration node) {
 		return null;
 	}
 
-	public override CodeBinding create_variable_declarator_binding (VariableDeclarator node) {
+	public override CodeBinding? create_variable_declarator_binding (VariableDeclarator node) {
 		return null;
 	}
 
-	public override CodeBinding create_initializer_list_binding (InitializerList node) {
+	public override CodeBinding? create_initializer_list_binding (InitializerList node) {
 		return null;
 	}
 
-	public override CodeBinding create_expression_statement_binding (ExpressionStatement node) {
+	public override CodeBinding? create_expression_statement_binding (ExpressionStatement node) {
 		return null;
 	}
 
-	public override CodeBinding create_if_statement_binding (IfStatement node) {
+	public override CodeBinding? create_if_statement_binding (IfStatement node) {
 		return null;
 	}
 
-	public override CodeBinding create_switch_statement_binding (SwitchStatement node) {
+	public override CodeBinding? create_switch_statement_binding (SwitchStatement node) {
 		return null;
 	}
 
-	public override CodeBinding create_switch_section_binding (SwitchSection node) {
+	public override CodeBinding? create_switch_section_binding (SwitchSection node) {
 		return null;
 	}
 
-	public override CodeBinding create_switch_label_binding (SwitchLabel node) {
+	public override CodeBinding? create_switch_label_binding (SwitchLabel node) {
 		return null;
 	}
 
-	public override CodeBinding create_while_statement_binding (WhileStatement node) {
+	public override CodeBinding? create_while_statement_binding (WhileStatement node) {
 		return null;
 	}
 
-	public override CodeBinding create_do_statement_binding (DoStatement node) {
+	public override CodeBinding? create_do_statement_binding (DoStatement node) {
 		return null;
 	}
 
-	public override CodeBinding create_for_statement_binding (ForStatement node) {
+	public override CodeBinding? create_for_statement_binding (ForStatement node) {
 		return null;
 	}
 
-	public override CodeBinding create_foreach_statement_binding (ForeachStatement node) {
+	public override CodeBinding? create_foreach_statement_binding (ForeachStatement node) {
 		return null;
 	}
 
-	public override CodeBinding create_break_statement_binding (BreakStatement node) {
+	public override CodeBinding? create_break_statement_binding (BreakStatement node) {
 		return null;
 	}
 
-	public override CodeBinding create_continue_statement_binding (ContinueStatement node) {
+	public override CodeBinding? create_continue_statement_binding (ContinueStatement node) {
 		return null;
 	}
 
-	public override CodeBinding create_return_statement_binding (ReturnStatement node) {
+	public override CodeBinding? create_return_statement_binding (ReturnStatement node) {
 		return null;
 	}
 
-	public override CodeBinding create_throw_statement_binding (ThrowStatement node) {
+	public override CodeBinding? create_throw_statement_binding (ThrowStatement node) {
 		return null;
 	}
 
-	public override CodeBinding create_try_statement_binding (TryStatement node) {
+	public override CodeBinding? create_try_statement_binding (TryStatement node) {
 		return null;
 	}
 
-	public override CodeBinding create_catch_clause_binding (CatchClause node) {
+	public override CodeBinding? create_catch_clause_binding (CatchClause node) {
 		return null;
 	}
 
-	public override CodeBinding create_lock_statement_binding (LockStatement node) {
+	public override CodeBinding? create_lock_statement_binding (LockStatement node) {
 		return null;
 	}
 
-	public override CodeBinding create_delete_statement_binding (DeleteStatement node) {
+	public override CodeBinding? create_delete_statement_binding (DeleteStatement node) {
 		return null;
 	}
 
-	public override CodeBinding create_array_creation_expression_binding (ArrayCreationExpression node) {
+	public override CodeBinding? create_array_creation_expression_binding (ArrayCreationExpression node) {
 		return new CCodeArrayCreationExpressionBinding (this, node);
 	}
 
-	public override CodeBinding create_boolean_literal_binding (BooleanLiteral node) {
+	public override CodeBinding? create_boolean_literal_binding (BooleanLiteral node) {
 		return null;
 	}
 
-	public override CodeBinding create_character_literal_binding (CharacterLiteral node) {
+	public override CodeBinding? create_character_literal_binding (CharacterLiteral node) {
 		return null;
 	}
 
-	public override CodeBinding create_integer_literal_binding (IntegerLiteral node) {
+	public override CodeBinding? create_integer_literal_binding (IntegerLiteral node) {
 		return null;
 	}
 
-	public override CodeBinding create_real_literal_binding (RealLiteral node) {
+	public override CodeBinding? create_real_literal_binding (RealLiteral node) {
 		return null;
 	}
 
-	public override CodeBinding create_string_literal_binding (StringLiteral node) {
+	public override CodeBinding? create_string_literal_binding (StringLiteral node) {
 		return null;
 	}
 
-	public override CodeBinding create_null_literal_binding (NullLiteral node) {
+	public override CodeBinding? create_null_literal_binding (NullLiteral node) {
 		return null;
 	}
 
-	public override CodeBinding create_parenthesized_expression_binding (ParenthesizedExpression node) {
+	public override CodeBinding? create_parenthesized_expression_binding (ParenthesizedExpression node) {
 		return null;
 	}
 
-	public override CodeBinding create_member_access_binding (MemberAccess node) {
+	public override CodeBinding? create_member_access_binding (MemberAccess node) {
 		return null;
 	}
 
-	public override CodeBinding create_member_access_simple_binding (MemberAccess node) {
+	public override CodeBinding? create_member_access_simple_binding (MemberAccess node) {
 		return null;
 	}
 
-	public override CodeBinding create_invocation_expression_binding (InvocationExpression node) {
+	public override CodeBinding? create_invocation_expression_binding (InvocationExpression node) {
 		return null;
 	}
 
-	public override CodeBinding create_element_access_binding (ElementAccess node) {
+	public override CodeBinding? create_element_access_binding (ElementAccess node) {
 		return new CCodeElementAccessBinding (this, node);
 	}
 
-	public override CodeBinding create_base_access_binding (BaseAccess node) {
+	public override CodeBinding? create_base_access_binding (BaseAccess node) {
 		return null;
 	}
 
-	public override CodeBinding create_postfix_expression_binding (PostfixExpression node) {
+	public override CodeBinding? create_postfix_expression_binding (PostfixExpression node) {
 		return null;
 	}
 
-	public override CodeBinding create_object_creation_expression_binding (ObjectCreationExpression node) {
+	public override CodeBinding? create_object_creation_expression_binding (ObjectCreationExpression node) {
 		return null;
 	}
 
-	public override CodeBinding create_sizeof_expression_binding (SizeofExpression node) {
+	public override CodeBinding? create_sizeof_expression_binding (SizeofExpression node) {
 		return null;
 	}
 
-	public override CodeBinding create_typeof_expression_binding (TypeofExpression node) {
+	public override CodeBinding? create_typeof_expression_binding (TypeofExpression node) {
 		return null;
 	}
 
-	public override CodeBinding create_unary_expression_binding (UnaryExpression node) {
+	public override CodeBinding? create_unary_expression_binding (UnaryExpression node) {
 		return null;
 	}
 
-	public override CodeBinding create_cast_expression_binding (CastExpression node) {
+	public override CodeBinding? create_cast_expression_binding (CastExpression node) {
 		return null;
 	}
 
-	public override CodeBinding create_pointer_indirection_binding (PointerIndirection node) {
+	public override CodeBinding? create_pointer_indirection_binding (PointerIndirection node) {
 		return null;
 	}
 
-	public override CodeBinding create_addressof_expression_binding (AddressofExpression node) {
+	public override CodeBinding? create_addressof_expression_binding (AddressofExpression node) {
 		return null;
 	}
 
-	public override CodeBinding create_reference_transfer_expression_binding (ReferenceTransferExpression node) {
+	public override CodeBinding? create_reference_transfer_expression_binding (ReferenceTransferExpression node) {
 		return null;
 	}
 
-	public override CodeBinding create_binary_expression_binding (BinaryExpression node) {
+	public override CodeBinding? create_binary_expression_binding (BinaryExpression node) {
 		return null;
 	}
 
-	public override CodeBinding create_type_check_binding (TypeCheck node) {
+	public override CodeBinding? create_type_check_binding (TypeCheck node) {
 		return null;
 	}
 
-	public override CodeBinding create_conditional_expression_binding (ConditionalExpression node) {
+	public override CodeBinding? create_conditional_expression_binding (ConditionalExpression node) {
 		return null;
 	}
 
-	public override CodeBinding create_lambda_expression_binding (LambdaExpression node) {
+	public override CodeBinding? create_lambda_expression_binding (LambdaExpression node) {
 		return null;
 	}
 
-	public override CodeBinding create_lambda_expression_with_statement_body_binding (LambdaExpression node) {
+	public override CodeBinding? create_lambda_expression_with_statement_body_binding (LambdaExpression node) {
 		return null;
 	}
 
-	public override CodeBinding create_assignment_binding (Assignment node) {
+	public override CodeBinding? create_assignment_binding (Assignment node) {
 		return new CCodeAssignmentBinding (this, node);
 	}
 }

Modified: trunk/gobject/valaccodegeneratormethod.vala
==============================================================================
--- trunk/gobject/valaccodegeneratormethod.vala	(original)
+++ trunk/gobject/valaccodegeneratormethod.vala	Mon Apr 14 20:07:37 2008
@@ -649,7 +649,7 @@
 		}
 	}
 
-	private CCodeStatement create_type_check_statement (CodeNode method_node, DataType ret_type, Typesymbol t, bool non_null, string var_name) {
+	private CCodeStatement? create_type_check_statement (CodeNode method_node, DataType ret_type, Typesymbol t, bool non_null, string var_name) {
 		var ccheck = new CCodeFunctionCall ();
 		
 		if ((t is Class && ((Class) t).is_subtype_of (gobject_type)) || (t is Interface && !((Interface) t).declaration_only)) {
@@ -717,7 +717,7 @@
 		return new CCodeExpressionStatement (cassert);
 	}
 
-	private CCodeExpression default_value_for_type (DataType type, bool initializer_expression) {
+	private CCodeExpression? default_value_for_type (DataType type, bool initializer_expression) {
 		if ((type.data_type != null && type.data_type.is_reference_type ()) || type is PointerType || type is ArrayType) {
 			return new CCodeConstant ("NULL");
 		} else if (type.data_type != null && type.data_type.get_default_value () != null) {
@@ -736,7 +736,7 @@
 		return null;
 	}
 
-	private Typesymbol find_parent_type (Symbol sym) {
+	private Typesymbol? find_parent_type (Symbol sym) {
 		while (sym != null) {
 			if (sym is Typesymbol) {
 				return (Typesymbol) sym;

Modified: trunk/gobject/valaccodegeneratorsignal.vala
==============================================================================
--- trunk/gobject/valaccodegeneratorsignal.vala	(original)
+++ trunk/gobject/valaccodegeneratorsignal.vala	Mon Apr 14 20:07:37 2008
@@ -62,7 +62,7 @@
 		return ret;
 	}
 	
-	private string get_value_type_name_from_type_reference (DataType t) {
+	private string? get_value_type_name_from_type_reference (DataType t) {
 		if (t is PointerType || t.type_parameter != null || t.is_ref || t.is_out) {
 			return "gpointer";
 		} else if (t is VoidType) {

Modified: trunk/gobject/valadbusbindingprovider.vala
==============================================================================
--- trunk/gobject/valadbusbindingprovider.vala	(original)
+++ trunk/gobject/valadbusbindingprovider.vala	Mon Apr 14 20:07:37 2008
@@ -51,7 +51,7 @@
 	public DBusBindingProvider () {
 	}
 
-	public Symbol get_binding (MemberAccess ma) {
+	public Symbol? get_binding (MemberAccess ma) {
 		if (connection_type != null && ma.inner != null && ma.inner.static_type != null && ma.inner.static_type.data_type == connection_type) {
 			var type_args = ma.get_type_arguments ();
 			if (type_args.size != 1) {

Modified: trunk/vala/valaarraytype.vala
==============================================================================
--- trunk/vala/valaarraytype.vala	(original)
+++ trunk/vala/valaarraytype.vala	Mon Apr 14 20:07:37 2008
@@ -131,7 +131,7 @@
 		return result;
 	}
 
-	public override string get_cname (bool var_type, bool const_type) {
+	public override string? get_cname (bool var_type, bool const_type) {
 		return element_type.get_cname () + "*";
 	}
 

Modified: trunk/vala/valaattribute.vala
==============================================================================
--- trunk/vala/valaattribute.vala	(original)
+++ trunk/vala/valaattribute.vala	Mon Apr 14 20:07:37 2008
@@ -81,7 +81,7 @@
 	 * @param name argument name
 	 * @return     string value
 	 */
-	public string get_string (string name) {
+	public string? get_string (string name) {
 		// FIXME: use hash table
 		foreach (NamedArgument arg in args) {
 			if (arg.name == name) {

Modified: trunk/vala/valabindingprovider.vala
==============================================================================
--- trunk/vala/valabindingprovider.vala	(original)
+++ trunk/vala/valabindingprovider.vala	Mon Apr 14 20:07:37 2008
@@ -1,6 +1,6 @@
 /* valabindingprovider.vala
  *
- * Copyright (C) 2007  JÃrg Billeter
+ * Copyright (C) 2007-2008  JÃrg Billeter
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -32,6 +32,6 @@
 	 * @param ma member access expression
 	 * @return   resolved symbol or null if no binding can be provided
 	 */
-	public abstract Symbol get_binding (MemberAccess ma);
+	public abstract Symbol? get_binding (MemberAccess ma);
 }
 

Modified: trunk/vala/valaclass.vala
==============================================================================
--- trunk/vala/valaclass.vala	(original)
+++ trunk/vala/valaclass.vala	Mon Apr 14 20:07:37 2008
@@ -470,7 +470,7 @@
 		return lower_case_cprefix;
 	}
 	
-	public override string get_upper_case_cname (string? infix) {
+	public override string? get_upper_case_cname (string? infix) {
 		return get_lower_case_cname (infix).up ();
 	}
 
@@ -544,7 +544,7 @@
 		return has_type_id || (base_class != null && base_class.get_has_type_id ());
 	}
 
-	public override string get_type_id () {
+	public override string? get_type_id () {
 		if (type_id == null) {
 			if (get_has_type_id ()) {
 				type_id = get_upper_case_cname ("TYPE_");
@@ -560,7 +560,7 @@
 		this.type_id = type_id;
 	}
 
-	public override string get_marshaller_type_name () {
+	public override string? get_marshaller_type_name () {
 		if (marshaller_type_name == null) {
 			if (base_class != null) {
 				marshaller_type_name = base_class.get_marshaller_type_name ();
@@ -572,7 +572,7 @@
 		return marshaller_type_name;
 	}
 
-	public override string get_get_value_function () {
+	public override string? get_get_value_function () {
 		if (get_value_function == null) {
 			if (base_class != null) {
 				get_value_function = base_class.get_get_value_function ();
@@ -584,7 +584,7 @@
 		return get_value_function;
 	}
 	
-	public override string get_set_value_function () {
+	public override string? get_set_value_function () {
 		if (set_value_function == null) {
 			if (base_class != null) {
 				set_value_function = base_class.get_set_value_function ();

Modified: trunk/vala/valacodecontext.vala
==============================================================================
--- trunk/vala/valacodecontext.vala	(original)
+++ trunk/vala/valacodecontext.vala	Mon Apr 14 20:07:37 2008
@@ -381,7 +381,7 @@
 		}
 	}
 
-	public string get_package_path (string pkg, [CCode (array_length_pos = 1.9)] string[] vapi_directories) {
+	public string? get_package_path (string pkg, [CCode (array_length_pos = 1.9)] string[] vapi_directories) {
 		string basename = "%s.vapi".printf (pkg);
 		string filename = null;
 

Modified: trunk/vala/valacodegenerator.vala
==============================================================================
--- trunk/vala/valacodegenerator.vala	(original)
+++ trunk/vala/valacodegenerator.vala	Mon Apr 14 20:07:37 2008
@@ -34,287 +34,287 @@
 	public virtual void emit (CodeContext context) {
 	}
 
-	public virtual CodeBinding create_namespace_binding (Namespace node) {
+	public virtual CodeBinding? create_namespace_binding (Namespace node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_class_binding (Class node) {
+	public virtual CodeBinding? create_class_binding (Class node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_struct_binding (Struct node) {
+	public virtual CodeBinding? create_struct_binding (Struct node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_interface_binding (Interface node) {
+	public virtual CodeBinding? create_interface_binding (Interface node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_enum_binding (Enum node) {
+	public virtual CodeBinding? create_enum_binding (Enum node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_enum_value_binding (EnumValue node) {
+	public virtual CodeBinding? create_enum_value_binding (EnumValue node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_error_domain_binding (ErrorDomain node) {
+	public virtual CodeBinding? create_error_domain_binding (ErrorDomain node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_error_code_binding (ErrorCode node) {
+	public virtual CodeBinding? create_error_code_binding (ErrorCode node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_delegate_binding (Delegate node) {
+	public virtual CodeBinding? create_delegate_binding (Delegate node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_constant_binding (Constant node) {
+	public virtual CodeBinding? create_constant_binding (Constant node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_field_binding (Field node) {
+	public virtual CodeBinding? create_field_binding (Field node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_method_binding (Method node) {
+	public virtual CodeBinding? create_method_binding (Method node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_creation_method_binding (CreationMethod node) {
+	public virtual CodeBinding? create_creation_method_binding (CreationMethod node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_formal_parameter_binding (FormalParameter node) {
+	public virtual CodeBinding? create_formal_parameter_binding (FormalParameter node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_property_binding (Property node) {
+	public virtual CodeBinding? create_property_binding (Property node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_property_accessor_binding (PropertyAccessor node) {
+	public virtual CodeBinding? create_property_accessor_binding (PropertyAccessor node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_signal_binding (Signal node) {
+	public virtual CodeBinding? create_signal_binding (Signal node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_constructor_binding (Constructor node) {
+	public virtual CodeBinding? create_constructor_binding (Constructor node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_destructor_binding (Destructor node) {
+	public virtual CodeBinding? create_destructor_binding (Destructor node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_type_parameter_binding (TypeParameter node) {
+	public virtual CodeBinding? create_type_parameter_binding (TypeParameter node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_block_binding (Block node) {
+	public virtual CodeBinding? create_block_binding (Block node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_empty_statement_binding (EmptyStatement node) {
+	public virtual CodeBinding? create_empty_statement_binding (EmptyStatement node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_declaration_statement_binding (DeclarationStatement node) {
+	public virtual CodeBinding? create_declaration_statement_binding (DeclarationStatement node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_local_variable_declaration_binding (LocalVariableDeclaration node) {
+	public virtual CodeBinding? create_local_variable_declaration_binding (LocalVariableDeclaration node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_variable_declarator_binding (VariableDeclarator node) {
+	public virtual CodeBinding? create_variable_declarator_binding (VariableDeclarator node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_initializer_list_binding (InitializerList node) {
+	public virtual CodeBinding? create_initializer_list_binding (InitializerList node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_expression_statement_binding (ExpressionStatement node) {
+	public virtual CodeBinding? create_expression_statement_binding (ExpressionStatement node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_if_statement_binding (IfStatement node) {
+	public virtual CodeBinding? create_if_statement_binding (IfStatement node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_switch_statement_binding (SwitchStatement node) {
+	public virtual CodeBinding? create_switch_statement_binding (SwitchStatement node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_switch_section_binding (SwitchSection node) {
+	public virtual CodeBinding? create_switch_section_binding (SwitchSection node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_switch_label_binding (SwitchLabel node) {
+	public virtual CodeBinding? create_switch_label_binding (SwitchLabel node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_while_statement_binding (WhileStatement node) {
+	public virtual CodeBinding? create_while_statement_binding (WhileStatement node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_do_statement_binding (DoStatement node) {
+	public virtual CodeBinding? create_do_statement_binding (DoStatement node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_for_statement_binding (ForStatement node) {
+	public virtual CodeBinding? create_for_statement_binding (ForStatement node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_foreach_statement_binding (ForeachStatement node) {
+	public virtual CodeBinding? create_foreach_statement_binding (ForeachStatement node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_break_statement_binding (BreakStatement node) {
+	public virtual CodeBinding? create_break_statement_binding (BreakStatement node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_continue_statement_binding (ContinueStatement node) {
+	public virtual CodeBinding? create_continue_statement_binding (ContinueStatement node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_return_statement_binding (ReturnStatement node) {
+	public virtual CodeBinding? create_return_statement_binding (ReturnStatement node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_throw_statement_binding (ThrowStatement node) {
+	public virtual CodeBinding? create_throw_statement_binding (ThrowStatement node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_try_statement_binding (TryStatement node) {
+	public virtual CodeBinding? create_try_statement_binding (TryStatement node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_catch_clause_binding (CatchClause node) {
+	public virtual CodeBinding? create_catch_clause_binding (CatchClause node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_lock_statement_binding (LockStatement node) {
+	public virtual CodeBinding? create_lock_statement_binding (LockStatement node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_delete_statement_binding (DeleteStatement node) {
+	public virtual CodeBinding? create_delete_statement_binding (DeleteStatement node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_array_creation_expression_binding (ArrayCreationExpression node) {
+	public virtual CodeBinding? create_array_creation_expression_binding (ArrayCreationExpression node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_boolean_literal_binding (BooleanLiteral node) {
+	public virtual CodeBinding? create_boolean_literal_binding (BooleanLiteral node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_character_literal_binding (CharacterLiteral node) {
+	public virtual CodeBinding? create_character_literal_binding (CharacterLiteral node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_integer_literal_binding (IntegerLiteral node) {
+	public virtual CodeBinding? create_integer_literal_binding (IntegerLiteral node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_real_literal_binding (RealLiteral node) {
+	public virtual CodeBinding? create_real_literal_binding (RealLiteral node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_string_literal_binding (StringLiteral node) {
+	public virtual CodeBinding? create_string_literal_binding (StringLiteral node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_null_literal_binding (NullLiteral node) {
+	public virtual CodeBinding? create_null_literal_binding (NullLiteral node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_parenthesized_expression_binding (ParenthesizedExpression node) {
+	public virtual CodeBinding? create_parenthesized_expression_binding (ParenthesizedExpression node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_member_access_binding (MemberAccess node) {
+	public virtual CodeBinding? create_member_access_binding (MemberAccess node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_member_access_simple_binding (MemberAccess node) {
+	public virtual CodeBinding? create_member_access_simple_binding (MemberAccess node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_invocation_expression_binding (InvocationExpression node) {
+	public virtual CodeBinding? create_invocation_expression_binding (InvocationExpression node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_element_access_binding (ElementAccess node) {
+	public virtual CodeBinding? create_element_access_binding (ElementAccess node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_base_access_binding (BaseAccess node) {
+	public virtual CodeBinding? create_base_access_binding (BaseAccess node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_postfix_expression_binding (PostfixExpression node) {
+	public virtual CodeBinding? create_postfix_expression_binding (PostfixExpression node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_object_creation_expression_binding (ObjectCreationExpression node) {
+	public virtual CodeBinding? create_object_creation_expression_binding (ObjectCreationExpression node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_sizeof_expression_binding (SizeofExpression node) {
+	public virtual CodeBinding? create_sizeof_expression_binding (SizeofExpression node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_typeof_expression_binding (TypeofExpression node) {
+	public virtual CodeBinding? create_typeof_expression_binding (TypeofExpression node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_unary_expression_binding (UnaryExpression node) {
+	public virtual CodeBinding? create_unary_expression_binding (UnaryExpression node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_cast_expression_binding (CastExpression node) {
+	public virtual CodeBinding? create_cast_expression_binding (CastExpression node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_pointer_indirection_binding (PointerIndirection node) {
+	public virtual CodeBinding? create_pointer_indirection_binding (PointerIndirection node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_addressof_expression_binding (AddressofExpression node) {
+	public virtual CodeBinding? create_addressof_expression_binding (AddressofExpression node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_reference_transfer_expression_binding (ReferenceTransferExpression node) {
+	public virtual CodeBinding? create_reference_transfer_expression_binding (ReferenceTransferExpression node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_binary_expression_binding (BinaryExpression node) {
+	public virtual CodeBinding? create_binary_expression_binding (BinaryExpression node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_type_check_binding (TypeCheck node) {
+	public virtual CodeBinding? create_type_check_binding (TypeCheck node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_conditional_expression_binding (ConditionalExpression node) {
+	public virtual CodeBinding? create_conditional_expression_binding (ConditionalExpression node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_lambda_expression_binding (LambdaExpression node) {
+	public virtual CodeBinding? create_lambda_expression_binding (LambdaExpression node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_lambda_expression_with_statement_body_binding (LambdaExpression node) {
+	public virtual CodeBinding? create_lambda_expression_with_statement_body_binding (LambdaExpression node) {
 		return null;
 	}
 
-	public virtual CodeBinding create_assignment_binding (Assignment node) {
+	public virtual CodeBinding? create_assignment_binding (Assignment node) {
 		return null;
 	}
 }

Modified: trunk/vala/valacodenode.vala
==============================================================================
--- trunk/vala/valacodenode.vala	(original)
+++ trunk/vala/valacodenode.vala	Mon Apr 14 20:07:37 2008
@@ -106,7 +106,7 @@
 	 * @param name attribute name
 	 * @return     attribute
 	 */
-	public Attribute get_attribute (string name) {
+	public Attribute? get_attribute (string name) {
 		// FIXME: use hash table
 		foreach (Attribute a in attributes) {
 			if (a.name == name) {

Modified: trunk/vala/valadatatype.vala
==============================================================================
--- trunk/vala/valadatatype.vala	(original)
+++ trunk/vala/valadatatype.vala	Mon Apr 14 20:07:37 2008
@@ -113,7 +113,7 @@
 	 *
 	 * @return the type string to be used in C code
 	 */
-	public virtual string get_cname (bool var_type = false, bool const_type = false) {
+	public virtual string? get_cname (bool var_type = false, bool const_type = false) {
 		if (data_type == null && type_parameter == null) {
 			if (var_type) {
 				return "gpointer";
@@ -396,7 +396,7 @@
 	 *
 	 * @return return type
 	 */
-	public virtual DataType get_return_type () {
+	public virtual DataType? get_return_type () {
 		return null;
 	}
 
@@ -405,7 +405,7 @@
 	 *
 	 * @return parameter list
 	 */
-	public virtual Collection<FormalParameter> get_parameters () {
+	public virtual Collection<FormalParameter>? get_parameters () {
 		return null;
 	}
 
@@ -439,7 +439,7 @@
 		return null;
 	}
 
-	public virtual Symbol get_pointer_member (string member_name) {
+	public virtual Symbol? get_pointer_member (string member_name) {
 		return null;
 	}
 

Modified: trunk/vala/valadelegate.vala
==============================================================================
--- trunk/vala/valadelegate.vala	(original)
+++ trunk/vala/valadelegate.vala	Mon Apr 14 20:07:37 2008
@@ -260,19 +260,19 @@
 		return false;
 	}
 
-	public override string get_type_id () {
+	public override string? get_type_id () {
 		return "G_TYPE_POINTER";
 	}
 
-	public override string get_marshaller_type_name () {
+	public override string? get_marshaller_type_name () {
 		return "POINTER";
 	}
 
-	public override string get_get_value_function () {
+	public override string? get_get_value_function () {
 		return "g_value_get_pointer";
 	}
 	
-	public override string get_set_value_function () {
+	public override string? get_set_value_function () {
 		return "g_value_set_pointer";
 	}
 

Modified: trunk/vala/valadelegatetype.vala
==============================================================================
--- trunk/vala/valadelegatetype.vala	(original)
+++ trunk/vala/valadelegatetype.vala	Mon Apr 14 20:07:37 2008
@@ -37,11 +37,11 @@
 		return true;
 	}
 
-	public override DataType get_return_type () {
+	public override DataType? get_return_type () {
 		return delegate_symbol.return_type;
 	}
 
-	public override Collection<FormalParameter> get_parameters () {
+	public override Collection<FormalParameter>? get_parameters () {
 		return delegate_symbol.get_parameters ();
 	}
 
@@ -53,7 +53,7 @@
 		return new DelegateType (delegate_symbol);
 	}
 
-	public override string get_cname (bool var_type = false, bool const_type = false) {
+	public override string? get_cname (bool var_type, bool const_type) {
 		return delegate_symbol.get_cname (const_type);
 	}
 

Modified: trunk/vala/valaenum.vala
==============================================================================
--- trunk/vala/valaenum.vala	(original)
+++ trunk/vala/valaenum.vala	Mon Apr 14 20:07:37 2008
@@ -148,7 +148,7 @@
 		return "%s%s%s".printf (parent_symbol.get_lower_case_cprefix (), infix, get_lower_case_csuffix ());
 	}
 
-	public override string get_upper_case_cname (string? infix = null) {
+	public override string? get_upper_case_cname (string? infix = null) {
 		return get_lower_case_cname (infix).up ();
 	}
 
@@ -220,11 +220,11 @@
 		}
 	}
 
-	public void set_type_id (string type_id) {
+	public void set_type_id (string? type_id) {
 		this.type_id = type_id;
 	}
 
-	public override string get_type_id () {
+	public override string? get_type_id () {
 		if (type_id == null) {
 			if (has_type_id) {
 				type_id = get_upper_case_cname ("TYPE_");
@@ -236,7 +236,7 @@
 		return type_id;
 	}
 	
-	public override string get_marshaller_type_name () {
+	public override string? get_marshaller_type_name () {
 		if (has_type_id) {
 			if (is_flags) {
 				return "FLAGS";
@@ -247,12 +247,12 @@
 			if (is_flags) {
 				return "UINT";
 			} else {
-		return "INT";
-	}
+				return "INT";
+			}
 		}
 	}
 
-	public override string get_get_value_function () {
+	public override string? get_get_value_function () {
 		if (has_type_id) {
 			if (is_flags) {
 				return "g_value_get_flags";
@@ -268,7 +268,7 @@
 		}
 	}
 	
-	public override string get_set_value_function () {
+	public override string? get_set_value_function () {
 		if (has_type_id) {
 			if (is_flags) {
 				return "g_value_set_flags";
@@ -284,7 +284,7 @@
 		}
 	}
 
-	public override string get_default_value () {
+	public override string? get_default_value () {
 		return "0";
 	}
 }

Modified: trunk/vala/valaerrordomain.vala
==============================================================================
--- trunk/vala/valaerrordomain.vala	(original)
+++ trunk/vala/valaerrordomain.vala	Mon Apr 14 20:07:37 2008
@@ -137,7 +137,7 @@
 		return "%s%s%s".printf (parent_symbol.get_lower_case_cprefix (), infix, get_lower_case_csuffix ());
 	}
 
-	public override string get_upper_case_cname (string? infix) {
+	public override string? get_upper_case_cname (string? infix) {
 		return get_lower_case_cname (null).up ();
 	}
 
@@ -201,19 +201,19 @@
 		}
 	}
 
-	public override string get_type_id () {
+	public override string? get_type_id () {
 		return "G_TYPE_POINTER";
 	}
 	
-	public override string get_marshaller_type_name () {
+	public override string? get_marshaller_type_name () {
 		return "POINTER";
 	}
 
-	public override string get_get_value_function () {
+	public override string? get_get_value_function () {
 		return "g_value_get_pointer";
 	}
 	
-	public override string get_set_value_function () {
+	public override string? get_set_value_function () {
 		return "g_value_set_pointer";
 	}
 }

Modified: trunk/vala/valaerrortype.vala
==============================================================================
--- trunk/vala/valaerrortype.vala	(original)
+++ trunk/vala/valaerrortype.vala	Mon Apr 14 20:07:37 2008
@@ -72,7 +72,7 @@
 		return new ErrorType (error_domain, source_reference);
 	}
 
-	public override string get_cname (bool var_type = false, bool const_type = false) {
+	public override string? get_cname (bool var_type = false, bool const_type = false) {
 		return "GError*";
 	}
 

Modified: trunk/vala/valaexpressionstatement.vala
==============================================================================
--- trunk/vala/valaexpressionstatement.vala	(original)
+++ trunk/vala/valaexpressionstatement.vala	Mon Apr 14 20:07:37 2008
@@ -72,7 +72,7 @@
 	 * @return the property this statement sets, or null if it doesn't set
 	 *         a property
 	 */
-	public Property assigned_property () {
+	public Property? assigned_property () {
 		if (expression is Assignment) {
 			var assign = (Assignment) expression;
 			if (assign.left is MemberAccess) {

Modified: trunk/vala/valainterface.vala
==============================================================================
--- trunk/vala/valainterface.vala	(original)
+++ trunk/vala/valainterface.vala	Mon Apr 14 20:07:37 2008
@@ -313,7 +313,7 @@
 		return "%s_".printf (get_lower_case_cname (null));
 	}
 	
-	public override string get_upper_case_cname (string? infix) {
+	public override string? get_upper_case_cname (string? infix) {
 		return get_lower_case_cname (infix).up ();
 	}
 
@@ -448,19 +448,19 @@
 		this.type_cname = type_cname;
 	}
 
-	public override string get_marshaller_type_name () {
+	public override string? get_marshaller_type_name () {
 		return "OBJECT";
 	}
 
-	public override string get_get_value_function () {
+	public override string? get_get_value_function () {
 		return "g_value_get_object";
 	}
 	
-	public override string get_set_value_function () {
+	public override string? get_set_value_function () {
 		return "g_value_set_object";
 	}
 
-	public override string get_type_id () {
+	public override string? get_type_id () {
 		if (type_id == null) {
 			type_id = get_upper_case_cname ("TYPE_");
 		}

Modified: trunk/vala/valamethodtype.vala
==============================================================================
--- trunk/vala/valamethodtype.vala	(original)
+++ trunk/vala/valamethodtype.vala	Mon Apr 14 20:07:37 2008
@@ -37,11 +37,11 @@
 		return true;
 	}
 
-	public override DataType get_return_type () {
+	public override DataType? get_return_type () {
 		return method_symbol.return_type;
 	}
 
-	public override Collection<FormalParameter> get_parameters () {
+	public override Collection<FormalParameter>? get_parameters () {
 		return method_symbol.get_parameters ();
 	}
 

Modified: trunk/vala/valaparser.vala
==============================================================================
--- trunk/vala/valaparser.vala	(original)
+++ trunk/vala/valaparser.vala	Mon Apr 14 20:07:37 2008
@@ -347,7 +347,7 @@
 		bool is_weak = accept (TokenType.WEAK);
 
 		var sym = parse_symbol_name ();
-		var type_arg_list = parse_type_argument_list (false);
+		Gee.List<DataType> type_arg_list = parse_type_argument_list (false);
 
 		int stars = 0;
 		while (accept (TokenType.STAR)) {
@@ -476,7 +476,7 @@
 	Expression parse_simple_name () throws ParseError {
 		var begin = get_location ();
 		string id = parse_identifier ();
-		var type_arg_list = parse_type_argument_list (true);
+		Gee.List<DataType> type_arg_list = parse_type_argument_list (true);
 		var expr = context.create_member_access (null, id, get_src (begin));
 		if (type_arg_list != null) {
 			foreach (DataType type_arg in type_arg_list) {
@@ -509,7 +509,7 @@
 	Expression parse_member_access (SourceLocation begin, Expression inner) throws ParseError {
 		expect (TokenType.DOT);
 		string id = parse_identifier ();
-		var type_arg_list = parse_type_argument_list (true);
+		Gee.List<DataType> type_arg_list = parse_type_argument_list (true);
 		var expr = context.create_member_access (inner, id, get_src (begin));
 		if (type_arg_list != null) {
 			foreach (DataType type_arg in type_arg_list) {
@@ -522,7 +522,7 @@
 	Expression parse_pointer_member_access (SourceLocation begin, Expression inner) throws ParseError {
 		expect (TokenType.OP_PTR);
 		string id = parse_identifier ();
-		var type_arg_list = parse_type_argument_list (true);
+		Gee.List<DataType> type_arg_list = parse_type_argument_list (true);
 		var expr = context.create_member_access_pointer (inner, id, get_src (begin));
 		if (type_arg_list != null) {
 			foreach (DataType type_arg in type_arg_list) {
@@ -1526,7 +1526,7 @@
 		return context.create_delete_statement (expr, get_src_com (begin));
 	}
 
-	Gee.List<Attribute> parse_attributes () throws ParseError {
+	Gee.List<Attribute>? parse_attributes () throws ParseError {
 		if (current () != TokenType.OPEN_BRACKET) {
 			return null;
 		}
@@ -2629,7 +2629,7 @@
 	}
 
 	// try to parse type argument list
-	Gee.List<DataType> parse_type_argument_list (bool maybe_expression) throws ParseError {
+	Gee.List<DataType>? parse_type_argument_list (bool maybe_expression) throws ParseError {
 		var begin = get_location ();
 		if (accept (TokenType.OP_LT)) {
 			var list = new ArrayList<DataType> ();
@@ -2684,7 +2684,7 @@
 		MemberAccess expr = null;
 		do {
 			string id = parse_identifier ();
-			var type_arg_list = parse_type_argument_list (false);
+			Gee.List<DataType> type_arg_list = parse_type_argument_list (false);
 			expr = context.create_member_access (expr, id, get_src (begin));
 			if (type_arg_list != null) {
 				foreach (DataType type_arg in type_arg_list) {

Modified: trunk/vala/valapointertype.vala
==============================================================================
--- trunk/vala/valapointertype.vala	(original)
+++ trunk/vala/valapointertype.vala	Mon Apr 14 20:07:37 2008
@@ -40,7 +40,7 @@
 		return base_type.to_string () + "*";
 	}
 
-	public override string get_cname (bool var_type = false, bool const_type = false) {
+	public override string? get_cname (bool var_type = false, bool const_type = false) {
 		if (base_type.data_type != null && base_type.data_type.is_reference_type ()) {
 			return base_type.get_cname (var_type, const_type);
 		} else {
@@ -70,7 +70,7 @@
 		return false;
 	}
 
-	public override Symbol get_pointer_member (string member_name) {
+	public override Symbol? get_pointer_member (string member_name) {
 		Symbol base_symbol = base_type.data_type;
 
 		if (base_symbol == null) {

Modified: trunk/vala/valascanner.vala
==============================================================================
--- trunk/vala/valascanner.vala	(original)
+++ trunk/vala/valascanner.vala	Mon Apr 14 20:07:37 2008
@@ -755,7 +755,7 @@
 	 *
 	 * @return saved comment
 	 */
-	public string pop_comment () {
+	public string? pop_comment () {
 		if (_comment == null) {
 			return null;
 		}

Modified: trunk/vala/valascope.vala
==============================================================================
--- trunk/vala/valascope.vala	(original)
+++ trunk/vala/valascope.vala	Mon Apr 14 20:07:37 2008
@@ -81,7 +81,7 @@
 	 * @param name name of the symbol to be returned
 	 * @return     found symbol or null
 	 */
-	public Symbol lookup (string name) {
+	public Symbol? lookup (string name) {
 		if (symbol_table == null) {
 			return null;
 		}

Modified: trunk/vala/valasemanticanalyzer.vala
==============================================================================
--- trunk/vala/valasemanticanalyzer.vala	(original)
+++ trunk/vala/valasemanticanalyzer.vala	Mon Apr 14 20:07:37 2008
@@ -1159,6 +1159,11 @@
 		    !current_return_type.transfers_ownership) {
 			Report.warning (stmt.source_reference, "Local variable with strong reference used as return value and method return type hasn't been declared to transfer ownership");
 		}
+
+		if (stmt.return_expression is NullLiteral
+		    && !current_return_type.nullable) {
+			Report.warning (stmt.source_reference, "`null' incompatible with return type `%s`".printf (current_return_type.to_string ()));
+		}
 	}
 
 	public override void visit_throw_statement (ThrowStatement stmt) {
@@ -1363,7 +1368,7 @@
 		expr.static_type = new NullType (expr.source_reference);
 	}
 
-	private DataType get_static_type_for_symbol (Symbol sym) {
+	private DataType? get_static_type_for_symbol (Symbol sym) {
 		if (sym is Field) {
 			var f = (Field) sym;
 			return f.type_reference;
@@ -1395,7 +1400,7 @@
 		return null;
 	}
 
-	public static Symbol symbol_lookup_inherited (Symbol sym, string name) {
+	public static Symbol? symbol_lookup_inherited (Symbol sym, string name) {
 		var result = sym.scope.lookup (name);
 		if (result != null) {
 			return result;
@@ -1905,7 +1910,7 @@
 		return true;
 	}
 
-	private static DataType get_instance_base_type (DataType instance_type, DataType base_type, CodeNode node_reference) {
+	private static DataType? get_instance_base_type (DataType instance_type, DataType base_type, CodeNode node_reference) {
 		// construct a new type reference for the base type with correctly linked type arguments
 		ReferenceType instance_base_type;
 		if (base_type.data_type is Class) {
@@ -1929,7 +1934,7 @@
 		return instance_base_type;
 	}
 
-	public static DataType get_actual_type (DataType derived_instance_type, Symbol generic_member, DataType generic_type, CodeNode node_reference) {
+	public static DataType? get_actual_type (DataType derived_instance_type, Symbol generic_member, DataType generic_type, CodeNode node_reference) {
 		DataType instance_type = derived_instance_type;
 
 		while (instance_type is PointerType) {
@@ -2460,7 +2465,7 @@
 		}
 	}
 
-	private MemberAccess find_member_access (Expression expr) {
+	private MemberAccess? find_member_access (Expression expr) {
 		if (expr is ParenthesizedExpression) {
 			var pe = (ParenthesizedExpression) expr;
 			return find_member_access (pe.inner);
@@ -2551,7 +2556,7 @@
 		expr.static_type.takes_ownership = false;
 	}
 
-	private DataType get_arithmetic_result_type (DataType left_type, DataType right_type) {
+	private DataType? get_arithmetic_result_type (DataType left_type, DataType right_type) {
 		 if (!(left_type.data_type is Struct) || !(right_type.data_type is Struct)) {
 			// at least one operand not struct
 		 	return null;
@@ -2755,7 +2760,7 @@
 		return result;
 	}
 
-	private Method find_current_method () {
+	private Method? find_current_method () {
 		var sym = current_symbol;
 		while (sym != null) {
 			if (sym is Method) {

Modified: trunk/vala/valasignaltype.vala
==============================================================================
--- trunk/vala/valasignaltype.vala	(original)
+++ trunk/vala/valasignaltype.vala	Mon Apr 14 20:07:37 2008
@@ -37,11 +37,11 @@
 		return true;
 	}
 
-	public override DataType get_return_type () {
+	public override DataType? get_return_type () {
 		return signal_symbol.return_type;
 	}
 
-	public override Collection<FormalParameter> get_parameters () {
+	public override Collection<FormalParameter>? get_parameters () {
 		return signal_symbol.get_parameters ();
 	}
 

Modified: trunk/vala/valasourcefile.vala
==============================================================================
--- trunk/vala/valasourcefile.vala	(original)
+++ trunk/vala/valasourcefile.vala	Mon Apr 14 20:07:37 2008
@@ -377,7 +377,7 @@
 	 * @param lineno 1-based line number
 	 * @return       the specified source line
 	 */
-	public string get_source_line (int lineno) {
+	public string? get_source_line (int lineno) {
 		if (source_array == null) {
 			read_source_file ();
 		}

Modified: trunk/vala/valastringliteral.vala
==============================================================================
--- trunk/vala/valastringliteral.vala	(original)
+++ trunk/vala/valastringliteral.vala	Mon Apr 14 20:07:37 2008
@@ -48,7 +48,7 @@
 	 *
 	 * @return the unescaped string
 	 */	
-	public string eval () {
+	public string? eval () {
 		if (value == null) {
 			return null;
 		}

Modified: trunk/vala/valastruct.vala
==============================================================================
--- trunk/vala/valastruct.vala	(original)
+++ trunk/vala/valastruct.vala	Mon Apr 14 20:07:37 2008
@@ -220,7 +220,7 @@
 		return "%s%s%s".printf (parent_symbol.get_lower_case_cprefix (), infix, get_lower_case_csuffix ());
 	}
 	
-	public override string get_upper_case_cname (string? infix) {
+	public override string? get_upper_case_cname (string? infix) {
 		return get_lower_case_cname (infix).up ();
 	}
 
@@ -315,7 +315,7 @@
 		}
 	}
 
-	public override string get_type_id () {
+	public override string? get_type_id () {
 		if (type_id == null) {
 			if (simple_type) {
 				Report.error (source_reference, "The type `%s` doesn't declare a type id".printf (get_full_name ()));
@@ -326,11 +326,11 @@
 		return type_id;
 	}
 	
-	public void set_type_id (string name) {
+	public void set_type_id (string? name) {
 		this.type_id = name;
 	}
 
-	public override string get_marshaller_type_name () {
+	public override string? get_marshaller_type_name () {
 		if (marshaller_type_name == null) {
 			if (simple_type) {
 				Report.error (source_reference, "The type `%s` doesn't declare a marshaller type name".printf (get_full_name ()));
@@ -341,11 +341,11 @@
 		return marshaller_type_name;
 	}
 	
-	private void set_marshaller_type_name (string name) {
+	private void set_marshaller_type_name (string? name) {
 		this.marshaller_type_name = name;
 	}
 	
-	public override string get_get_value_function () {
+	public override string? get_get_value_function () {
 		if (get_value_function == null) {
 			if (simple_type) {
 				Report.error (source_reference, "The value type `%s` doesn't declare a GValue get function".printf (get_full_name ()));
@@ -358,7 +358,7 @@
 		}
 	}
 	
-	public override string get_set_value_function () {
+	public override string? get_set_value_function () {
 		if (set_value_function == null) {
 			if (simple_type) {
 				Report.error (source_reference, "The value type `%s` doesn't declare a GValue set function".printf (get_full_name ()));
@@ -371,15 +371,15 @@
 		}
 	}
 	
-	private void set_get_value_function (string function) {
+	private void set_get_value_function (string? function) {
 		get_value_function = function;
 	}
 	
-	private void set_set_value_function (string function) {
+	private void set_set_value_function (string? function) {
 		set_value_function = function;
 	}
 
-	public override string get_default_value () {
+	public override string? get_default_value () {
 		if (default_value != null) {
 			return default_value;
 		}
@@ -394,7 +394,7 @@
 		return null;
 	}
 
-	private void set_default_value (string value) {
+	private void set_default_value (string? value) {
 		default_value = value;
 	}
 

Modified: trunk/vala/valasymbol.vala
==============================================================================
--- trunk/vala/valasymbol.vala	(original)
+++ trunk/vala/valasymbol.vala	Mon Apr 14 20:07:37 2008
@@ -30,7 +30,7 @@
 	/**
 	 * The parent of this symbol.
 	 */
-	public weak Symbol parent_symbol {
+	public weak Symbol? parent_symbol {
 		get {
 			if (owner == null) {
 				return null;

Modified: trunk/vala/valatypesymbol.vala
==============================================================================
--- trunk/vala/valatypesymbol.vala	(original)
+++ trunk/vala/valatypesymbol.vala	Mon Apr 14 20:07:37 2008
@@ -141,7 +141,7 @@
 	 * @return the name of the GType name in C code or null if this data
 	 *         type is not registered with GType
 	 */
-	public virtual string get_type_id () {
+	public virtual string? get_type_id () {
 		return null;
 	}
 	
@@ -150,21 +150,21 @@
 	 *
 	 * @return type name for marshallers
 	 */
-	public virtual string get_marshaller_type_name () {
+	public virtual string? get_marshaller_type_name () {
 		return null;
 	}
 	
 	/**
 	 * Returns the cname of the GValue getter function,
 	 */
-	public virtual string get_get_value_function () {
+	public virtual string? get_get_value_function () {
 		return null;
 	}
 	
 	/**
 	 * Returns the cname of the GValue setter function,
 	 */
-	public virtual string get_set_value_function () {
+	public virtual string? get_set_value_function () {
 		return null;
 	}
 	
@@ -177,7 +177,7 @@
 	 *              name or null
 	 * @return      the upper case name to be used in C code
 	 */
-	public virtual string get_upper_case_cname (string? infix = null) {
+	public virtual string? get_upper_case_cname (string? infix = null) {
 		return null;
 	}
 
@@ -187,7 +187,7 @@
 	 *
 	 * @return	the name of the default value
 	 */
-	public virtual string get_default_value () {
+	public virtual string? get_default_value () {
 		return null;
 	}
 

Modified: trunk/vala/valaunresolvedtype.vala
==============================================================================
--- trunk/vala/valaunresolvedtype.vala	(original)
+++ trunk/vala/valaunresolvedtype.vala	Mon Apr 14 20:07:37 2008
@@ -72,7 +72,7 @@
 	 * @param source reference to source code
 	 * @return       newly created type reference
 	 */
-	public static UnresolvedType new_from_expression (Expression expr) {
+	public static UnresolvedType? new_from_expression (Expression expr) {
 		string ns = null;
 		string type_name = null;
 		if (expr is MemberAccess) {

Modified: trunk/vala/valavaluetype.vala
==============================================================================
--- trunk/vala/valavaluetype.vala	(original)
+++ trunk/vala/valavaluetype.vala	Mon Apr 14 20:07:37 2008
@@ -53,7 +53,7 @@
 		return result;
 	}
 
-	public override string get_cname (bool var_type, bool const_type) {
+	public override string? get_cname (bool var_type, bool const_type) {
 		string ptr = "";
 		if (is_ref || is_out) {
 			ptr += "*";

Modified: trunk/vala/valavoidtype.vala
==============================================================================
--- trunk/vala/valavoidtype.vala	(original)
+++ trunk/vala/valavoidtype.vala	Mon Apr 14 20:07:37 2008
@@ -37,7 +37,7 @@
 		return "void";
 	}
 
-	public override string get_cname (bool var_type = false, bool const_type = false) {
+	public override string? get_cname (bool var_type = false, bool const_type = false) {
 		return "void";
 	}
 

Modified: trunk/vapigen/valagidlparser.vala
==============================================================================
--- trunk/vapigen/valagidlparser.vala	(original)
+++ trunk/vapigen/valagidlparser.vala	Mon Apr 14 20:07:37 2008
@@ -188,7 +188,7 @@
 		return const_name;
 	}
 
-	private Namespace parse_module (IdlModule module) {
+	private Namespace? parse_module (IdlModule module) {
 		Symbol sym = context.root.scope.lookup (module.name);
 		Namespace ns;
 		if (sym is Namespace) {
@@ -280,7 +280,7 @@
 		return ns;
 	}
 	
-	private Delegate parse_delegate (IdlNodeFunction f_node) {
+	private Delegate? parse_delegate (IdlNodeFunction f_node) {
 		weak IdlNode node = (IdlNode) f_node;
 	
 		var cb = new Delegate (node.name, parse_param (f_node.result), current_source_reference);
@@ -710,7 +710,7 @@
 		}
 	}
 	
-	private Typesymbol parse_enum (IdlNodeEnum en_node) {
+	private Typesymbol? parse_enum (IdlNodeEnum en_node) {
 		weak IdlNode node = (IdlNode) en_node;
 
 		var en = new Enum (node.name, current_source_reference);
@@ -978,7 +978,7 @@
 		current_data_type = null;
 	}
 	
-	private UnresolvedType parse_type (IdlNodeType type_node) {
+	private UnresolvedType? parse_type (IdlNodeType type_node) {
 		var type = new UnresolvedType ();
 		if (type_node.tag == TypeTag.VOID) {
 			if (type_node.is_pointer) {
@@ -1184,7 +1184,7 @@
 		return type;
 	}
 	
-	private Method create_method (string name, string symbol, IdlNodeParam? res, GLib.List<IdlNodeParam>? parameters, bool is_constructor, bool is_interface) {
+	private Method? create_method (string name, string symbol, IdlNodeParam? res, GLib.List<IdlNodeParam>? parameters, bool is_constructor, bool is_interface) {
 		UnresolvedType return_type = null;
 		if (res != null) {
 			return_type = parse_param (res);
@@ -1417,7 +1417,7 @@
 		return false;
 	}
 
-	private Method parse_function (IdlNodeFunction f, bool is_interface = false) {
+	private Method? parse_function (IdlNodeFunction f, bool is_interface = false) {
 		weak IdlNode node = (IdlNode) f;
 		
 		if (f.deprecated) {
@@ -1468,7 +1468,7 @@
 		return str.str;
 	}
 
-	private Property parse_property (IdlNodeProperty prop_node) {
+	private Property? parse_property (IdlNodeProperty prop_node) {
 		weak IdlNode node = (IdlNode) prop_node;
 		
 		if (prop_node.deprecated) {
@@ -1519,7 +1519,7 @@
 		return prop;
 	}
 
-	private Constant parse_constant (IdlNodeConstant const_node) {
+	private Constant? parse_constant (IdlNodeConstant const_node) {
 		weak IdlNode node = (IdlNode) const_node;
 		
 		var type = parse_type (const_node.type);
@@ -1533,7 +1533,7 @@
 		return c;
 	}
 
-	private Field parse_field (IdlNodeField field_node) {
+	private Field? parse_field (IdlNodeField field_node) {
 		weak IdlNode node = (IdlNode) field_node;
 		
 		var type = parse_type (field_node.type);
@@ -1586,7 +1586,7 @@
 	}
 
 	[NoArrayLength]
-	private string[] get_attributes (string codenode) {
+	private string[]? get_attributes (string codenode) {
 		var attributes = codenode_attributes_map.get (codenode);
 
 		if (attributes == null) {
@@ -1619,7 +1619,7 @@
 		return s.offset (1).ndup (s.size () - 2);
 	}
 
-	private Signal parse_signal (IdlNodeSignal sig_node) {
+	private Signal? parse_signal (IdlNodeSignal sig_node) {
 		weak IdlNode node = (IdlNode) sig_node;
 		
 		if (sig_node.deprecated || sig_node.result == null) {

Modified: trunk/vapigen/valavapigen.vala
==============================================================================
--- trunk/vapigen/valavapigen.vala	(original)
+++ trunk/vapigen/valavapigen.vala	Mon Apr 14 20:07:37 2008
@@ -79,7 +79,7 @@
 		return true;
 	}
 	
-	private static string[] get_packages_from_depsfile (string depsfile) {
+	private static string[]? get_packages_from_depsfile (string depsfile) {
 		string contents;
 		if (FileUtils.get_contents (depsfile, out contents)) {
 			return contents.strip ().split ("\n");



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