]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Slightly improve source_reference for get_dup_func_expression()
authorRico Tzschichholz <ricotz@ubuntu.com>
Fri, 6 Aug 2021 06:40:31 +0000 (08:40 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Sun, 22 Aug 2021 08:36:09 +0000 (10:36 +0200)
codegen/valaccodebasemodule.vala
codegen/valagtypemodule.vala
vala/valasemanticanalyzer.vala
vala/valasymbolresolver.vala

index d3fd0457c547cb617fe61a4f30811c6347f7c492..e69dacc3e98eae6c5894963178799e0dd1a77730 100644 (file)
@@ -2897,7 +2897,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                                }
                        } else {
                                // duplicating non-reference counted objects may cause side-effects (and performance issues)
-                               Report.error (source_reference, "duplicating %s instance, use unowned variable or explicitly invoke copy method".printf (type.type_symbol.name));
+                               Report.error (source_reference, "duplicating `%s' instance, use unowned variable or explicitly invoke copy method".printf (type.type_symbol.name));
                                return new CCodeInvalidExpression();
                        }
 
@@ -4769,7 +4769,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 
                        arg_map.set (get_param_pos (0.1 * type_param_index + 0.02), get_type_id_expression (type_arg, is_chainup));
                        if (requires_copy (type_arg)) {
-                               var dup_func = get_dup_func_expression (type_arg, type_arg.source_reference, is_chainup);
+                               var dup_func = get_dup_func_expression (type_arg, type_arg.source_reference ?? expr.source_reference, is_chainup);
                                if (dup_func == null) {
                                        // type doesn't contain a copy function
                                        expr.error = true;
index 43e6e153e14cdeeac6f82ed20544942d3b41b1a6..f72ef44616ae39f4a34c053e4edb8edf00cf7578 100644 (file)
@@ -1420,7 +1420,7 @@ public class Vala.GTypeModule : GErrorModule {
 
                                add_generic_accessor_function ("get_%s_dup_func".printf (p.name.ascii_down ()),
                                                               "GBoxedCopyFunc",
-                                                              get_dup_func_expression (p_data_type, null),
+                                                              get_dup_func_expression (p_data_type, p_data_type.source_reference),
                                                               p, cl, iface);
 
                                add_generic_accessor_function ("get_%s_destroy_func".printf (p.name.ascii_down ()),
index fed1e86b04fa267acdb078c4c21531ce8091cb27..46857bd52d9abf7424d9b0b60fedd4ad33e3bb06 100644 (file)
@@ -1001,6 +1001,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
                        return generic_type;
                }
                actual_type = actual_type.copy ();
+               actual_type.source_reference = generic_type.source_reference;
                actual_type.value_owned = actual_type.value_owned && generic_type.value_owned;
                return actual_type;
        }
index dbe9b1f218dd7c1c9e50c0c02dda10ad0ee22907..2ec81c64248a153b3877f22024cf6883539380f7 100644 (file)
@@ -384,7 +384,7 @@ public class Vala.SymbolResolver : CodeVisitor {
 
                // still required for vapigen
                if (unresolved_type.unresolved_symbol.name == "void") {
-                       return new VoidType ();
+                       return new VoidType (unresolved_type.source_reference);
                }
 
                var sym = resolve_symbol (unresolved_type.unresolved_symbol);