diff options
Diffstat (limited to 'spec/outputs')
| -rw-r--r-- | spec/outputs/destructure.lua | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/spec/outputs/destructure.lua b/spec/outputs/destructure.lua index 10ad2d0..f40a658 100644 --- a/spec/outputs/destructure.lua +++ b/spec/outputs/destructure.lua | |||
| @@ -503,4 +503,109 @@ do | |||
| 503 | v1 = _obj_1[_tmp_1] | 503 | v1 = _obj_1[_tmp_1] |
| 504 | end | 504 | end |
| 505 | end | 505 | end |
| 506 | do | ||
| 507 | local add, field | ||
| 508 | do | ||
| 509 | local _obj_0 = tb | ||
| 510 | add, field = getmetatable(_obj_0.a).__add, getmetatable(_obj_0.b)[fieldName] | ||
| 511 | if add == nil then | ||
| 512 | add = addFunc | ||
| 513 | end | ||
| 514 | if field == nil then | ||
| 515 | field = 123 | ||
| 516 | end | ||
| 517 | end | ||
| 518 | local meta_field, abc, def | ||
| 519 | do | ||
| 520 | local _obj_0 = getmetatable(tb) | ||
| 521 | meta_field, abc, def = _obj_0["abc"], _obj_0[ [[any string]]], _obj_0['str'] | ||
| 522 | if meta_field == nil then | ||
| 523 | meta_field = "def" | ||
| 524 | end | ||
| 525 | if abc == nil then | ||
| 526 | abc = 123 | ||
| 527 | end | ||
| 528 | if def == nil then | ||
| 529 | def = { } | ||
| 530 | end | ||
| 531 | end | ||
| 532 | do | ||
| 533 | local _exp_0 = tb | ||
| 534 | local _tab_0 = "table" == type(_exp_0) | ||
| 535 | if _tab_0 then | ||
| 536 | do | ||
| 537 | local _obj_0 = _exp_0.a | ||
| 538 | if _obj_0 ~= nil then | ||
| 539 | do | ||
| 540 | local _obj_1 = getmetatable(_obj_0) | ||
| 541 | if _obj_1 ~= nil then | ||
| 542 | add = _obj_1.__add | ||
| 543 | end | ||
| 544 | end | ||
| 545 | end | ||
| 546 | end | ||
| 547 | do | ||
| 548 | local _obj_0 = _exp_0.b | ||
| 549 | if _obj_0 ~= nil then | ||
| 550 | do | ||
| 551 | local _obj_1 = getmetatable(_obj_0) | ||
| 552 | if _obj_1 ~= nil then | ||
| 553 | field = _obj_1[fieldName] | ||
| 554 | end | ||
| 555 | end | ||
| 556 | end | ||
| 557 | end | ||
| 558 | if add == nil then | ||
| 559 | add = addFunc | ||
| 560 | end | ||
| 561 | if field == nil then | ||
| 562 | field = 123 | ||
| 563 | end | ||
| 564 | print(add, field) | ||
| 565 | end | ||
| 566 | end | ||
| 567 | do | ||
| 568 | local _exp_0 = tb | ||
| 569 | local _tab_0 = "table" == type(_exp_0) | ||
| 570 | if _tab_0 then | ||
| 571 | local _obj_0 = _exp_0 | ||
| 572 | do | ||
| 573 | local _obj_1 = _obj_0.c | ||
| 574 | if _obj_1 ~= nil then | ||
| 575 | do | ||
| 576 | local _obj_2 = getmetatable(_obj_1) | ||
| 577 | if _obj_2 ~= nil then | ||
| 578 | meta_field = _obj_2["abc"] | ||
| 579 | end | ||
| 580 | end | ||
| 581 | end | ||
| 582 | end | ||
| 583 | if meta_field == nil then | ||
| 584 | meta_field = "def" | ||
| 585 | end | ||
| 586 | do | ||
| 587 | local _obj_1 = getmetatable(_obj_0) | ||
| 588 | do | ||
| 589 | local _obj_2 = _obj_1[ [[any string]]] | ||
| 590 | if _obj_2 ~= nil then | ||
| 591 | abc = _obj_2.d | ||
| 592 | end | ||
| 593 | end | ||
| 594 | do | ||
| 595 | local _obj_2 = _obj_1['str'] | ||
| 596 | if _obj_2 ~= nil then | ||
| 597 | def = _obj_2.e | ||
| 598 | end | ||
| 599 | end | ||
| 600 | if abc == nil then | ||
| 601 | abc = 123 | ||
| 602 | end | ||
| 603 | if def == nil then | ||
| 604 | def = { } | ||
| 605 | end | ||
| 606 | end | ||
| 607 | print(meta_field, abc, def) | ||
| 608 | end | ||
| 609 | end | ||
| 610 | end | ||
| 506 | return nil | 611 | return nil |
