File tree Expand file tree Collapse file tree 2 files changed +238
-0
lines changed Expand file tree Collapse file tree 2 files changed +238
-0
lines changed Original file line number Diff line number Diff line change 1+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2+
3+ exports [` byref call result 1` ] = `
4+ Program {
5+ " children" : Array [
6+ ExpressionStatement {
7+ " expression" : Assign {
8+ " kind" : " assign" ,
9+ " left" : Variable {
10+ " curly" : false ,
11+ " kind" : " variable" ,
12+ " name" : " a" ,
13+ },
14+ " operator" : " =" ,
15+ " right" : Call {
16+ " arguments" : Array [
17+ ByRef {
18+ " kind" : " byref" ,
19+ " what" : Variable {
20+ " curly" : false ,
21+ " kind" : " variable" ,
22+ " name" : " b" ,
23+ },
24+ },
25+ ],
26+ " kind" : " call" ,
27+ " what" : ClassReference {
28+ " kind" : " classreference" ,
29+ " name" : " foo" ,
30+ " resolution" : " uqn" ,
31+ },
32+ },
33+ },
34+ " kind" : " expressionstatement" ,
35+ },
36+ ],
37+ " errors" : Array [],
38+ " kind" : " program" ,
39+ }
40+ ` ;
41+
42+ exports [` byref function definition 1` ] = `
43+ Program {
44+ " children" : Array [
45+ _Function {
46+ " arguments" : Array [
47+ Parameter {
48+ " byref" : true ,
49+ " kind" : " parameter" ,
50+ " name" : Identifier {
51+ " kind" : " identifier" ,
52+ " name" : " bar" ,
53+ },
54+ " nullable" : false ,
55+ " type" : null ,
56+ " value" : null ,
57+ " variadic" : false ,
58+ },
59+ ],
60+ " body" : Block {
61+ " children" : Array [],
62+ " kind" : " block" ,
63+ },
64+ " byref" : true ,
65+ " kind" : " function" ,
66+ " name" : Identifier {
67+ " kind" : " identifier" ,
68+ " name" : " foo" ,
69+ },
70+ " nullable" : false ,
71+ " type" : null ,
72+ },
73+ ],
74+ " errors" : Array [],
75+ " kind" : " program" ,
76+ }
77+ ` ;
78+
79+ exports [` byref new class 1` ] = `
80+ Program {
81+ " children" : Array [
82+ ExpressionStatement {
83+ " expression" : Assign {
84+ " kind" : " assign" ,
85+ " left" : Variable {
86+ " curly" : false ,
87+ " kind" : " variable" ,
88+ " name" : " a" ,
89+ },
90+ " operator" : " =" ,
91+ " right" : New {
92+ " arguments" : Array [],
93+ " kind" : " new" ,
94+ " what" : ClassReference {
95+ " kind" : " classreference" ,
96+ " name" : " foo" ,
97+ " resolution" : " uqn" ,
98+ },
99+ },
100+ },
101+ " kind" : " expressionstatement" ,
102+ },
103+ ],
104+ " errors" : Array [],
105+ " kind" : " program" ,
106+ }
107+ ` ;
108+
109+ exports [` byref offset lookup 1` ] = `
110+ Program {
111+ " children" : Array [
112+ ExpressionStatement {
113+ " expression" : OffsetLookup {
114+ " kind" : " offsetlookup" ,
115+ " offset" : ByRef {
116+ " kind" : " byref" ,
117+ " what" : Variable {
118+ " curly" : false ,
119+ " kind" : " variable" ,
120+ " name" : " bar" ,
121+ },
122+ },
123+ " what" : Variable {
124+ " curly" : false ,
125+ " kind" : " variable" ,
126+ " name" : " foo" ,
127+ },
128+ },
129+ " kind" : " expressionstatement" ,
130+ },
131+ ],
132+ " errors" : Array [],
133+ " kind" : " program" ,
134+ }
135+ ` ;
136+
137+ exports [` byref return statement 1` ] = `
138+ Program {
139+ " children" : Array [
140+ Return {
141+ " expr" : ByRef {
142+ " kind" : " byref" ,
143+ " what" : Variable {
144+ " curly" : false ,
145+ " kind" : " variable" ,
146+ " name" : " foo" ,
147+ },
148+ },
149+ " kind" : " return" ,
150+ },
151+ ],
152+ " errors" : Array [],
153+ " kind" : " program" ,
154+ }
155+ ` ;
156+
157+ exports [` byref static lookup 1` ] = `
158+ Program {
159+ " children" : Array [
160+ ExpressionStatement {
161+ " expression" : ByRef {
162+ " kind" : " byref" ,
163+ " what" : StaticLookup {
164+ " kind" : " staticlookup" ,
165+ " offset" : Variable {
166+ " curly" : false ,
167+ " kind" : " variable" ,
168+ " name" : " bar" ,
169+ },
170+ " what" : ClassReference {
171+ " kind" : " classreference" ,
172+ " name" : " foo" ,
173+ " resolution" : " uqn" ,
174+ },
175+ },
176+ },
177+ " kind" : " expressionstatement" ,
178+ },
179+ ],
180+ " errors" : Array [],
181+ " kind" : " program" ,
182+ }
183+ ` ;
184+
185+ exports [` byref variable 1` ] = `
186+ Program {
187+ " children" : Array [
188+ ExpressionStatement {
189+ " expression" : ByRef {
190+ " kind" : " byref" ,
191+ " what" : Variable {
192+ " curly" : false ,
193+ " kind" : " variable" ,
194+ " name" : " foo" ,
195+ },
196+ },
197+ " kind" : " expressionstatement" ,
198+ },
199+ ],
200+ " errors" : Array [],
201+ " kind" : " program" ,
202+ }
203+ ` ;
Original file line number Diff line number Diff line change 1+ const parser = require ( '../main' ) ;
2+
3+ describe ( 'byref' , ( ) => {
4+ it ( 'variable' , ( ) => {
5+ expect ( parser . parseEval ( '&$foo;' ) ) . toMatchSnapshot ( ) ;
6+ } ) ;
7+ it ( 'static lookup' , ( ) => {
8+ expect ( parser . parseEval ( '&foo::$bar;' ) ) . toMatchSnapshot ( ) ;
9+ } ) ;
10+ it ( 'offset lookup' , ( ) => {
11+ expect ( parser . parseEval ( '$foo[&$bar];' ) ) . toMatchSnapshot ( ) ;
12+ } ) ;
13+ it ( 'new class' , ( ) => {
14+
15+ expect (
16+ parser . parseEval ( '$a =& new foo();' , {
17+ parser : {
18+ php7 : false
19+ }
20+ }
21+ ) ) . toMatchSnapshot ( ) ;
22+ expect ( ( ) => {
23+ parser . parseEval ( '$a =& new foo();' ) ;
24+ } ) . toThrow ( 'Parse Error : syntax error, unexpected \'new\' (T_NEW) on line 1' ) ;
25+ } ) ;
26+ it ( 'call result' , ( ) => {
27+ expect ( parser . parseEval ( '$a =& foo( &$b );' ) ) . toMatchSnapshot ( ) ;
28+ } ) ;
29+ it ( 'return statement' , ( ) => {
30+ expect ( parser . parseEval ( 'return &$foo;' ) ) . toMatchSnapshot ( ) ;
31+ } ) ;
32+ it ( 'function definition' , ( ) => {
33+ expect ( parser . parseEval ( 'function &foo( &$bar ) { }' ) ) . toMatchSnapshot ( ) ;
34+ } ) ;
35+ } ) ;
You can’t perform that action at this time.
0 commit comments