2008-04-07 Jürg 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
+
+2008-04-07 Jürg Billeter <j@bitron.ch>
+
* vala/valasemanticanalyzer.vala: type check initializer lists
* gobject/valaccodegenerator.vala: fix support for static delegates
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 ()));
}
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 ()));
}