From: Rico Tzschichholz Date: Mon, 27 Nov 2017 18:46:20 +0000 (+0100) Subject: vala: Improve error output of mismatching overriding methods X-Git-Tag: 0.38.4~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7c85ebe3c0ba2dd78ceceffc9947700e376e7459;p=thirdparty%2Fvala.git vala: Improve error output of mismatching overriding methods Include the prototype-string of base-method for easier error finding. --- diff --git a/vala/valamethod.vala b/vala/valamethod.vala index 3544b67e9..945ec5dba 100644 --- a/vala/valamethod.vala +++ b/vala/valamethod.vala @@ -560,7 +560,8 @@ public class Vala.Method : Subroutine, Callable { string invalid_match; if (!compatible (base_method, out invalid_match)) { error = true; - Report.error (source_reference, "overriding method `%s' is incompatible with base method `%s': %s.".printf (get_full_name (), base_method.get_full_name (), invalid_match)); + var base_method_type = new MethodType (base_method); + Report.error (source_reference, "overriding method `%s' is incompatible with base method `%s': %s.".printf (get_full_name (), base_method_type.to_prototype_string (), invalid_match)); return; } @@ -606,7 +607,8 @@ public class Vala.Method : Subroutine, Callable { string invalid_match = null; if (!compatible (base_method, out invalid_match)) { error = true; - Report.error (source_reference, "overriding method `%s' is incompatible with base method `%s': %s.".printf (get_full_name (), base_method.get_full_name (), invalid_match)); + var base_method_type = new MethodType (base_method); + Report.error (source_reference, "overriding method `%s' is incompatible with base method `%s': %s.".printf (get_full_name (), base_method_type.to_prototype_string (), invalid_match)); return; } @@ -618,7 +620,7 @@ public class Vala.Method : Subroutine, Callable { } if (base_interface_type != null) { - Report.error (source_reference, "%s: no suitable interface method found to implement".printf (get_full_name ())); + Report.error (source_reference, "`%s': no suitable interface method found to implement".printf (get_full_name ())); } } @@ -773,7 +775,7 @@ public class Vala.Method : Subroutine, Callable { return false; } } else if (overrides && base_method == null) { - Report.error (source_reference, "%s: no suitable method found to override".printf (get_full_name ())); + Report.error (source_reference, "`%s': no suitable method found to override".printf (get_full_name ())); } else if ((is_abstract || is_virtual || overrides) && access == SymbolAccessibility.PRIVATE) { error = true; Report.error (source_reference, "Private member `%s' cannot be marked as override, virtual, or abstract".printf (get_full_name ()));