From: Jürg Billeter Date: Tue, 3 Apr 2007 11:23:40 +0000 (+0000) Subject: some fixes for abstract properties improve default cname X-Git-Tag: VALA_0_0_9~25 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=813b94f912f09b6671c93d59d3155d996d2973e3;p=platform%2Fupstream%2Fvala.git some fixes for abstract properties improve default cname 2007-04-03 Jürg Billeter * vala/valasymbolbuilder.vala, vala/valacodegenerator.vala: some fixes for abstract properties * vala/valamethod.vala: improve default cname svn path=/trunk/; revision=271 --- diff --git a/vala/ChangeLog b/vala/ChangeLog index 787b45c..d152495 100644 --- a/vala/ChangeLog +++ b/vala/ChangeLog @@ -1,5 +1,11 @@ 2007-04-03 Jürg Billeter + * vala/valasymbolbuilder.vala, vala/valacodegenerator.vala: some fixes + for abstract properties + * vala/valamethod.vala: improve default cname + +2007-04-03 Jürg Billeter + * vapi/glib-2.0.vala: extend unicode support, add GRegex 2007-03-28 Raffaele Sandrini diff --git a/vala/vala/valacodegenerator.vala b/vala/vala/valacodegenerator.vala index 2685aaa..91ddf2a 100644 --- a/vala/vala/valacodegenerator.vala +++ b/vala/vala/valacodegenerator.vala @@ -536,7 +536,7 @@ public class Vala.CodeGenerator : CodeVisitor { /* create properties */ var props = cl.get_properties (); foreach (Property prop in props) { - if (prop.base_property != null || prop.base_interface_property != null) { + if (prop.overrides || prop.base_interface_property != null) { var cinst = new CCodeFunctionCall (new CCodeIdentifier ("g_object_class_override_property")); cinst.add_argument (ccall); cinst.add_argument (new CCodeConstant (prop.get_upper_case_cname ())); @@ -724,7 +724,7 @@ public class Vala.CodeGenerator : CodeVisitor { var cswitch = new CCodeSwitchStatement (new CCodeIdentifier ("property_id")); var props = cl.get_properties (); foreach (Property prop in props) { - if (prop.get_accessor == null) { + if (prop.get_accessor == null || prop.is_abstract) { continue; } @@ -772,7 +772,7 @@ public class Vala.CodeGenerator : CodeVisitor { var cswitch = new CCodeSwitchStatement (new CCodeIdentifier ("property_id")); var props = cl.get_properties (); foreach (Property prop in props) { - if (prop.set_accessor == null) { + if (prop.set_accessor == null || prop.is_abstract) { continue; } @@ -1537,9 +1537,7 @@ public class Vala.CodeGenerator : CodeVisitor { } public override void visit_end_property (Property! prop) { - if (!prop.is_abstract) { - prop_enum.add_value (prop.get_upper_case_cname (), null); - } + prop_enum.add_value (prop.get_upper_case_cname (), null); } public override void visit_begin_property_accessor (PropertyAccessor! acc) { diff --git a/vala/vala/valamethod.vala b/vala/vala/valamethod.vala index 91c8808..0e9dd4e 100644 --- a/vala/vala/valamethod.vala +++ b/vala/vala/valamethod.vala @@ -219,7 +219,11 @@ public class Vala.Method : Member, Invokable { public virtual ref string! get_default_cname () { var parent = symbol.parent_symbol.node; if (parent is DataType) { - return "%s%s".printf (((DataType) parent).get_lower_case_cprefix (), name); + if (name.has_prefix ("_")) { + return "_%s%s".printf (((DataType) parent).get_lower_case_cprefix (), name.offset (1)); + } else { + return "%s%s".printf (((DataType) parent).get_lower_case_cprefix (), name); + } } else if (parent is Namespace) { return "%s%s".printf (((Namespace) parent).get_lower_case_cprefix (), name); } else { diff --git a/vala/vala/valasymbolbuilder.vala b/vala/vala/valasymbolbuilder.vala index 29fd518..9336241 100644 --- a/vala/vala/valasymbolbuilder.vala +++ b/vala/vala/valasymbolbuilder.vala @@ -295,7 +295,7 @@ public class Vala.SymbolBuilder : CodeVisitor { var prop = (Property) acc.symbol.parent_symbol.node; - if (prop.interface_only || prop.symbol.parent_symbol.node is Interface) { + if (prop.interface_only || prop.is_abstract) { return; }