]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Deny access to instance members from nullable references
authorJürg Billeter <j@bitron.ch>
Tue, 22 Jun 2010 04:42:08 +0000 (06:42 +0200)
committerJürg Billeter <j@bitron.ch>
Tue, 22 Jun 2010 05:10:47 +0000 (07:10 +0200)
This only applies to the experimental strict non-null mode.

vala/valamemberaccess.vala

index 6d12220252ba247f1f6eccbeed83921a68486d57..2ada89a96d8e633f9d62c2f6363f94db8f8736ab 100644 (file)
@@ -728,6 +728,11 @@ public class Vala.MemberAccess : Expression {
                                inner.symbol_reference = this_parameter;
                        }
 
+                       if (analyzer.context.experimental_non_null && instance && inner.value_type.nullable &&
+                           !(inner.value_type is PointerType) && !(inner.value_type is GenericType)) {
+                               Report.error (source_reference, "Access to instance member `%s' from nullable reference denied".printf (symbol_reference.get_full_name ()));
+                       }
+
                        formal_value_type = analyzer.get_value_type_for_symbol (symbol_reference, lvalue);
                        if (inner != null && formal_value_type != null) {
                                value_type = formal_value_type.get_actual_type (inner.value_type, null, this);