diff options
author | Jürg Billeter <j@bitron.ch> | 2010-10-25 23:07:02 +0200 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2010-10-25 23:07:02 +0200 |
commit | 837258146130818b9d02aba9ec63d586c611544d (patch) | |
tree | bc029d5e0dcfe4684fd2085dd1f97488a723b4ee /vala/valalambdaexpression.vala | |
parent | 66946917adf62ac2765466402e74c46964503bdd (diff) | |
download | vala-837258146130818b9d02aba9ec63d586c611544d.tar.gz |
Support use of generics in closures
Diffstat (limited to 'vala/valalambdaexpression.vala')
-rw-r--r-- | vala/valalambdaexpression.vala | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/vala/valalambdaexpression.vala b/vala/valalambdaexpression.vala index d71c4b55c..889905b20 100644 --- a/vala/valalambdaexpression.vala +++ b/vala/valalambdaexpression.vala @@ -224,6 +224,17 @@ public class Vala.LambdaExpression : Expression { } method.body.owner = method.scope; + // support use of generics in closures + var m = analyzer.find_parent_method (analyzer.current_symbol); + if (m != null) { + foreach (var type_param in m.get_type_parameters ()) { + method.add_type_parameter (new TypeParameter (type_param.name, type_param.source_reference)); + + method.closure = true; + m.body.captured = true; + } + } + /* lambda expressions should be usable like MemberAccess of a method */ symbol_reference = method; |