diff options
author | Levi Bard <taktaktaktaktaktaktaktaktaktak@gmail.com> | 2009-07-27 23:11:30 +0200 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2009-07-27 23:11:30 +0200 |
commit | 0154b1a6909c76d41b47a6dca011d078da316c14 (patch) | |
tree | 02811f53efb922dbfa2ed073dfd542c7272282d9 /vala/valasymbol.vala | |
parent | 28c37bdaf489002bdb8c69d7a77abd52d6123343 (diff) | |
download | vala-0154b1a6909c76d41b47a6dca011d078da316c14.tar.gz |
Support locks with static fields
Fixes bug 537461.
Diffstat (limited to 'vala/valasymbol.vala')
-rw-r--r-- | vala/valasymbol.vala | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/vala/valasymbol.vala b/vala/valasymbol.vala index 61a1c0ab3..ca54bd6e9 100644 --- a/vala/valasymbol.vala +++ b/vala/valasymbol.vala @@ -313,6 +313,50 @@ public abstract class Vala.Symbol : CodeNode { // if this is a public symbol, it's equally accessible as the parent symbol return parent_symbol.get_top_accessible_scope (is_internal); } + + public virtual bool is_instance_member () { + bool instance = true; + if (this is Field) { + var f = (Field) this; + instance = (f.binding == MemberBinding.INSTANCE); + } else if (this is Method) { + var m = (Method) this; + if (!(m is CreationMethod)) { + instance = (m.binding == MemberBinding.INSTANCE); + } + } else if (this is Property) { + var prop = (Property) this; + instance = (prop.binding == MemberBinding.INSTANCE); + } else if (this is EnumValue) { + instance = false; + } else if (this is ErrorCode) { + instance = false; + } + + return instance; + } + + public virtual bool is_class_member () { + bool isclass = true; + if (this is Field) { + var f = (Field) this; + isclass = (f.binding == MemberBinding.CLASS); + } else if (this is Method) { + var m = (Method) this; + if (!(m is CreationMethod)) { + isclass = (m.binding == MemberBinding.CLASS); + } + } else if (this is Property) { + var prop = (Property) this; + isclass = (prop.binding == MemberBinding.CLASS); + } else if (this is EnumValue) { + isclass = false; + } else if (this is ErrorCode) { + isclass = false; + } + + return isclass; + } } public enum Vala.SymbolAccessibility { |