2 * Copyright (c) 2016, Facebook, Inc.
5 * This source code is licensed under the MIT license found in the
6 * LICENSE file in the "hack" directory of this source tree. An additional
11 * THIS FILE IS @generated; DO NOT EDIT IT
12 * To regenerate this file, run
14 * buck run //hphp/hack/src:generate_full_fidelity
19 use smart_constructors::SmartConstructors;
23 fn is_zero(s: &Self::S) -> bool;
25 fn flatten(&self, lst: Vec<Self::S>) -> Self::S;
28 pub trait FlattenSmartConstructors<'src, State>
29 : SmartConstructors<'src, State> + FlattenOp<S=<Self as SmartConstructors<'src, State>>::R>
31 fn make_missing(&mut self, _: usize) -> Self::R {
35 fn make_token(&mut self, _: Self::Token) -> Self::R {
39 fn make_list(&mut self, _: Vec<Self::R>, _: usize) -> Self::R {
43 fn make_end_of_file(&mut self, arg0: Self::R) -> Self::R {
44 if Self::is_zero(&arg0) {
47 self.flatten(vec!(arg0))
51 fn make_script(&mut self, arg0: Self::R) -> Self::R {
52 if Self::is_zero(&arg0) {
55 self.flatten(vec!(arg0))
59 fn make_qualified_name(&mut self, arg0: Self::R) -> Self::R {
60 if Self::is_zero(&arg0) {
63 self.flatten(vec!(arg0))
67 fn make_simple_type_specifier(&mut self, arg0: Self::R) -> Self::R {
68 if Self::is_zero(&arg0) {
71 self.flatten(vec!(arg0))
75 fn make_literal_expression(&mut self, arg0: Self::R) -> Self::R {
76 if Self::is_zero(&arg0) {
79 self.flatten(vec!(arg0))
83 fn make_prefixed_string_expression(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
84 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
87 self.flatten(vec!(arg0, arg1))
91 fn make_variable_expression(&mut self, arg0: Self::R) -> Self::R {
92 if Self::is_zero(&arg0) {
95 self.flatten(vec!(arg0))
99 fn make_pipe_variable_expression(&mut self, arg0: Self::R) -> Self::R {
100 if Self::is_zero(&arg0) {
103 self.flatten(vec!(arg0))
107 fn make_file_attribute_specification(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
108 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
111 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
115 fn make_enum_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R, arg6: Self::R, arg7: Self::R, arg8: Self::R) -> Self::R {
116 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) && Self::is_zero(&arg6) && Self::is_zero(&arg7) && Self::is_zero(&arg8) {
119 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8))
123 fn make_enumerator(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
124 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
127 self.flatten(vec!(arg0, arg1, arg2, arg3))
131 fn make_record_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R, arg6: Self::R, arg7: Self::R, arg8: Self::R) -> Self::R {
132 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) && Self::is_zero(&arg6) && Self::is_zero(&arg7) && Self::is_zero(&arg8) {
135 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8))
139 fn make_record_field(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
140 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
143 self.flatten(vec!(arg0, arg1, arg2, arg3))
147 fn make_alias_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R, arg6: Self::R, arg7: Self::R) -> Self::R {
148 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) && Self::is_zero(&arg6) && Self::is_zero(&arg7) {
151 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7))
155 fn make_property_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
156 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
159 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
163 fn make_property_declarator(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
164 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
167 self.flatten(vec!(arg0, arg1))
171 fn make_namespace_declaration(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
172 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
175 self.flatten(vec!(arg0, arg1))
179 fn make_namespace_declaration_header(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
180 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
183 self.flatten(vec!(arg0, arg1))
187 fn make_namespace_body(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
188 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
191 self.flatten(vec!(arg0, arg1, arg2))
195 fn make_namespace_empty_body(&mut self, arg0: Self::R) -> Self::R {
196 if Self::is_zero(&arg0) {
199 self.flatten(vec!(arg0))
203 fn make_namespace_use_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
204 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
207 self.flatten(vec!(arg0, arg1, arg2, arg3))
211 fn make_namespace_group_use_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R, arg6: Self::R) -> Self::R {
212 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) && Self::is_zero(&arg6) {
215 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5, arg6))
219 fn make_namespace_use_clause(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
220 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
223 self.flatten(vec!(arg0, arg1, arg2, arg3))
227 fn make_function_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
228 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
231 self.flatten(vec!(arg0, arg1, arg2))
235 fn make_function_declaration_header(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R, arg6: Self::R, arg7: Self::R, arg8: Self::R, arg9: Self::R) -> Self::R {
236 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) && Self::is_zero(&arg6) && Self::is_zero(&arg7) && Self::is_zero(&arg8) && Self::is_zero(&arg9) {
239 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9))
243 fn make_where_clause(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
244 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
247 self.flatten(vec!(arg0, arg1))
251 fn make_where_constraint(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
252 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
255 self.flatten(vec!(arg0, arg1, arg2))
259 fn make_methodish_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
260 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
263 self.flatten(vec!(arg0, arg1, arg2, arg3))
267 fn make_methodish_trait_resolution(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
268 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
271 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
275 fn make_classish_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R, arg6: Self::R, arg7: Self::R, arg8: Self::R, arg9: Self::R, arg10: Self::R, arg11: Self::R) -> Self::R {
276 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) && Self::is_zero(&arg6) && Self::is_zero(&arg7) && Self::is_zero(&arg8) && Self::is_zero(&arg9) && Self::is_zero(&arg10) && Self::is_zero(&arg11) {
279 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11))
283 fn make_classish_body(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
284 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
287 self.flatten(vec!(arg0, arg1, arg2))
291 fn make_trait_use_precedence_item(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
292 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
295 self.flatten(vec!(arg0, arg1, arg2))
299 fn make_trait_use_alias_item(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
300 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
303 self.flatten(vec!(arg0, arg1, arg2, arg3))
307 fn make_trait_use_conflict_resolution(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
308 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
311 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
315 fn make_trait_use(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
316 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
319 self.flatten(vec!(arg0, arg1, arg2))
323 fn make_require_clause(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
324 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
327 self.flatten(vec!(arg0, arg1, arg2, arg3))
331 fn make_const_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
332 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
335 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
339 fn make_constant_declarator(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
340 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
343 self.flatten(vec!(arg0, arg1))
347 fn make_type_const_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R, arg6: Self::R, arg7: Self::R, arg8: Self::R, arg9: Self::R) -> Self::R {
348 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) && Self::is_zero(&arg6) && Self::is_zero(&arg7) && Self::is_zero(&arg8) && Self::is_zero(&arg9) {
351 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9))
355 fn make_decorated_expression(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
356 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
359 self.flatten(vec!(arg0, arg1))
363 fn make_parameter_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R) -> Self::R {
364 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) {
367 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5))
371 fn make_variadic_parameter(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
372 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
375 self.flatten(vec!(arg0, arg1, arg2))
379 fn make_old_attribute_specification(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
380 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
383 self.flatten(vec!(arg0, arg1, arg2))
387 fn make_attribute_specification(&mut self, arg0: Self::R) -> Self::R {
388 if Self::is_zero(&arg0) {
391 self.flatten(vec!(arg0))
395 fn make_attribute(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
396 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
399 self.flatten(vec!(arg0, arg1))
403 fn make_inclusion_expression(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
404 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
407 self.flatten(vec!(arg0, arg1))
411 fn make_inclusion_directive(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
412 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
415 self.flatten(vec!(arg0, arg1))
419 fn make_compound_statement(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
420 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
423 self.flatten(vec!(arg0, arg1, arg2))
427 fn make_expression_statement(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
428 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
431 self.flatten(vec!(arg0, arg1))
435 fn make_markup_section(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
436 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
439 self.flatten(vec!(arg0, arg1))
443 fn make_markup_suffix(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
444 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
447 self.flatten(vec!(arg0, arg1))
451 fn make_unset_statement(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
452 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
455 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
459 fn make_using_statement_block_scoped(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R) -> Self::R {
460 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) {
463 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5))
467 fn make_using_statement_function_scoped(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
468 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
471 self.flatten(vec!(arg0, arg1, arg2, arg3))
475 fn make_while_statement(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
476 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
479 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
483 fn make_if_statement(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R, arg6: Self::R) -> Self::R {
484 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) && Self::is_zero(&arg6) {
487 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5, arg6))
491 fn make_elseif_clause(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
492 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
495 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
499 fn make_else_clause(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
500 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
503 self.flatten(vec!(arg0, arg1))
507 fn make_try_statement(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
508 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
511 self.flatten(vec!(arg0, arg1, arg2, arg3))
515 fn make_catch_clause(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R) -> Self::R {
516 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) {
519 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5))
523 fn make_finally_clause(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
524 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
527 self.flatten(vec!(arg0, arg1))
531 fn make_do_statement(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R, arg6: Self::R) -> Self::R {
532 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) && Self::is_zero(&arg6) {
535 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5, arg6))
539 fn make_for_statement(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R, arg6: Self::R, arg7: Self::R, arg8: Self::R) -> Self::R {
540 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) && Self::is_zero(&arg6) && Self::is_zero(&arg7) && Self::is_zero(&arg8) {
543 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8))
547 fn make_foreach_statement(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R, arg6: Self::R, arg7: Self::R, arg8: Self::R, arg9: Self::R) -> Self::R {
548 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) && Self::is_zero(&arg6) && Self::is_zero(&arg7) && Self::is_zero(&arg8) && Self::is_zero(&arg9) {
551 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9))
555 fn make_switch_statement(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R, arg6: Self::R) -> Self::R {
556 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) && Self::is_zero(&arg6) {
559 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5, arg6))
563 fn make_switch_section(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
564 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
567 self.flatten(vec!(arg0, arg1, arg2))
571 fn make_switch_fallthrough(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
572 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
575 self.flatten(vec!(arg0, arg1))
579 fn make_case_label(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
580 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
583 self.flatten(vec!(arg0, arg1, arg2))
587 fn make_default_label(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
588 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
591 self.flatten(vec!(arg0, arg1))
595 fn make_return_statement(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
596 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
599 self.flatten(vec!(arg0, arg1, arg2))
603 fn make_goto_label(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
604 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
607 self.flatten(vec!(arg0, arg1))
611 fn make_goto_statement(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
612 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
615 self.flatten(vec!(arg0, arg1, arg2))
619 fn make_throw_statement(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
620 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
623 self.flatten(vec!(arg0, arg1, arg2))
627 fn make_break_statement(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
628 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
631 self.flatten(vec!(arg0, arg1))
635 fn make_continue_statement(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
636 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
639 self.flatten(vec!(arg0, arg1))
643 fn make_echo_statement(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
644 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
647 self.flatten(vec!(arg0, arg1, arg2))
651 fn make_concurrent_statement(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
652 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
655 self.flatten(vec!(arg0, arg1))
659 fn make_simple_initializer(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
660 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
663 self.flatten(vec!(arg0, arg1))
667 fn make_anonymous_class(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R, arg6: Self::R, arg7: Self::R, arg8: Self::R) -> Self::R {
668 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) && Self::is_zero(&arg6) && Self::is_zero(&arg7) && Self::is_zero(&arg8) {
671 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8))
675 fn make_anonymous_function(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R, arg6: Self::R, arg7: Self::R, arg8: Self::R, arg9: Self::R, arg10: Self::R) -> Self::R {
676 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) && Self::is_zero(&arg6) && Self::is_zero(&arg7) && Self::is_zero(&arg8) && Self::is_zero(&arg9) && Self::is_zero(&arg10) {
679 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10))
683 fn make_anonymous_function_use_clause(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
684 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
687 self.flatten(vec!(arg0, arg1, arg2, arg3))
691 fn make_lambda_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
692 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
695 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
699 fn make_lambda_signature(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
700 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
703 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
707 fn make_cast_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
708 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
711 self.flatten(vec!(arg0, arg1, arg2, arg3))
715 fn make_scope_resolution_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
716 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
719 self.flatten(vec!(arg0, arg1, arg2))
723 fn make_member_selection_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
724 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
727 self.flatten(vec!(arg0, arg1, arg2))
731 fn make_safe_member_selection_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
732 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
735 self.flatten(vec!(arg0, arg1, arg2))
739 fn make_embedded_member_selection_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
740 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
743 self.flatten(vec!(arg0, arg1, arg2))
747 fn make_yield_expression(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
748 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
751 self.flatten(vec!(arg0, arg1))
755 fn make_prefix_unary_expression(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
756 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
759 self.flatten(vec!(arg0, arg1))
763 fn make_postfix_unary_expression(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
764 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
767 self.flatten(vec!(arg0, arg1))
771 fn make_binary_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
772 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
775 self.flatten(vec!(arg0, arg1, arg2))
779 fn make_is_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
780 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
783 self.flatten(vec!(arg0, arg1, arg2))
787 fn make_as_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
788 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
791 self.flatten(vec!(arg0, arg1, arg2))
795 fn make_nullable_as_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
796 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
799 self.flatten(vec!(arg0, arg1, arg2))
803 fn make_conditional_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
804 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
807 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
811 fn make_eval_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
812 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
815 self.flatten(vec!(arg0, arg1, arg2, arg3))
819 fn make_define_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
820 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
823 self.flatten(vec!(arg0, arg1, arg2, arg3))
827 fn make_isset_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
828 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
831 self.flatten(vec!(arg0, arg1, arg2, arg3))
835 fn make_function_call_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
836 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
839 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
843 fn make_function_pointer_expression(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
844 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
847 self.flatten(vec!(arg0, arg1))
851 fn make_parenthesized_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
852 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
855 self.flatten(vec!(arg0, arg1, arg2))
859 fn make_braced_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
860 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
863 self.flatten(vec!(arg0, arg1, arg2))
867 fn make_embedded_braced_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
868 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
871 self.flatten(vec!(arg0, arg1, arg2))
875 fn make_list_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
876 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
879 self.flatten(vec!(arg0, arg1, arg2, arg3))
883 fn make_collection_literal_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
884 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
887 self.flatten(vec!(arg0, arg1, arg2, arg3))
891 fn make_object_creation_expression(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
892 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
895 self.flatten(vec!(arg0, arg1))
899 fn make_constructor_call(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
900 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
903 self.flatten(vec!(arg0, arg1, arg2, arg3))
907 fn make_record_creation_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
908 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
911 self.flatten(vec!(arg0, arg1, arg2, arg3))
915 fn make_array_intrinsic_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
916 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
919 self.flatten(vec!(arg0, arg1, arg2, arg3))
923 fn make_darray_intrinsic_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
924 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
927 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
931 fn make_dictionary_intrinsic_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
932 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
935 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
939 fn make_keyset_intrinsic_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
940 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
943 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
947 fn make_varray_intrinsic_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
948 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
951 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
955 fn make_vector_intrinsic_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
956 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
959 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
963 fn make_element_initializer(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
964 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
967 self.flatten(vec!(arg0, arg1, arg2))
971 fn make_subscript_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
972 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
975 self.flatten(vec!(arg0, arg1, arg2, arg3))
979 fn make_embedded_subscript_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
980 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
983 self.flatten(vec!(arg0, arg1, arg2, arg3))
987 fn make_awaitable_creation_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
988 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
991 self.flatten(vec!(arg0, arg1, arg2))
995 fn make_xhp_children_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
996 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
999 self.flatten(vec!(arg0, arg1, arg2))
1003 fn make_xhp_children_parenthesized_list(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
1004 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
1007 self.flatten(vec!(arg0, arg1, arg2))
1011 fn make_xhp_category_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
1012 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
1015 self.flatten(vec!(arg0, arg1, arg2))
1019 fn make_xhp_enum_type(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
1020 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
1023 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
1027 fn make_xhp_lateinit(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
1028 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
1031 self.flatten(vec!(arg0, arg1))
1035 fn make_xhp_required(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
1036 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
1039 self.flatten(vec!(arg0, arg1))
1043 fn make_xhp_class_attribute_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
1044 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
1047 self.flatten(vec!(arg0, arg1, arg2))
1051 fn make_xhp_class_attribute(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
1052 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
1055 self.flatten(vec!(arg0, arg1, arg2, arg3))
1059 fn make_xhp_simple_class_attribute(&mut self, arg0: Self::R) -> Self::R {
1060 if Self::is_zero(&arg0) {
1063 self.flatten(vec!(arg0))
1067 fn make_xhp_simple_attribute(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
1068 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
1071 self.flatten(vec!(arg0, arg1, arg2))
1075 fn make_xhp_spread_attribute(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
1076 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
1079 self.flatten(vec!(arg0, arg1, arg2, arg3))
1083 fn make_xhp_open(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
1084 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
1087 self.flatten(vec!(arg0, arg1, arg2, arg3))
1091 fn make_xhp_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
1092 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
1095 self.flatten(vec!(arg0, arg1, arg2))
1099 fn make_xhp_close(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
1100 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
1103 self.flatten(vec!(arg0, arg1, arg2))
1107 fn make_type_constant(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
1108 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
1111 self.flatten(vec!(arg0, arg1, arg2))
1115 fn make_pu_access(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
1116 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
1119 self.flatten(vec!(arg0, arg1, arg2))
1123 fn make_vector_type_specifier(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
1124 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
1127 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
1131 fn make_keyset_type_specifier(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
1132 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
1135 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
1139 fn make_tuple_type_explicit_specifier(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
1140 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
1143 self.flatten(vec!(arg0, arg1, arg2, arg3))
1147 fn make_varray_type_specifier(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
1148 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
1151 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
1155 fn make_vector_array_type_specifier(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
1156 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
1159 self.flatten(vec!(arg0, arg1, arg2, arg3))
1163 fn make_type_parameter(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R) -> Self::R {
1164 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) {
1167 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5))
1171 fn make_type_constraint(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
1172 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
1175 self.flatten(vec!(arg0, arg1))
1179 fn make_darray_type_specifier(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R, arg6: Self::R) -> Self::R {
1180 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) && Self::is_zero(&arg6) {
1183 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5, arg6))
1187 fn make_map_array_type_specifier(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R) -> Self::R {
1188 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) {
1191 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5))
1195 fn make_dictionary_type_specifier(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
1196 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
1199 self.flatten(vec!(arg0, arg1, arg2, arg3))
1203 fn make_closure_type_specifier(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R, arg6: Self::R, arg7: Self::R) -> Self::R {
1204 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) && Self::is_zero(&arg6) && Self::is_zero(&arg7) {
1207 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7))
1211 fn make_closure_parameter_type_specifier(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
1212 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
1215 self.flatten(vec!(arg0, arg1))
1219 fn make_classname_type_specifier(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
1220 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
1223 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
1227 fn make_field_specifier(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
1228 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
1231 self.flatten(vec!(arg0, arg1, arg2, arg3))
1235 fn make_field_initializer(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
1236 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
1239 self.flatten(vec!(arg0, arg1, arg2))
1243 fn make_shape_type_specifier(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
1244 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
1247 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
1251 fn make_shape_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
1252 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
1255 self.flatten(vec!(arg0, arg1, arg2, arg3))
1259 fn make_tuple_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
1260 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
1263 self.flatten(vec!(arg0, arg1, arg2, arg3))
1267 fn make_generic_type_specifier(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
1268 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
1271 self.flatten(vec!(arg0, arg1))
1275 fn make_nullable_type_specifier(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
1276 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
1279 self.flatten(vec!(arg0, arg1))
1283 fn make_like_type_specifier(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
1284 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
1287 self.flatten(vec!(arg0, arg1))
1291 fn make_soft_type_specifier(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
1292 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
1295 self.flatten(vec!(arg0, arg1))
1299 fn make_attributized_specifier(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
1300 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
1303 self.flatten(vec!(arg0, arg1))
1307 fn make_reified_type_argument(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
1308 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
1311 self.flatten(vec!(arg0, arg1))
1315 fn make_type_arguments(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
1316 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
1319 self.flatten(vec!(arg0, arg1, arg2))
1323 fn make_type_parameters(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
1324 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
1327 self.flatten(vec!(arg0, arg1, arg2))
1331 fn make_tuple_type_specifier(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
1332 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
1335 self.flatten(vec!(arg0, arg1, arg2))
1339 fn make_union_type_specifier(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
1340 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
1343 self.flatten(vec!(arg0, arg1, arg2))
1347 fn make_intersection_type_specifier(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R) -> Self::R {
1348 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) {
1351 self.flatten(vec!(arg0, arg1, arg2))
1355 fn make_error(&mut self, arg0: Self::R) -> Self::R {
1356 if Self::is_zero(&arg0) {
1359 self.flatten(vec!(arg0))
1363 fn make_list_item(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
1364 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
1367 self.flatten(vec!(arg0, arg1))
1371 fn make_pocket_atom_expression(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
1372 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
1375 self.flatten(vec!(arg0, arg1))
1379 fn make_pocket_identifier_expression(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R) -> Self::R {
1380 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) {
1383 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4))
1387 fn make_pocket_atom_mapping_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R) -> Self::R {
1388 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) {
1391 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5))
1395 fn make_pocket_enum_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R, arg4: Self::R, arg5: Self::R, arg6: Self::R) -> Self::R {
1396 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) && Self::is_zero(&arg4) && Self::is_zero(&arg5) && Self::is_zero(&arg6) {
1399 self.flatten(vec!(arg0, arg1, arg2, arg3, arg4, arg5, arg6))
1403 fn make_pocket_field_type_expr_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
1404 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
1407 self.flatten(vec!(arg0, arg1, arg2, arg3))
1411 fn make_pocket_field_type_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
1412 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
1415 self.flatten(vec!(arg0, arg1, arg2, arg3))
1419 fn make_pocket_mapping_id_declaration(&mut self, arg0: Self::R, arg1: Self::R) -> Self::R {
1420 if Self::is_zero(&arg0) && Self::is_zero(&arg1) {
1423 self.flatten(vec!(arg0, arg1))
1427 fn make_pocket_mapping_type_declaration(&mut self, arg0: Self::R, arg1: Self::R, arg2: Self::R, arg3: Self::R) -> Self::R {
1428 if Self::is_zero(&arg0) && Self::is_zero(&arg1) && Self::is_zero(&arg2) && Self::is_zero(&arg3) {
1431 self.flatten(vec!(arg0, arg1, arg2, arg3))