summaryrefslogtreecommitdiff
path: root/vala/valasymbol.vala
diff options
context:
space:
mode:
authorLevi Bard <taktaktaktaktaktaktaktaktaktak@gmail.com>2009-07-27 23:11:30 +0200
committerJürg Billeter <j@bitron.ch>2009-07-27 23:11:30 +0200
commit0154b1a6909c76d41b47a6dca011d078da316c14 (patch)
tree02811f53efb922dbfa2ed073dfd542c7272282d9 /vala/valasymbol.vala
parent28c37bdaf489002bdb8c69d7a77abd52d6123343 (diff)
downloadvala-0154b1a6909c76d41b47a6dca011d078da316c14.tar.gz
Support locks with static fields
Fixes bug 537461.
Diffstat (limited to 'vala/valasymbol.vala')
-rw-r--r--vala/valasymbol.vala44
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 {