summaryrefslogtreecommitdiff
path: root/vala/valasemanticanalyzer.vala
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2017-11-19 16:27:22 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2017-11-19 16:27:22 +0100
commit6b656b078e49de3286deaa3ae8edcfdb6202e6e8 (patch)
treec10282dff9f9c88626f551d85d502d146d9a50df /vala/valasemanticanalyzer.vala
parentbe9e795b66ed96e232abcd3ca628096c9a51c61c (diff)
downloadvala-6b656b078e49de3286deaa3ae8edcfdb6202e6e8.tar.gz
vala: Report error for missing type-parameter on enclosing type
Make a qualified guess for the cause of the problem instead of triggering an assertion. https://bugzilla.gnome.org/show_bug.cgi?id=587905
Diffstat (limited to 'vala/valasemanticanalyzer.vala')
-rw-r--r--vala/valasemanticanalyzer.vala6
1 files changed, 5 insertions, 1 deletions
diff --git a/vala/valasemanticanalyzer.vala b/vala/valasemanticanalyzer.vala
index 32a8d2d28..a0a7e3d0a 100644
--- a/vala/valasemanticanalyzer.vala
+++ b/vala/valasemanticanalyzer.vala
@@ -822,7 +822,11 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
// trace type arguments back to the datatype where the method has been declared
var instance_type = get_instance_base_type_for_member (derived_instance_type, (TypeSymbol) generic_type.type_parameter.parent_symbol, node_reference);
- assert (instance_type != null);
+ if (instance_type == null) {
+ Report.error (node_reference.source_reference, "The type-parameter `%s' must be defined on enclosing type".printf (generic_type.to_string ()));
+ node_reference.error = true;
+ return null;
+ }
int param_index;
if (instance_type is DelegateType) {