aboutsummaryrefslogtreecommitdiffstats
path: root/tests/query/highlights/php/namespaces.php
blob: 1c96a95b29a7f0d46b058d71252bdbacef1a40f3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<?php

namespace Foo\Bar;
//        ^^^ @module
//            ^^^ @module

use Baz as Baaz;
//  ^^^ @type
//         ^^^^ @type
use Foo\Baz as Baaz;
//  ^^^ @module
//      ^^^ @type
//             ^^^^ @type

use Foo\{Bar, Baz as Baaz};
//       ^^^ @type
//            ^^^ @type
//                   ^^^^ @type

use function foo as fooo;
//           ^^^ @function
//                  ^^^^ @function
//
use function Foo\foo as fooo;
//           ^^^ @module
//               ^^^ @function
//                      ^^^^ @function
use function Foo\{bar, foo as fooo};
//                ^^^ @function
//                     ^^^ @function
//                            ^^^^ @function
use const FOO as FOOO;
//        ^^^ @constant
//               ^^^^ @constant
use const Foo\FOO as FOOO;
//        ^^^ @module
//            ^^^ @constant
//                   ^^^^ @constant
use const Foo\{FOO as FOOO, BAR};
//             ^^^ @constant
//                    ^^^^ @constant
//                          ^^^ @constant

use Foo\Baz\{
//  ^^^ @module
//      ^^^ @module
  Bar as Barr,
//^^^ @type
//       ^^^^ @type
  Foo\Bar as Barr,
//^^^ @module
//    ^^^ @type
//           ^^^^ @type
  function foo as fooo,
//         ^^^ @function
//                ^^^^ @function
  function Foo\foo as fooo,
//         ^^^ @module
//             ^^^ @function
//                    ^^^^ @function
  const FOO as FOOO,
//      ^^^ @constant
//             ^^^^ @constant
  const Foo\FOO as FOOO,
//      ^^^ @module
//          ^^^ @constant
//                 ^^^^ @constant
};

class Foo {
    public function foo() {
        Bar::foo();
//      ^^^ @type
//           ^^^ @function.call
        \Bar::foo();
//       ^^^ @type
//            ^^^ @function.call
        Foo\Bar::foo();
//      ^^^ @module
//          ^^^ @type
//               ^^^ @function.call
        \Foo\Bar::foo();
//       ^^^ @module
//           ^^^ @type
//                ^^^ @function.call
        namespace\Bar::foo();
//      ^^^^^^^^^ @module.builtin
//                ^^^ @type
//                     ^^^ @function.call
        namespace\Foo\Bar::foo();
//      ^^^^^^^^^ @module.builtin
//                ^^^ @module
//                    ^^^ @type
//                         ^^^ @function.call
        new Bar();
//          ^^^ @constructor
        new \Bar();
//           ^^^ @constructor
        new Foo\Bar();
//          ^^^ @module
//              ^^^ @constructor
        new \Foo\Bar();
//           ^^^ @module
//               ^^^ @constructor
        new namespace\Bar();
//          ^^^^^^^^^ @module.builtin
//                    ^^^ @constructor
        new namespace\Foo\Bar();
//          ^^^^^^^^^ @module.builtin
//                    ^^^ @module
//                        ^^^ @constructor
        BAZ;
//      ^^^ @constant
        \BAZ;
//       ^^^ @constant
        Foo\BAZ;
//      ^^^ @module
//          ^^^ @constant
        \Foo\BAZ;
//       ^^^ @module
//           ^^^ @constant
        namespace\BAZ;
//      ^^^^^^^^^ @module.builtin
//                ^^^ @constant
        namespace\Foo\BAZ;
//      ^^^^^^^^^ @module.builtin
//                ^^^ @module
//                    ^^^ @constant
        foo();
//      ^^^ @function.call
        \foo();
//       ^^^ @function.call
        Foo\foo();
//      ^^^ @module
//          ^^^ @function.call
        \Foo\foo();
//       ^^^ @module
//           ^^^ @function.call
        namespace\foo();
//      ^^^^^^^^^ @module.builtin
//                ^^^ @function.call
        namespace\Foo\foo();
//      ^^^^^^^^^ @module.builtin
//                ^^^ @module
//                    ^^^ @function.call
  }
}