vala r1177 - in trunk: . vala



Author: juergbi
Date: Mon Apr  7 17:28:32 2008
New Revision: 1177
URL: http://svn.gnome.org/viewvc/vala?rev=1177&view=rev

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

	* vala/valasemanticanalyzer.vala: don't compare base_method and
	  base_interface_method in visit_class as this might not be set yet
	  in other classes; available methods will already be checked in
	  detail in visit_method, fixes bug 523263


Modified:
   trunk/ChangeLog
   trunk/vala/valasemanticanalyzer.vala

Modified: trunk/vala/valasemanticanalyzer.vala
==============================================================================
--- trunk/vala/valasemanticanalyzer.vala	(original)
+++ trunk/vala/valasemanticanalyzer.vala	Mon Apr  7 17:28:32 2008
@@ -184,7 +184,7 @@
 					foreach (Method m in iface.get_methods ()) {
 						if (m.is_abstract) {
 							var sym = cl.scope.lookup (m.name);
-							if (sym == null || !(sym is Method) || ((Method) sym).base_interface_method != m) {
+							if (!(sym is Method)) {
 								cl.error = true;
 								Report.error (cl.source_reference, "`%s' does not implement interface method `%s'".printf (cl.get_full_name (), m.get_full_name ()));
 							}
@@ -200,9 +200,7 @@
 					foreach (Method base_method in base_class.get_methods ()) {
 						if (base_method.is_abstract) {
 							var override_method = symbol_lookup_inherited (cl, base_method.name) as Method;
-							if (override_method == null
-							    || !override_method.overrides
-							    || override_method.base_method != base_method) {
+							if (override_method == null || !override_method.overrides) {
 								cl.error = true;
 								Report.error (cl.source_reference, "`%s' does not implement abstract method `%s'".printf (cl.get_full_name (), base_method.get_full_name ()));
 							}



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