From: Jared Moore Date: Tue, 22 Jul 2008 01:26:40 +0000 (+0000) Subject: Support "global::" for object creation expressions. X-Git-Tag: VALA_0_3_5~35 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e761cd177c8d5ac4fa20e17dd5ab2732a3474790;p=platform%2Fupstream%2Fvala.git Support "global::" for object creation expressions. 2008-07-22 Jared Moore * vala/valaparser.vala: Support "global::" for object creation expressions. * tests/namespaces.vala: add test case svn path=/trunk/; revision=1719 --- diff --git a/ChangeLog b/ChangeLog index e88341e..1d18222 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2008-07-22 Jared Moore + * vala/valaparser.vala: + + Support "global::" for object creation expressions. + + * tests/namespaces.vala: add test case + +2008-07-22 Jared Moore + * vapi/glib-2.0.vapi: Fixed bindings for GLib.MainContext.check and GLib.MainContext.query, diff --git a/tests/namespaces.vala b/tests/namespaces.vala index 3dcbdae..67b42a7 100644 --- a/tests/namespaces.vala +++ b/tests/namespaces.vala @@ -1,11 +1,24 @@ using GLib; +public class GlobalTestClass { + public GlobalTestClass() { + } +} + namespace Maman { + public class GlobalTestClass { + public GlobalTestClass() { + stdout.printf("Incorrect class constructed"); + } + } + static int main (string[] args) { stdout.printf ("Namespace Test\n"); Bar.run (); + new global::GlobalTestClass(); + return 0; } diff --git a/vala/valaparser.vala b/vala/valaparser.vala index 30ec19a..1bddf66 100644 --- a/vala/valaparser.vala +++ b/vala/valaparser.vala @@ -2847,8 +2847,9 @@ public class Vala.Parser : CodeVisitor { MemberAccess parse_member_name () throws ParseError { var begin = get_location (); - MemberAccess expr = null; - do { + // The first member access can be global:: qualified + MemberAccess expr = (MemberAccess) parse_simple_name (); + while (accept (TokenType.DOT)) { string id = parse_identifier (); Gee.List type_arg_list = parse_type_argument_list (false); expr = new MemberAccess (expr, id, get_src (begin)); @@ -2857,7 +2858,7 @@ public class Vala.Parser : CodeVisitor { expr.add_type_argument (type_arg); } } - } while (accept (TokenType.DOT)); + } return expr; }