[vala] codegen: Don't add static modifier to abstract property setters



commit d1a3c5c59b7f993d6a116ebec8c55918856e215f
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Thu Feb 23 22:59:02 2017 +0100

    codegen: Don't add static modifier to abstract property setters
    
    https://bugzilla.gnome.org/show_bug.cgi?id=673389

 codegen/valaccodebasemodule.vala |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index b1eaf3e..6a18b88 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -1522,7 +1522,8 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                        function.modifiers |= CCodeModifiers.DEPRECATED;
                }
 
-               if (prop.is_private_symbol () || (!acc.readable && !acc.writable) || acc.access == 
SymbolAccessibility.PRIVATE) {
+               if (!prop.is_abstract
+                   && (prop.is_private_symbol () || (!acc.readable && !acc.writable) || acc.access == 
SymbolAccessibility.PRIVATE)) {
                        function.modifiers |= CCodeModifiers.STATIC;
                } else if (context.hide_internal && (prop.is_internal_symbol () || acc.access == 
SymbolAccessibility.INTERNAL)) {
                        function.modifiers |= CCodeModifiers.INTERNAL;
@@ -1619,7 +1620,8 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                                }
                        }
 
-                       if (prop.is_private_symbol () || !(acc.readable || acc.writable) || acc.access == 
SymbolAccessibility.PRIVATE) {
+                       if (!prop.is_abstract
+                           && (prop.is_private_symbol () || !(acc.readable || acc.writable) || acc.access == 
SymbolAccessibility.PRIVATE)) {
                                // accessor function should be private if the property is an internal symbol 
or it's a construct-only setter
                                function.modifiers |= CCodeModifiers.STATIC;
                        } else if (context.hide_internal && (prop.is_internal_symbol () || acc.access == 
SymbolAccessibility.INTERNAL)) {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]