[vala/staging: 5/5] vala: Add package_name to missing member error for external MemberAccess



commit b4ad44e669742451536ebe395500ca431b697bba
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Sun Sep 22 17:27:00 2019 +0200

    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;
                }
 


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