--- /dev/null
+--TEST--
+Nested batch use statements syntax error
+--FILE--
+<?php
+namespace Foo\Bar\Baz {
+ class A {}
+ class B {}
+ namespace B {
+ class C {}
+ class D {}
+ class E {}
+ }
+}
+namespace Fiz\Biz\Buz {
+ use Foo\Bar\Baz {
+ A,
+ B {
+ C
+ D,
+ E
+ }
+ };
+}
+?>
+--EXPECTF--
+Parse error: syntax error, unexpected '{', expecting ',' or '}' in %sns_088.php on line 14
--- /dev/null
+--TEST--
+Batch use statements
+--FILE--
+<?php
+namespace Foo\Bar\Baz {
+ function foo(){echo __FUNCTION__,"\n";}
+ function bar(){echo __FUNCTION__,"\n";}
+ const FOO = 0;
+ const BAR = 1;
+ class A { function __construct() {echo __METHOD__,"\n";} }
+ class B { function __construct() {echo __METHOD__,"\n";} }
+ class C { function __construct() {echo __METHOD__,"\n";} }
+ class D { function __construct() {echo __METHOD__,"\n";} }
+}
+namespace Fiz\Biz\Buz {
+
+ use Foo\Bar\Baz {
+ A,
+ B,
+ C as AC,
+ D,
+ function foo,
+ function bar as buz,
+ const FOO,
+ const BAR AS BOZ
+ };
+
+ class C { function __construct() {echo __METHOD__,"\n";}}
+ function bar(){echo __FUNCTION__,"\n";}
+ const BAR = 100;
+
+ new A;
+ new B;
+ new AC;
+ new D;
+ new C;
+ foo();
+ buz();
+ bar();
+ var_dump(FOO);
+ var_dump(BOZ);
+ var_dump(BAR);
+}
+
+--EXPECTF--
+Foo\Bar\Baz\A::__construct
+Foo\Bar\Baz\B::__construct
+Foo\Bar\Baz\C::__construct
+Foo\Bar\Baz\D::__construct
+Fiz\Biz\Buz\C::__construct
+Foo\Bar\Baz\foo
+Foo\Bar\Baz\bar
+Fiz\Biz\Buz\bar
+int(0)
+int(1)
+int(100)
--- /dev/null
+--TEST--
+Batch use statements declared inline
+--FILE--
+<?php
+namespace Foo\Bar\Baz {
+ function foo(){echo __FUNCTION__,"\n";}
+ function bar(){echo __FUNCTION__,"\n";}
+ const FOO = 0;
+ const BAR = 1;
+ class A { function __construct() {echo __METHOD__,"\n";} }
+ class B { function __construct() {echo __METHOD__,"\n";} }
+ class C { function __construct() {echo __METHOD__,"\n";} }
+ class D { function __construct() {echo __METHOD__,"\n";} }
+}
+namespace Fiz\Biz\Buz {
+
+ use Foo\Bar\Baz { A, B, C as AC, D };
+ use Foo\Bar\Baz { function foo, function bar as buz, const FOO, const BAR AS BOZ };
+
+ class C { function __construct() {echo __METHOD__,"\n";}}
+ function bar(){echo __FUNCTION__,"\n";}
+ const BAR = 100;
+
+ new A;
+ new B;
+ new AC;
+ new D;
+ new C;
+ foo();
+ buz();
+ bar();
+ var_dump(FOO);
+ var_dump(BOZ);
+ var_dump(BAR);
+}
+
+--EXPECTF--
+Foo\Bar\Baz\A::__construct
+Foo\Bar\Baz\B::__construct
+Foo\Bar\Baz\C::__construct
+Foo\Bar\Baz\D::__construct
+Fiz\Biz\Buz\C::__construct
+Foo\Bar\Baz\foo
+Foo\Bar\Baz\bar
+Fiz\Biz\Buz\bar
+int(0)
+int(1)
+int(100)
--- /dev/null
+--TEST--
+Batch use statements with compound namespaces
+--FILE--
+<?php
+namespace Foo\Bar {
+ class A { function __construct() {echo __METHOD__,"\n";} }
+}
+namespace Foo\Bar\Baz {
+ class B { function __construct() {echo __METHOD__,"\n";} }
+}
+namespace Fiz\Biz\Buz {
+
+ use Foo\Bar { A, Baz\B };
+ new A;
+ new B;
+}
+
+--EXPECTF--
+Foo\Bar\A::__construct
+Foo\Bar\Baz\B::__construct
\ No newline at end of file