From ae0732591bdcffddb3640c63640341d5e0e3bbd6 Mon Sep 17 00:00:00 2001 From: Jared Moore Date: Mon, 23 Jun 2008 21:29:15 +0000 Subject: [PATCH] Report error when trying to access 'class' member statically rather than 2008-06-23 Jared Moore * vala/valasemanticanalyzer.vala: Report error when trying to access 'class' member statically rather than through an instance, fixes bug 539594. svn path=/trunk/; revision=1644 --- ChangeLog | 7 +++++++ vala/valasemanticanalyzer.vala | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index c9b27fa..13788e5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-06-23 Jared Moore + + * vala/valasemanticanalyzer.vala: + + Report error when trying to access 'class' member statically rather + than through an instance, fixes bug 539594. + 2008-06-23 Jürg Billeter * gobject/valaccodeobjecttypesymbolbinding.vala: diff --git a/vala/valasemanticanalyzer.vala b/vala/valasemanticanalyzer.vala index 2407dc9..7338297 100644 --- a/vala/valasemanticanalyzer.vala +++ b/vala/valasemanticanalyzer.vala @@ -1753,14 +1753,17 @@ public class Vala.SemanticAnalyzer : CodeVisitor { var member = expr.symbol_reference; var access = SymbolAccessibility.PUBLIC; bool instance = false; + bool klass = false; if (member is Field) { var f = (Field) member; access = f.access; instance = (f.binding == MemberBinding.INSTANCE); + klass = (f.binding == MemberBinding.CLASS); } else if (member is Method) { var m = (Method) member; access = m.access; instance = (m.binding == MemberBinding.INSTANCE); + klass = (m.binding == MemberBinding.CLASS); } else if (member is Property) { var prop = (Property) member; access = prop.access; @@ -1811,7 +1814,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor { return; } } - if (instance && !may_access_instance_members) { + if ((instance || klass) && !may_access_instance_members) { expr.prototype_access = true; if (expr.symbol_reference is Method) { -- 2.7.4