From: Jürg Billeter Date: Tue, 14 Apr 2009 15:38:50 +0000 (+0200) Subject: Use fully-qualified name in the code writer X-Git-Tag: 0.7.1~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=97d1920e65b9744dcaf0fbc3360c402ebc5ec84b;p=thirdparty%2Fvala.git Use fully-qualified name in the code writer Fixes bug 516859. --- diff --git a/vala/valamemberaccess.vala b/vala/valamemberaccess.vala index 4f99208cf..0469026c8 100644 --- a/vala/valamemberaccess.vala +++ b/vala/valamemberaccess.vala @@ -133,10 +133,34 @@ public class Vala.MemberAccess : Expression { } public override string to_string () { - if (inner == null) { - return member_name; + bool instance = true; + if (symbol_reference is Field) { + var f = (Field) symbol_reference; + instance = (f.binding == MemberBinding.INSTANCE); + } else if (symbol_reference is Method) { + var m = (Method) symbol_reference; + if (!(m is CreationMethod)) { + instance = (m.binding == MemberBinding.INSTANCE); + } + } else if (symbol_reference is Property) { + var prop = (Property) symbol_reference; + instance = (prop.binding == MemberBinding.INSTANCE); + } else if (symbol_reference is EnumValue) { + instance = false; + } else if (symbol_reference is ErrorCode) { + instance = false; + } + + if (instance) { + if (inner == null) { + return member_name; + } else { + return "%s.%s".printf (inner.to_string (), member_name); + } } else { - return "%s.%s".printf (inner.to_string (), member_name); + // ensure to always use fully-qualified name + // to refer to static members + return symbol_reference.get_full_name (); } }