summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2017-12-08 23:21:05 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2017-12-09 14:34:50 +0100
commitf6ad20518b8bfc3bcf4784da7449228ac77fd99f (patch)
tree2000fd8c7e3461ebceff8e2c1bb1381dca2f85f8
parent671bf6e9e52f5bdd3e7fdf7a2ad674a765e20b38 (diff)
downloadvala-f6ad20518b8bfc3bcf4784da7449228ac77fd99f.tar.gz
SemanticAnalyser.get_actual_type() should never return null
So better return an InvalidType in case of error. https://bugzilla.gnome.org/show_bug.cgi?id=587905
-rw-r--r--vala/valasemanticanalyzer.vala8
1 files changed, 4 insertions, 4 deletions
diff --git a/vala/valasemanticanalyzer.vala b/vala/valasemanticanalyzer.vala
index 7cabd6479..e407ee29d 100644
--- a/vala/valasemanticanalyzer.vala
+++ b/vala/valasemanticanalyzer.vala
@@ -810,7 +810,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
return null;
}
- public static DataType? get_actual_type (DataType? derived_instance_type, List<DataType>? method_type_arguments, GenericType generic_type, CodeNode node_reference) {
+ public static DataType get_actual_type (DataType? derived_instance_type, List<DataType>? method_type_arguments, GenericType generic_type, CodeNode node_reference) {
DataType actual_type = null;
if (generic_type.type_parameter.parent_symbol is TypeSymbol) {
if (derived_instance_type != null) {
@@ -820,7 +820,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
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;
+ return new InvalidType ();
}
int param_index;
@@ -832,7 +832,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
if (param_index == -1) {
Report.error (node_reference.source_reference, "internal error: unknown type parameter %s".printf (generic_type.type_parameter.name));
node_reference.error = true;
- return null;
+ return new InvalidType ();
}
if (param_index < instance_type.get_type_arguments ().size) {
@@ -847,7 +847,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
if (param_index == -1) {
Report.error (node_reference.source_reference, "internal error: unknown type parameter %s".printf (generic_type.type_parameter.name));
node_reference.error = true;
- return null;
+ return new InvalidType ();
}
if (method_type_arguments != null) {