From b4ad44e669742451536ebe395500ca431b697bba Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Sun, 22 Sep 2019 17:27:00 +0200 Subject: [PATCH] vala: Add package_name to missing member error for external MemberAccess This provides information about the origin of the accessed symbol. --- vala/valamemberaccess.vala | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/vala/valamemberaccess.vala b/vala/valamemberaccess.vala index ad3f3d0fc..132f72d05 100644 --- a/vala/valamemberaccess.vala +++ b/vala/valamemberaccess.vala @@ -468,13 +468,24 @@ public class Vala.MemberAccess : Expression { error = true; string base_type_name = "(null)"; + unowned Symbol? base_type = null; if (inner != null && inner.value_type != null) { base_type_name = inner.value_type.to_string (); + base_type = inner.value_type.data_type; } else if (base_symbol != null) { base_type_name = base_symbol.get_full_name (); + base_type = base_symbol; } - Report.error (source_reference, "The name `%s' does not exist in the context of `%s'".printf (member_name, base_type_name)); + string? base_type_package = ""; + if (base_type != null && base_type.external_package) { + base_type_package = base_symbol.source_reference.file.package_name; + if (base_type_package != null) { + base_type_package = " (%s)".printf (base_type_package); + } + } + + Report.error (source_reference, "The name `%s' does not exist in the context of `%s'%s".printf (member_name, base_type_name, base_type_package)); return false; } -- 2.47.2