diff options
author | Jürg Billeter <j@bitron.ch> | 2010-03-22 23:12:47 +0100 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2010-03-22 23:12:47 +0100 |
commit | 17028dcb59a9df29c1a1c71a1f1ed48f083f4b77 (patch) | |
tree | 941605143239509b534fcab4e9fca2e840a97b8d /vala/valasemanticanalyzer.vala | |
parent | e37a70819b26a5dd5d664c26bf9d27f48e608484 (diff) | |
download | vala-17028dcb59a9df29c1a1c71a1f1ed48f083f4b77.tar.gz |
Report error when using instance method as argument in static methods
Fixes bug 598839.
Diffstat (limited to 'vala/valasemanticanalyzer.vala')
-rw-r--r-- | vala/valasemanticanalyzer.vala | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/vala/valasemanticanalyzer.vala b/vala/valasemanticanalyzer.vala index 130e2ca4d..818ea7d50 100644 --- a/vala/valasemanticanalyzer.vala +++ b/vala/valasemanticanalyzer.vala @@ -566,6 +566,15 @@ public class Vala.SemanticAnalyzer : CodeVisitor { } } } + var ma = arg as MemberAccess; + if (ma != null && ma.prototype_access) { + // allow prototype access if target type is delegate without target + var deleg_type = arg.target_type as DelegateType; + if (deleg_type == null || deleg_type.delegate_symbol.has_target) { + Report.error (arg.source_reference, "Access to instance member `%s' denied".printf (arg.symbol_reference.get_full_name ())); + } + return false; + } return true; } |