vala r2404 - in trunk: . vala



Author: juergbi
Date: Tue Jan 27 20:03:45 2009
New Revision: 2404
URL: http://svn.gnome.org/viewvc/vala?rev=2404&view=rev

Log:
2009-01-27  JÃrg Billeter  <j bitron ch>

	* vala/valamemberaccess.vala:

	Skip overriding methods and properties in member access,
	fixes default arguments when calling virtual methods


Modified:
   trunk/ChangeLog
   trunk/vala/valamemberaccess.vala

Modified: trunk/vala/valamemberaccess.vala
==============================================================================
--- trunk/vala/valamemberaccess.vala	(original)
+++ trunk/vala/valamemberaccess.vala	Tue Jan 27 20:03:45 2009
@@ -409,6 +409,17 @@
 			klass = (f.binding == MemberBinding.CLASS);
 		} else if (member is Method) {
 			var m = (Method) member;
+			if (m.base_method != null) {
+				// refer to base method to inherit default arguments
+				m = m.base_method;
+				symbol_reference = m;
+				member = symbol_reference;
+			} else if (m.base_interface_method != null) {
+				// refer to base method to inherit default arguments
+				m = m.base_interface_method;
+				symbol_reference = m;
+				member = symbol_reference;
+			}
 			access = m.access;
 			if (!(m is CreationMethod)) {
 				instance = (m.binding == MemberBinding.INSTANCE);
@@ -420,6 +431,17 @@
 				error = true;
 				return false;
 			}
+			if (prop.base_property != null) {
+				// refer to base property
+				prop = prop.base_property;
+				symbol_reference = prop;
+				member = symbol_reference;
+			} else if (prop.base_interface_property != null) {
+				// refer to base property
+				prop = prop.base_interface_property;
+				symbol_reference = prop;
+				member = symbol_reference;
+			}
 			access = prop.access;
 			if (lvalue) {
 				if (prop.set_accessor == null) {



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