diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-03-10 12:12:06 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-03-10 12:12:06 +0100 |
commit | 724c3c5ecaeaddd54c0f8d5fb744bfeb680fc5e8 (patch) | |
tree | 4f912e37548397ba2b59e02a871e2af5601f9ecb /vala/valasignal.vala | |
parent | f969ed96471f224a7bb8774ee23801ebe39ef1f8 (diff) | |
download | vala-724c3c5ecaeaddd54c0f8d5fb744bfeb680fc5e8.tar.gz |
vala: Replace all type parameter occurances in parameters for signal delegate
Improves 36999b5ffd63cc56a8648791b02bf07e7da88077
Diffstat (limited to 'vala/valasignal.vala')
-rw-r--r-- | vala/valasignal.vala | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/vala/valasignal.vala b/vala/valasignal.vala index 3acbf3b03..5c790a7cd 100644 --- a/vala/valasignal.vala +++ b/vala/valasignal.vala @@ -122,7 +122,7 @@ public class Vala.Signal : Symbol, Callable { actual_param.variable_type = actual_param.variable_type.get_actual_type (sender_type, null, node_reference); generated_delegate.add_parameter (actual_param); - if (actual_param.variable_type is GenericType) { + if (actual_param.variable_type.is_generic ()) { is_generic = true; } } @@ -136,9 +136,8 @@ public class Vala.Signal : Symbol, Callable { // parameter types must refer to the delegate type parameters // instead of to the class type parameters foreach (var param in generated_delegate.get_parameters ()) { - unowned GenericType? generic_type = param.variable_type as GenericType; - if (generic_type != null) { - generic_type.type_parameter = generated_delegate.get_type_parameters ().get (generated_delegate.get_type_parameter_index (generic_type.type_parameter.name)); + foreach (var type_param in generated_delegate.get_type_parameters ()) { + param.variable_type.replace_type_parameter (cl.get_type_parameters ().get (cl.get_type_parameter_index (type_param.name)), type_param); } } } |