]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Forbid non-constant initializers for static fields in compact classes
authorSimon Werbeck <simon.werbeck@gmail.com>
Sun, 31 Mar 2013 21:39:32 +0000 (23:39 +0200)
committerLuca Bruno <luca.bruno@immobiliare.it>
Fri, 29 Aug 2014 14:54:19 +0000 (16:54 +0200)
Fixes bug 636509

vala/valafield.vala

index 48986cc0c97669efa4b3c2a39405c4146c3475a9..e6429a192c0eb2ca0a9b9630f99e42dc0b67ae1d 100644 (file)
@@ -149,6 +149,12 @@ public class Vala.Field : Variable, Lockable {
                                return false;
                        }
 
+                       if (binding == MemberBinding.STATIC && parent_symbol is Class && ((Class)parent_symbol).is_compact && !initializer.is_constant ()) {
+                               error = true;
+                               Report.error (source_reference, "Static fields in compact classes cannot have non-constant initializers");
+                               return false;
+                       }
+
                        if (external) {
                                error = true;
                                Report.error (source_reference, "External fields cannot use initializers");