summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuerg Billeter <j@bitron.ch>2007-09-14 21:15:59 +0000
committerJürg Billeter <juergbi@src.gnome.org>2007-09-14 21:15:59 +0000
commit3ce59e20d257f577c0ebe4655c7c79696f37abee (patch)
tree0dbdd056df2f683c69d85678de4f24bb2f16c489
parent779f26abf2815a57f629e74c15c5418db1a45fb5 (diff)
downloadvala-3ce59e20d257f577c0ebe4655c7c79696f37abee.tar.gz
deny assignment to instance members from static methods
2007-09-14 Juerg Billeter <j@bitron.ch> * vala/valasemanticanalyzer.vala: deny assignment to instance members from static methods svn path=/trunk/; revision=606
-rw-r--r--ChangeLog5
-rw-r--r--vala/valasemanticanalyzer.vala6
2 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index e4a2b2149..4b3e679ba 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2007-09-14 Jürg Billeter <j@bitron.ch>
+ * vala/valasemanticanalyzer.vala: deny assignment to instance members
+ from static methods
+
+2007-09-14 Jürg Billeter <j@bitron.ch>
+
* vapi/packages/gstreamer-0.10/gstreamer-0.10.metadata: fix
Gst.version_string method
diff --git a/vala/valasemanticanalyzer.vala b/vala/valasemanticanalyzer.vala
index 6b15e7b91..a1e3d36c6 100644
--- a/vala/valasemanticanalyzer.vala
+++ b/vala/valasemanticanalyzer.vala
@@ -2523,6 +2523,12 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
if (a.left is MemberAccess) {
var ma = (MemberAccess) a.left;
+ if (ma.prototype_access) {
+ a.error = true;
+ Report.error (a.source_reference, "Access to instance member `%s' denied".printf (ma.symbol_reference.get_full_name ()));
+ return;
+ }
+
if (ma.error || ma.symbol_reference == null) {
a.error = true;
/* if no symbol found, skip this check */