--- /dev/null
+--TEST--
+Object naming collision error: class/class
+--FILE--
+<?php
+
+class A { }
+class A { }
+
+?>
+--EXPECTF--
+Fatal error: Cannot declare class A, because the name is already in use in %s on line %d
--- /dev/null
+--TEST--
+Object naming collision error: class/interface
+--FILE--
+<?php
+
+class A { }
+interface A { }
+
+?>
+--EXPECTF--
+Fatal error: Cannot declare interface A, because the name is already in use in %s on line %d
--- /dev/null
+--TEST--
+Object naming collision error: class/trait
+--FILE--
+<?php
+
+class A { }
+trait A { }
+
+?>
+--EXPECTF--
+Fatal error: Cannot declare trait A, because the name is already in use in %s on line %d
--- /dev/null
+--TEST--
+Object naming collision error: interface/interface
+--FILE--
+<?php
+
+interface A { }
+interface A { }
+
+?>
+--EXPECTF--
+Fatal error: Cannot declare interface A, because the name is already in use in %s on line %d
--- /dev/null
+--TEST--
+Object naming collision error: interface/trait
+--FILE--
+<?php
+
+interface A { }
+trait A { }
+
+?>
+--EXPECTF--
+Fatal error: Cannot declare trait A, because the name is already in use in %s on line %d
--- /dev/null
+--TEST--
+Object naming collision error: trait/trait
+--FILE--
+<?php
+
+trait A { }
+trait A { }
+
+?>
+--EXPECTF--
+Fatal error: Cannot declare trait A, because the name is already in use in %s on line %d