Skip to content

Instantly share code, notes, and snippets.

Created June 13, 2011 18:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/1023350 to your computer and use it in GitHub Desktop.
Save anonymous/1023350 to your computer and use it in GitHub Desktop.
.include 'cclass.pasm'
.include 'except_severity.pasm'
.include 'except_types.pasm'
.include 'iglobals.pasm'
.include 'interpinfo.pasm'
.include 'iterator.pasm'
.include 'sysinfo.pasm'
.HLL "nqp"
.loadlib "nqp_group"
.loadlib "nqp_ops"
.loadlib "trans_ops"
.loadlib "io_ops"
.namespace []
.sub "_block11" :anon :subid("10_1307988395.99251")
.param pmc param_13 :slurpy
.annotate 'line', 0
.const 'Sub' $P2577 = "170_1307988395.99251"
capture_lex $P2577
.const 'Sub' $P2510 = "161_1307988395.99251"
capture_lex $P2510
.const 'Sub' $P2318 = "147_1307988395.99251"
capture_lex $P2318
.const 'Sub' $P2252 = "138_1307988395.99251"
capture_lex $P2252
.const 'Sub' $P1101 = "77_1307988395.99251"
capture_lex $P1101
.const 'Sub' $P771 = "52_1307988395.99251"
capture_lex $P771
.const 'Sub' $P546 = "42_1307988395.99251"
capture_lex $P546
.const 'Sub' $P278 = "21_1307988395.99251"
capture_lex $P278
.const 'Sub' $P37 = "11_1307988395.99251"
capture_lex $P37
.annotate 'line', 1
.lex "@ARGS", param_13
set $P15, $P14
.lex "GLOBALish", $P15
set $P17, $P16
.lex "$?PACKAGE", $P17
set $P19, $P18
.lex "RoleToRoleApplier", $P19
set $P21, $P20
.lex "NQPConcreteRoleHOW", $P21
set $P23, $P22
.lex "RoleToClassApplier", $P23
set $P25, $P24
.lex "NQPParametricRoleHOW", $P25
set $P27, $P26
.lex "NQPClassHOW", $P27
set $P29, $P28
.lex "NQPNativeHOW", $P29
set $P31, $P30
.lex "NQPAttribute", $P31
set $P33, $P32
.lex "NQPModuleHOW", $P33
set $P35, $P34
.lex "EXPORTHOW", $P35
$P0 = find_dynamic_lex "$*CTXSAVE"
if null $P0 goto ctxsave_done
$I0 = can $P0, "ctxsave"
unless $I0 goto ctxsave_done
$P0."ctxsave"()
ctxsave_done:
.annotate 'line', 5
.const 'Sub' $P37 = "11_1307988395.99251"
capture_lex $P37
$P37()
.annotate 'line', 97
.const 'Sub' $P278 = "21_1307988395.99251"
capture_lex $P278
$P278()
.annotate 'line', 242
.const 'Sub' $P546 = "42_1307988395.99251"
capture_lex $P546
$P546()
.annotate 'line', 318
.const 'Sub' $P771 = "52_1307988395.99251"
capture_lex $P771
$P771()
.annotate 'line', 498
.const 'Sub' $P1101 = "77_1307988395.99251"
capture_lex $P1101
$P1101()
.annotate 'line', 972
.const 'Sub' $P2252 = "138_1307988395.99251"
capture_lex $P2252
$P2252()
.annotate 'line', 1018
.const 'Sub' $P2318 = "147_1307988395.99251"
capture_lex $P2318
$P2318()
.annotate 'line', 1089
.const 'Sub' $P2510 = "161_1307988395.99251"
capture_lex $P2510
$P2510()
.annotate 'line', 1138
.const 'Sub' $P2577 = "170_1307988395.99251"
capture_lex $P2577
$P2577()
find_lex $P2608, "@ARGS"
if $P2608, if_2607
set $P2606, $P2608
goto if_2607_end
if_2607:
load_bytecode "ModuleLoader.pbc"
get_hll_global $P2609, "ModuleLoader"
getinterp $P2610
set $P2611, $P2610["context"]
$P2612 = $P2609."set_mainline_module"($P2611)
set $P2606, $P2612
if_2607_end:
.annotate 'line', 1
.return ($P2606)
.const 'Sub' $P2614 = "171_1307988395.99251"
.return ($P2614)
.end
.HLL "nqp"
.namespace []
.sub "" :load :init :subid("post172") :outer("10_1307988395.99251")
.annotate 'line', 0
.const 'Sub' $P12 = "10_1307988395.99251"
.local pmc block
set block, $P12
nqp_get_sc $P2618, "1307988392.89946"
isnull $I2619, $P2618
if $I2619, if_2617
.const 'Sub' $P3377 = "10_1307988395.99251"
$P3378 = $P3377."get_lexinfo"()
nqp_get_sc_object $P3379, "1307988392.89946", 0
$P3378."set_static_lexpad_value"("GLOBALish", $P3379)
.const 'Sub' $P3380 = "10_1307988395.99251"
$P3381 = $P3380."get_lexinfo"()
$P3381."finish_static_lexpad"()
.const 'Sub' $P3382 = "10_1307988395.99251"
$P3383 = $P3382."get_lexinfo"()
nqp_get_sc_object $P3384, "1307988392.89946", 0
$P3383."set_static_lexpad_value"("$?PACKAGE", $P3384)
.const 'Sub' $P3385 = "10_1307988395.99251"
$P3386 = $P3385."get_lexinfo"()
$P3386."finish_static_lexpad"()
.const 'Sub' $P3387 = "10_1307988395.99251"
$P3388 = $P3387."get_lexinfo"()
nqp_get_sc_object $P3389, "1307988392.89946", 1
$P3388."set_static_lexpad_value"("RoleToRoleApplier", $P3389)
.const 'Sub' $P3390 = "10_1307988395.99251"
$P3391 = $P3390."get_lexinfo"()
$P3391."finish_static_lexpad"()
nqp_get_sc_object $P3392, "1307988392.89946", 2
.const 'Sub' $P3393 = "12_1307988395.99251"
assign $P3392, $P3393
.const 'Sub' $P3394 = "11_1307988395.99251"
$P3395 = $P3394."get_lexinfo"()
nqp_get_sc_object $P3396, "1307988392.89946", 1
$P3395."set_static_lexpad_value"("$?PACKAGE", $P3396)
.const 'Sub' $P3397 = "11_1307988395.99251"
$P3398 = $P3397."get_lexinfo"()
$P3398."finish_static_lexpad"()
.const 'Sub' $P3399 = "11_1307988395.99251"
$P3400 = $P3399."get_lexinfo"()
nqp_get_sc_object $P3401, "1307988392.89946", 1
$P3400."set_static_lexpad_value"("$?CLASS", $P3401)
.const 'Sub' $P3402 = "11_1307988395.99251"
$P3403 = $P3402."get_lexinfo"()
$P3403."finish_static_lexpad"()
.const 'Sub' $P3404 = "10_1307988395.99251"
$P3405 = $P3404."get_lexinfo"()
nqp_get_sc_object $P3406, "1307988392.89946", 3
$P3405."set_static_lexpad_value"("NQPConcreteRoleHOW", $P3406)
.const 'Sub' $P3407 = "10_1307988395.99251"
$P3408 = $P3407."get_lexinfo"()
$P3408."finish_static_lexpad"()
nqp_get_sc_object $P3409, "1307988392.89946", 4
.const 'Sub' $P3410 = "22_1307988395.99251"
assign $P3409, $P3410
nqp_get_sc_object $P3411, "1307988392.89946", 5
.const 'Sub' $P3412 = "23_1307988395.99251"
assign $P3411, $P3412
nqp_get_sc_object $P3413, "1307988392.89946", 6
.const 'Sub' $P3414 = "24_1307988395.99251"
assign $P3413, $P3414
nqp_get_sc_object $P3415, "1307988392.89946", 7
.const 'Sub' $P3416 = "25_1307988395.99251"
assign $P3415, $P3416
nqp_get_sc_object $P3417, "1307988392.89946", 8
.const 'Sub' $P3418 = "26_1307988395.99251"
assign $P3417, $P3418
nqp_get_sc_object $P3419, "1307988392.89946", 9
.const 'Sub' $P3420 = "27_1307988395.99251"
assign $P3419, $P3420
nqp_get_sc_object $P3421, "1307988392.89946", 10
.const 'Sub' $P3422 = "28_1307988395.99251"
assign $P3421, $P3422
nqp_get_sc_object $P3423, "1307988392.89946", 11
.const 'Sub' $P3424 = "29_1307988395.99251"
assign $P3423, $P3424
nqp_get_sc_object $P3425, "1307988392.89946", 12
.const 'Sub' $P3426 = "30_1307988395.99251"
assign $P3425, $P3426
nqp_get_sc_object $P3427, "1307988392.89946", 13
.const 'Sub' $P3428 = "31_1307988395.99251"
assign $P3427, $P3428
nqp_get_sc_object $P3429, "1307988392.89946", 14
.const 'Sub' $P3430 = "33_1307988395.99251"
assign $P3429, $P3430
nqp_get_sc_object $P3431, "1307988392.89946", 15
.const 'Sub' $P3432 = "35_1307988395.99251"
assign $P3431, $P3432
nqp_get_sc_object $P3433, "1307988392.89946", 16
.const 'Sub' $P3434 = "36_1307988395.99251"
assign $P3433, $P3434
nqp_get_sc_object $P3435, "1307988392.89946", 17
.const 'Sub' $P3436 = "37_1307988395.99251"
assign $P3435, $P3436
nqp_get_sc_object $P3437, "1307988392.89946", 18
.const 'Sub' $P3438 = "38_1307988395.99251"
assign $P3437, $P3438
nqp_get_sc_object $P3439, "1307988392.89946", 19
.const 'Sub' $P3440 = "40_1307988395.99251"
assign $P3439, $P3440
nqp_get_sc_object $P3441, "1307988392.89946", 20
.const 'Sub' $P3442 = "41_1307988395.99251"
assign $P3441, $P3442
.const 'Sub' $P3443 = "21_1307988395.99251"
$P3444 = $P3443."get_lexinfo"()
nqp_get_sc_object $P3445, "1307988392.89946", 3
$P3444."set_static_lexpad_value"("$?PACKAGE", $P3445)
.const 'Sub' $P3446 = "21_1307988395.99251"
$P3447 = $P3446."get_lexinfo"()
$P3447."finish_static_lexpad"()
.const 'Sub' $P3448 = "21_1307988395.99251"
$P3449 = $P3448."get_lexinfo"()
nqp_get_sc_object $P3450, "1307988392.89946", 3
$P3449."set_static_lexpad_value"("$?CLASS", $P3450)
.const 'Sub' $P3451 = "21_1307988395.99251"
$P3452 = $P3451."get_lexinfo"()
$P3452."finish_static_lexpad"()
.const 'Sub' $P3453 = "10_1307988395.99251"
$P3454 = $P3453."get_lexinfo"()
nqp_get_sc_object $P3455, "1307988392.89946", 21
$P3454."set_static_lexpad_value"("RoleToClassApplier", $P3455)
.const 'Sub' $P3456 = "10_1307988395.99251"
$P3457 = $P3456."get_lexinfo"()
$P3457."finish_static_lexpad"()
nqp_get_sc_object $P3458, "1307988392.89946", 22
.const 'Sub' $P3459 = "47_1307988395.99251"
assign $P3458, $P3459
.const 'Sub' $P3460 = "42_1307988395.99251"
$P3461 = $P3460."get_lexinfo"()
nqp_get_sc_object $P3462, "1307988392.89946", 21
$P3461."set_static_lexpad_value"("$?PACKAGE", $P3462)
.const 'Sub' $P3463 = "42_1307988395.99251"
$P3464 = $P3463."get_lexinfo"()
$P3464."finish_static_lexpad"()
.const 'Sub' $P3465 = "42_1307988395.99251"
$P3466 = $P3465."get_lexinfo"()
nqp_get_sc_object $P3467, "1307988392.89946", 21
$P3466."set_static_lexpad_value"("$?CLASS", $P3467)
.const 'Sub' $P3468 = "42_1307988395.99251"
$P3469 = $P3468."get_lexinfo"()
$P3469."finish_static_lexpad"()
.const 'Sub' $P3470 = "10_1307988395.99251"
$P3471 = $P3470."get_lexinfo"()
nqp_get_sc_object $P3472, "1307988392.89946", 23
$P3471."set_static_lexpad_value"("NQPParametricRoleHOW", $P3472)
.const 'Sub' $P3473 = "10_1307988395.99251"
$P3474 = $P3473."get_lexinfo"()
$P3474."finish_static_lexpad"()
nqp_get_sc_object $P3475, "1307988392.89946", 24
.const 'Sub' $P3476 = "54_1307988395.99251"
assign $P3475, $P3476
nqp_get_sc_object $P3477, "1307988392.89946", 25
.const 'Sub' $P3478 = "55_1307988395.99251"
assign $P3477, $P3478
nqp_get_sc_object $P3479, "1307988392.89946", 26
.const 'Sub' $P3480 = "56_1307988395.99251"
assign $P3479, $P3480
nqp_get_sc_object $P3481, "1307988392.89946", 27
.const 'Sub' $P3482 = "57_1307988395.99251"
assign $P3481, $P3482
nqp_get_sc_object $P3483, "1307988392.89946", 28
.const 'Sub' $P3484 = "58_1307988395.99251"
assign $P3483, $P3484
nqp_get_sc_object $P3485, "1307988392.89946", 29
.const 'Sub' $P3486 = "59_1307988395.99251"
assign $P3485, $P3486
nqp_get_sc_object $P3487, "1307988392.89946", 30
.const 'Sub' $P3488 = "60_1307988395.99251"
assign $P3487, $P3488
nqp_get_sc_object $P3489, "1307988392.89946", 31
.const 'Sub' $P3490 = "61_1307988395.99251"
assign $P3489, $P3490
nqp_get_sc_object $P3491, "1307988392.89946", 32
.const 'Sub' $P3492 = "62_1307988395.99251"
assign $P3491, $P3492
nqp_get_sc_object $P3493, "1307988392.89946", 33
.const 'Sub' $P3494 = "63_1307988395.99251"
assign $P3493, $P3494
nqp_get_sc_object $P3495, "1307988392.89946", 34
.const 'Sub' $P3496 = "64_1307988395.99251"
assign $P3495, $P3496
nqp_get_sc_object $P3497, "1307988392.89946", 35
.const 'Sub' $P3498 = "65_1307988395.99251"
assign $P3497, $P3498
nqp_get_sc_object $P3499, "1307988392.89946", 36
.const 'Sub' $P3500 = "70_1307988395.99251"
assign $P3499, $P3500
nqp_get_sc_object $P3501, "1307988392.89946", 37
.const 'Sub' $P3502 = "72_1307988395.99251"
assign $P3501, $P3502
nqp_get_sc_object $P3503, "1307988392.89946", 38
.const 'Sub' $P3504 = "73_1307988395.99251"
assign $P3503, $P3504
nqp_get_sc_object $P3505, "1307988392.89946", 39
.const 'Sub' $P3506 = "74_1307988395.99251"
assign $P3505, $P3506
nqp_get_sc_object $P3507, "1307988392.89946", 40
.const 'Sub' $P3508 = "76_1307988395.99251"
assign $P3507, $P3508
.const 'Sub' $P3509 = "52_1307988395.99251"
$P3510 = $P3509."get_lexinfo"()
nqp_get_sc_object $P3511, "1307988392.89946", 23
$P3510."set_static_lexpad_value"("$?PACKAGE", $P3511)
.const 'Sub' $P3512 = "52_1307988395.99251"
$P3513 = $P3512."get_lexinfo"()
$P3513."finish_static_lexpad"()
.const 'Sub' $P3514 = "52_1307988395.99251"
$P3515 = $P3514."get_lexinfo"()
nqp_get_sc_object $P3516, "1307988392.89946", 23
$P3515."set_static_lexpad_value"("$?CLASS", $P3516)
.const 'Sub' $P3517 = "52_1307988395.99251"
$P3518 = $P3517."get_lexinfo"()
$P3518."finish_static_lexpad"()
.const 'Sub' $P3519 = "10_1307988395.99251"
$P3520 = $P3519."get_lexinfo"()
nqp_get_sc_object $P3521, "1307988392.89946", 41
$P3520."set_static_lexpad_value"("NQPClassHOW", $P3521)
.const 'Sub' $P3522 = "10_1307988395.99251"
$P3523 = $P3522."get_lexinfo"()
$P3523."finish_static_lexpad"()
nqp_get_sc_object $P3524, "1307988392.89946", 42
.const 'Sub' $P3525 = "88_1307988395.99251"
assign $P3524, $P3525
nqp_get_sc_object $P3526, "1307988392.89946", 43
.const 'Sub' $P3527 = "89_1307988395.99251"
assign $P3526, $P3527
nqp_get_sc_object $P3528, "1307988392.89946", 44
.const 'Sub' $P3529 = "90_1307988395.99251"
assign $P3528, $P3529
nqp_get_sc_object $P3530, "1307988392.89946", 45
.const 'Sub' $P3531 = "91_1307988395.99251"
assign $P3530, $P3531
nqp_get_sc_object $P3532, "1307988392.89946", 46
.const 'Sub' $P3533 = "92_1307988395.99251"
assign $P3532, $P3533
nqp_get_sc_object $P3534, "1307988392.89946", 47
.const 'Sub' $P3535 = "93_1307988395.99251"
assign $P3534, $P3535
nqp_get_sc_object $P3536, "1307988392.89946", 48
.const 'Sub' $P3537 = "94_1307988395.99251"
assign $P3536, $P3537
nqp_get_sc_object $P3538, "1307988392.89946", 49
.const 'Sub' $P3539 = "96_1307988395.99251"
assign $P3538, $P3539
nqp_get_sc_object $P3540, "1307988392.89946", 50
.const 'Sub' $P3541 = "97_1307988395.99251"
assign $P3540, $P3541
nqp_get_sc_object $P3542, "1307988392.89946", 51
.const 'Sub' $P3543 = "99_1307988395.99251"
assign $P3542, $P3543
nqp_get_sc_object $P3544, "1307988392.89946", 52
.const 'Sub' $P3545 = "100_1307988395.99251"
assign $P3544, $P3545
nqp_get_sc_object $P3546, "1307988392.89946", 53
.const 'Sub' $P3547 = "101_1307988395.99251"
assign $P3546, $P3547
nqp_get_sc_object $P3548, "1307988392.89946", 54
.const 'Sub' $P3549 = "105_1307988395.99251"
assign $P3548, $P3549
nqp_get_sc_object $P3550, "1307988392.89946", 55
.const 'Sub' $P3551 = "110_1307988395.99251"
assign $P3550, $P3551
nqp_get_sc_object $P3552, "1307988392.89946", 56
.const 'Sub' $P3553 = "113_1307988395.99251"
assign $P3552, $P3553
nqp_get_sc_object $P3554, "1307988392.89946", 57
.const 'Sub' $P3555 = "116_1307988395.99251"
assign $P3554, $P3555
nqp_get_sc_object $P3556, "1307988392.89946", 58
.const 'Sub' $P3557 = "119_1307988395.99251"
assign $P3556, $P3557
nqp_get_sc_object $P3558, "1307988392.89946", 59
.const 'Sub' $P3559 = "122_1307988395.99251"
assign $P3558, $P3559
nqp_get_sc_object $P3560, "1307988392.89946", 60
.const 'Sub' $P3561 = "123_1307988395.99251"
assign $P3560, $P3561
nqp_get_sc_object $P3562, "1307988392.89946", 61
.const 'Sub' $P3563 = "124_1307988395.99251"
assign $P3562, $P3563
nqp_get_sc_object $P3564, "1307988392.89946", 62
.const 'Sub' $P3565 = "126_1307988395.99251"
assign $P3564, $P3565
nqp_get_sc_object $P3566, "1307988392.89946", 63
.const 'Sub' $P3567 = "127_1307988395.99251"
assign $P3566, $P3567
nqp_get_sc_object $P3568, "1307988392.89946", 64
.const 'Sub' $P3569 = "128_1307988395.99251"
assign $P3568, $P3569
nqp_get_sc_object $P3570, "1307988392.89946", 65
.const 'Sub' $P3571 = "130_1307988395.99251"
assign $P3570, $P3571
nqp_get_sc_object $P3572, "1307988392.89946", 66
.const 'Sub' $P3573 = "131_1307988395.99251"
assign $P3572, $P3573
nqp_get_sc_object $P3574, "1307988392.89946", 67
.const 'Sub' $P3575 = "132_1307988395.99251"
assign $P3574, $P3575
nqp_get_sc_object $P3576, "1307988392.89946", 68
.const 'Sub' $P3577 = "133_1307988395.99251"
assign $P3576, $P3577
nqp_get_sc_object $P3578, "1307988392.89946", 69
.const 'Sub' $P3579 = "134_1307988395.99251"
assign $P3578, $P3579
nqp_get_sc_object $P3580, "1307988392.89946", 70
.const 'Sub' $P3581 = "136_1307988395.99251"
assign $P3580, $P3581
.const 'Sub' $P3582 = "77_1307988395.99251"
$P3583 = $P3582."get_lexinfo"()
nqp_get_sc_object $P3584, "1307988392.89946", 41
$P3583."set_static_lexpad_value"("$?PACKAGE", $P3584)
.const 'Sub' $P3585 = "77_1307988395.99251"
$P3586 = $P3585."get_lexinfo"()
$P3586."finish_static_lexpad"()
.const 'Sub' $P3587 = "77_1307988395.99251"
$P3588 = $P3587."get_lexinfo"()
nqp_get_sc_object $P3589, "1307988392.89946", 41
$P3588."set_static_lexpad_value"("$?CLASS", $P3589)
.const 'Sub' $P3590 = "77_1307988395.99251"
$P3591 = $P3590."get_lexinfo"()
$P3591."finish_static_lexpad"()
.const 'Sub' $P3592 = "10_1307988395.99251"
$P3593 = $P3592."get_lexinfo"()
nqp_get_sc_object $P3594, "1307988392.89946", 71
$P3593."set_static_lexpad_value"("NQPNativeHOW", $P3594)
.const 'Sub' $P3595 = "10_1307988395.99251"
$P3596 = $P3595."get_lexinfo"()
$P3596."finish_static_lexpad"()
nqp_get_sc_object $P3597, "1307988392.89946", 72
.const 'Sub' $P3598 = "139_1307988395.99251"
assign $P3597, $P3598
nqp_get_sc_object $P3599, "1307988392.89946", 73
.const 'Sub' $P3600 = "140_1307988395.99251"
assign $P3599, $P3600
nqp_get_sc_object $P3601, "1307988392.89946", 74
.const 'Sub' $P3602 = "141_1307988395.99251"
assign $P3601, $P3602
nqp_get_sc_object $P3603, "1307988392.89946", 75
.const 'Sub' $P3604 = "142_1307988395.99251"
assign $P3603, $P3604
nqp_get_sc_object $P3605, "1307988392.89946", 76
.const 'Sub' $P3606 = "143_1307988395.99251"
assign $P3605, $P3606
nqp_get_sc_object $P3607, "1307988392.89946", 77
.const 'Sub' $P3608 = "144_1307988395.99251"
assign $P3607, $P3608
nqp_get_sc_object $P3609, "1307988392.89946", 78
.const 'Sub' $P3610 = "145_1307988395.99251"
assign $P3609, $P3610
nqp_get_sc_object $P3611, "1307988392.89946", 79
.const 'Sub' $P3612 = "146_1307988395.99251"
assign $P3611, $P3612
.const 'Sub' $P3613 = "138_1307988395.99251"
$P3614 = $P3613."get_lexinfo"()
nqp_get_sc_object $P3615, "1307988392.89946", 71
$P3614."set_static_lexpad_value"("$?PACKAGE", $P3615)
.const 'Sub' $P3616 = "138_1307988395.99251"
$P3617 = $P3616."get_lexinfo"()
$P3617."finish_static_lexpad"()
.const 'Sub' $P3618 = "138_1307988395.99251"
$P3619 = $P3618."get_lexinfo"()
nqp_get_sc_object $P3620, "1307988392.89946", 71
$P3619."set_static_lexpad_value"("$?CLASS", $P3620)
.const 'Sub' $P3621 = "138_1307988395.99251"
$P3622 = $P3621."get_lexinfo"()
$P3622."finish_static_lexpad"()
.const 'Sub' $P3623 = "10_1307988395.99251"
$P3624 = $P3623."get_lexinfo"()
nqp_get_sc_object $P3625, "1307988392.89946", 80
$P3624."set_static_lexpad_value"("NQPAttribute", $P3625)
.const 'Sub' $P3626 = "10_1307988395.99251"
$P3627 = $P3626."get_lexinfo"()
$P3627."finish_static_lexpad"()
nqp_get_sc_object $P3628, "1307988392.89946", 81
.const 'Sub' $P3629 = "150_1307988395.99251"
assign $P3628, $P3629
nqp_get_sc_object $P3630, "1307988392.89946", 82
.const 'Sub' $P3631 = "151_1307988395.99251"
assign $P3630, $P3631
nqp_get_sc_object $P3632, "1307988392.89946", 83
.const 'Sub' $P3633 = "152_1307988395.99251"
assign $P3632, $P3633
nqp_get_sc_object $P3634, "1307988392.89946", 84
.const 'Sub' $P3635 = "153_1307988395.99251"
assign $P3634, $P3635
nqp_get_sc_object $P3636, "1307988392.89946", 85
.const 'Sub' $P3637 = "154_1307988395.99251"
assign $P3636, $P3637
nqp_get_sc_object $P3638, "1307988392.89946", 86
.const 'Sub' $P3639 = "155_1307988395.99251"
assign $P3638, $P3639
nqp_get_sc_object $P3640, "1307988392.89946", 87
.const 'Sub' $P3641 = "160_1307988395.99251"
assign $P3640, $P3641
.const 'Sub' $P3642 = "147_1307988395.99251"
$P3643 = $P3642."get_lexinfo"()
nqp_get_sc_object $P3644, "1307988392.89946", 80
$P3643."set_static_lexpad_value"("$?PACKAGE", $P3644)
.const 'Sub' $P3645 = "147_1307988395.99251"
$P3646 = $P3645."get_lexinfo"()
$P3646."finish_static_lexpad"()
.const 'Sub' $P3647 = "147_1307988395.99251"
$P3648 = $P3647."get_lexinfo"()
nqp_get_sc_object $P3649, "1307988392.89946", 80
$P3648."set_static_lexpad_value"("$?CLASS", $P3649)
.const 'Sub' $P3650 = "147_1307988395.99251"
$P3651 = $P3650."get_lexinfo"()
$P3651."finish_static_lexpad"()
.const 'Sub' $P3652 = "10_1307988395.99251"
$P3653 = $P3652."get_lexinfo"()
nqp_get_sc_object $P3654, "1307988392.89946", 88
$P3653."set_static_lexpad_value"("NQPModuleHOW", $P3654)
.const 'Sub' $P3655 = "10_1307988395.99251"
$P3656 = $P3655."get_lexinfo"()
$P3656."finish_static_lexpad"()
nqp_get_sc_object $P3657, "1307988392.89946", 89
.const 'Sub' $P3658 = "162_1307988395.99251"
assign $P3657, $P3658
nqp_get_sc_object $P3659, "1307988392.89946", 90
.const 'Sub' $P3660 = "163_1307988395.99251"
assign $P3659, $P3660
nqp_get_sc_object $P3661, "1307988392.89946", 91
.const 'Sub' $P3662 = "164_1307988395.99251"
assign $P3661, $P3662
nqp_get_sc_object $P3663, "1307988392.89946", 92
.const 'Sub' $P3664 = "165_1307988395.99251"
assign $P3663, $P3664
nqp_get_sc_object $P3665, "1307988392.89946", 93
.const 'Sub' $P3666 = "166_1307988395.99251"
assign $P3665, $P3666
nqp_get_sc_object $P3667, "1307988392.89946", 94
.const 'Sub' $P3668 = "167_1307988395.99251"
assign $P3667, $P3668
nqp_get_sc_object $P3669, "1307988392.89946", 95
.const 'Sub' $P3670 = "168_1307988395.99251"
assign $P3669, $P3670
nqp_get_sc_object $P3671, "1307988392.89946", 96
.const 'Sub' $P3672 = "169_1307988395.99251"
assign $P3671, $P3672
.const 'Sub' $P3673 = "161_1307988395.99251"
$P3674 = $P3673."get_lexinfo"()
nqp_get_sc_object $P3675, "1307988392.89946", 88
$P3674."set_static_lexpad_value"("$?PACKAGE", $P3675)
.const 'Sub' $P3676 = "161_1307988395.99251"
$P3677 = $P3676."get_lexinfo"()
$P3677."finish_static_lexpad"()
.const 'Sub' $P3678 = "161_1307988395.99251"
$P3679 = $P3678."get_lexinfo"()
nqp_get_sc_object $P3680, "1307988392.89946", 88
$P3679."set_static_lexpad_value"("$?CLASS", $P3680)
.const 'Sub' $P3681 = "161_1307988395.99251"
$P3682 = $P3681."get_lexinfo"()
$P3682."finish_static_lexpad"()
.const 'Sub' $P3683 = "10_1307988395.99251"
$P3684 = $P3683."get_lexinfo"()
nqp_get_sc_object $P3685, "1307988392.89946", 97
$P3684."set_static_lexpad_value"("EXPORTHOW", $P3685)
.const 'Sub' $P3686 = "10_1307988395.99251"
$P3687 = $P3686."get_lexinfo"()
$P3687."finish_static_lexpad"()
.const 'Sub' $P3688 = "170_1307988395.99251"
$P3689 = $P3688."get_lexinfo"()
nqp_get_sc_object $P3690, "1307988392.89946", 97
$P3689."set_static_lexpad_value"("$?PACKAGE", $P3690)
.const 'Sub' $P3691 = "170_1307988395.99251"
$P3692 = $P3691."get_lexinfo"()
$P3692."finish_static_lexpad"()
.const 'Sub' $P3693 = "170_1307988395.99251"
$P3694 = $P3693."get_lexinfo"()
nqp_get_sc_object $P3695, "1307988392.89946", 97
$P3694."set_static_lexpad_value"("$?CLASS", $P3695)
.const 'Sub' $P3696 = "170_1307988395.99251"
$P3697 = $P3696."get_lexinfo"()
$P3697."finish_static_lexpad"()
goto if_2617_end
if_2617:
nqp_dynop_setup
getinterp $P2620
get_class $P2621, "LexPad"
get_class $P2622, "NQPLexPad"
$P2620."hll_map"($P2621, $P2622)
nqp_create_sc $P2623, "1307988392.89946"
.local pmc cur_sc
set cur_sc, $P2623
nqp_get_sc_object $P2624, "__6MODEL_CORE__", 0
$P2625 = $P2624."new_type"("GLOBALish" :named("name"))
nqp_set_sc_for_object $P2625, cur_sc
nqp_set_sc_object "1307988392.89946", 0, $P2625
.const 'Sub' $P2626 = "10_1307988395.99251"
$P2627 = $P2626."get_lexinfo"()
nqp_get_sc_object $P2628, "1307988392.89946", 0
$P2627."set_static_lexpad_value"("GLOBALish", $P2628)
.const 'Sub' $P2629 = "10_1307988395.99251"
$P2630 = $P2629."get_lexinfo"()
$P2630."finish_static_lexpad"()
.const 'Sub' $P2631 = "10_1307988395.99251"
$P2632 = $P2631."get_lexinfo"()
nqp_get_sc_object $P2633, "1307988392.89946", 0
$P2632."set_static_lexpad_value"("$?PACKAGE", $P2633)
.const 'Sub' $P2634 = "10_1307988395.99251"
$P2635 = $P2634."get_lexinfo"()
$P2635."finish_static_lexpad"()
nqp_get_sc_object $P2636, "__6MODEL_CORE__", 0
$P2637 = $P2636."new_type"("RoleToRoleApplier" :named("name"))
nqp_set_sc_for_object $P2637, cur_sc
nqp_set_sc_object "1307988392.89946", 1, $P2637
nqp_get_sc_object $P2638, "1307988392.89946", 1
nqp_get_sc_object $P2639, "1307988392.89946", 0
get_who $P2640, $P2639
set $P2640["RoleToRoleApplier"], $P2638
.const 'Sub' $P2641 = "10_1307988395.99251"
$P2642 = $P2641."get_lexinfo"()
nqp_get_sc_object $P2643, "1307988392.89946", 1
$P2642."set_static_lexpad_value"("RoleToRoleApplier", $P2643)
.const 'Sub' $P2644 = "10_1307988395.99251"
$P2645 = $P2644."get_lexinfo"()
$P2645."finish_static_lexpad"()
nqp_get_sc_object $P2646, "1307988392.89946", 1
get_how $P2647, $P2646
nqp_get_sc_object $P2648, "1307988392.89946", 1
.const 'Sub' $P2649 = "12_1307988395.99251"
$P2647."add_method"($P2648, "apply", $P2649)
.const 'Sub' $P2650 = "11_1307988395.99251"
$P2651 = $P2650."get_lexinfo"()
nqp_get_sc_object $P2652, "1307988392.89946", 1
$P2651."set_static_lexpad_value"("$?PACKAGE", $P2652)
.const 'Sub' $P2653 = "11_1307988395.99251"
$P2654 = $P2653."get_lexinfo"()
$P2654."finish_static_lexpad"()
.const 'Sub' $P2655 = "11_1307988395.99251"
$P2656 = $P2655."get_lexinfo"()
nqp_get_sc_object $P2657, "1307988392.89946", 1
$P2656."set_static_lexpad_value"("$?CLASS", $P2657)
.const 'Sub' $P2658 = "11_1307988395.99251"
$P2659 = $P2658."get_lexinfo"()
$P2659."finish_static_lexpad"()
nqp_get_sc_object $P2660, "1307988392.89946", 1
get_how $P2661, $P2660
nqp_get_sc_object $P2662, "1307988392.89946", 1
$P2661."compose"($P2662)
nqp_get_sc_object $P2663, "__6MODEL_CORE__", 0
$P2664 = $P2663."new_type"("NQPConcreteRoleHOW" :named("name"))
nqp_set_sc_for_object $P2664, cur_sc
nqp_set_sc_object "1307988392.89946", 3, $P2664
nqp_get_sc_object $P2665, "1307988392.89946", 3
nqp_get_sc_object $P2666, "1307988392.89946", 0
get_who $P2667, $P2666
set $P2667["NQPConcreteRoleHOW"], $P2665
.const 'Sub' $P2668 = "10_1307988395.99251"
$P2669 = $P2668."get_lexinfo"()
nqp_get_sc_object $P2670, "1307988392.89946", 3
$P2669."set_static_lexpad_value"("NQPConcreteRoleHOW", $P2670)
.const 'Sub' $P2671 = "10_1307988395.99251"
$P2672 = $P2671."get_lexinfo"()
$P2672."finish_static_lexpad"()
nqp_get_sc_object $P2673, "1307988392.89946", 3
get_how $P2674, $P2673
nqp_get_sc_object $P2675, "1307988392.89946", 3
nqp_get_sc_object $P2676, "__6MODEL_CORE__", 2
$P2677 = $P2676."new"("$!name" :named("name"))
$P2674."add_attribute"($P2675, $P2677)
nqp_get_sc_object $P2678, "1307988392.89946", 3
get_how $P2679, $P2678
nqp_get_sc_object $P2680, "1307988392.89946", 3
nqp_get_sc_object $P2681, "__6MODEL_CORE__", 2
$P2682 = $P2681."new"("$!instance_of" :named("name"))
$P2679."add_attribute"($P2680, $P2682)
nqp_get_sc_object $P2683, "1307988392.89946", 3
get_how $P2684, $P2683
nqp_get_sc_object $P2685, "1307988392.89946", 3
nqp_get_sc_object $P2686, "__6MODEL_CORE__", 2
$P2687 = $P2686."new"("%!attributes" :named("name"))
$P2684."add_attribute"($P2685, $P2687)
nqp_get_sc_object $P2688, "1307988392.89946", 3
get_how $P2689, $P2688
nqp_get_sc_object $P2690, "1307988392.89946", 3
nqp_get_sc_object $P2691, "__6MODEL_CORE__", 2
$P2692 = $P2691."new"("%!methods" :named("name"))
$P2689."add_attribute"($P2690, $P2692)
nqp_get_sc_object $P2693, "1307988392.89946", 3
get_how $P2694, $P2693
nqp_get_sc_object $P2695, "1307988392.89946", 3
nqp_get_sc_object $P2696, "__6MODEL_CORE__", 2
$P2697 = $P2696."new"("@!multi_methods_to_incorporate" :named("name"))
$P2694."add_attribute"($P2695, $P2697)
nqp_get_sc_object $P2698, "1307988392.89946", 3
get_how $P2699, $P2698
nqp_get_sc_object $P2700, "1307988392.89946", 3
nqp_get_sc_object $P2701, "__6MODEL_CORE__", 2
$P2702 = $P2701."new"("@!collisions" :named("name"))
$P2699."add_attribute"($P2700, $P2702)
nqp_get_sc_object $P2703, "1307988392.89946", 3
get_how $P2704, $P2703
nqp_get_sc_object $P2705, "1307988392.89946", 3
nqp_get_sc_object $P2706, "__6MODEL_CORE__", 2
$P2707 = $P2706."new"("@!roles" :named("name"))
$P2704."add_attribute"($P2705, $P2707)
nqp_get_sc_object $P2708, "1307988392.89946", 3
get_how $P2709, $P2708
nqp_get_sc_object $P2710, "1307988392.89946", 3
nqp_get_sc_object $P2711, "__6MODEL_CORE__", 2
$P2712 = $P2711."new"("@!done" :named("name"))
$P2709."add_attribute"($P2710, $P2712)
nqp_get_sc_object $P2713, "1307988392.89946", 3
get_how $P2714, $P2713
nqp_get_sc_object $P2715, "1307988392.89946", 3
nqp_get_sc_object $P2716, "__6MODEL_CORE__", 2
$P2717 = $P2716."new"("$!composed" :named("name"))
$P2714."add_attribute"($P2715, $P2717)
nqp_get_sc_object $P2718, "1307988392.89946", 3
get_how $P2719, $P2718
nqp_get_sc_object $P2720, "1307988392.89946", 3
.const 'Sub' $P2721 = "22_1307988395.99251"
$P2719."add_method"($P2720, "new", $P2721)
nqp_get_sc_object $P2722, "1307988392.89946", 3
get_how $P2723, $P2722
nqp_get_sc_object $P2724, "1307988392.89946", 3
.const 'Sub' $P2725 = "23_1307988395.99251"
$P2723."add_method"($P2724, "BUILD", $P2725)
nqp_get_sc_object $P2726, "1307988392.89946", 3
get_how $P2727, $P2726
nqp_get_sc_object $P2728, "1307988392.89946", 3
.const 'Sub' $P2729 = "24_1307988395.99251"
$P2727."add_method"($P2728, "new_type", $P2729)
nqp_get_sc_object $P2730, "1307988392.89946", 3
get_how $P2731, $P2730
nqp_get_sc_object $P2732, "1307988392.89946", 3
.const 'Sub' $P2733 = "25_1307988395.99251"
$P2731."add_method"($P2732, "add_method", $P2733)
nqp_get_sc_object $P2734, "1307988392.89946", 3
get_how $P2735, $P2734
nqp_get_sc_object $P2736, "1307988392.89946", 3
.const 'Sub' $P2737 = "26_1307988395.99251"
$P2735."add_method"($P2736, "add_multi_method", $P2737)
nqp_get_sc_object $P2738, "1307988392.89946", 3
get_how $P2739, $P2738
nqp_get_sc_object $P2740, "1307988392.89946", 3
.const 'Sub' $P2741 = "27_1307988395.99251"
$P2739."add_method"($P2740, "add_attribute", $P2741)
nqp_get_sc_object $P2742, "1307988392.89946", 3
get_how $P2743, $P2742
nqp_get_sc_object $P2744, "1307988392.89946", 3
.const 'Sub' $P2745 = "28_1307988395.99251"
$P2743."add_method"($P2744, "add_parent", $P2745)
nqp_get_sc_object $P2746, "1307988392.89946", 3
get_how $P2747, $P2746
nqp_get_sc_object $P2748, "1307988392.89946", 3
.const 'Sub' $P2749 = "29_1307988395.99251"
$P2747."add_method"($P2748, "add_role", $P2749)
nqp_get_sc_object $P2750, "1307988392.89946", 3
get_how $P2751, $P2750
nqp_get_sc_object $P2752, "1307988392.89946", 3
.const 'Sub' $P2753 = "30_1307988395.99251"
$P2751."add_method"($P2752, "add_collision", $P2753)
nqp_get_sc_object $P2754, "1307988392.89946", 3
get_how $P2755, $P2754
nqp_get_sc_object $P2756, "1307988392.89946", 3
.const 'Sub' $P2757 = "31_1307988395.99251"
$P2755."add_method"($P2756, "compose", $P2757)
nqp_get_sc_object $P2758, "1307988392.89946", 3
get_how $P2759, $P2758
nqp_get_sc_object $P2760, "1307988392.89946", 3
.const 'Sub' $P2761 = "33_1307988395.99251"
$P2759."add_method"($P2760, "methods", $P2761)
nqp_get_sc_object $P2762, "1307988392.89946", 3
get_how $P2763, $P2762
nqp_get_sc_object $P2764, "1307988392.89946", 3
.const 'Sub' $P2765 = "35_1307988395.99251"
$P2763."add_method"($P2764, "method_table", $P2765)
nqp_get_sc_object $P2766, "1307988392.89946", 3
get_how $P2767, $P2766
nqp_get_sc_object $P2768, "1307988392.89946", 3
.const 'Sub' $P2769 = "36_1307988395.99251"
$P2767."add_method"($P2768, "collisions", $P2769)
nqp_get_sc_object $P2770, "1307988392.89946", 3
get_how $P2771, $P2770
nqp_get_sc_object $P2772, "1307988392.89946", 3
.const 'Sub' $P2773 = "37_1307988395.99251"
$P2771."add_method"($P2772, "name", $P2773)
nqp_get_sc_object $P2774, "1307988392.89946", 3
get_how $P2775, $P2774
nqp_get_sc_object $P2776, "1307988392.89946", 3
.const 'Sub' $P2777 = "38_1307988395.99251"
$P2775."add_method"($P2776, "attributes", $P2777)
nqp_get_sc_object $P2778, "1307988392.89946", 3
get_how $P2779, $P2778
nqp_get_sc_object $P2780, "1307988392.89946", 3
.const 'Sub' $P2781 = "40_1307988395.99251"
$P2779."add_method"($P2780, "roles", $P2781)
nqp_get_sc_object $P2782, "1307988392.89946", 3
get_how $P2783, $P2782
nqp_get_sc_object $P2784, "1307988392.89946", 3
.const 'Sub' $P2785 = "41_1307988395.99251"
$P2783."add_method"($P2784, "instance_of", $P2785)
.const 'Sub' $P2786 = "21_1307988395.99251"
$P2787 = $P2786."get_lexinfo"()
nqp_get_sc_object $P2788, "1307988392.89946", 3
$P2787."set_static_lexpad_value"("$?PACKAGE", $P2788)
.const 'Sub' $P2789 = "21_1307988395.99251"
$P2790 = $P2789."get_lexinfo"()
$P2790."finish_static_lexpad"()
.const 'Sub' $P2791 = "21_1307988395.99251"
$P2792 = $P2791."get_lexinfo"()
nqp_get_sc_object $P2793, "1307988392.89946", 3
$P2792."set_static_lexpad_value"("$?CLASS", $P2793)
.const 'Sub' $P2794 = "21_1307988395.99251"
$P2795 = $P2794."get_lexinfo"()
$P2795."finish_static_lexpad"()
nqp_get_sc_object $P2796, "1307988392.89946", 3
get_how $P2797, $P2796
nqp_get_sc_object $P2798, "1307988392.89946", 3
$P2797."compose"($P2798)
nqp_get_sc_object $P2799, "__6MODEL_CORE__", 0
$P2800 = $P2799."new_type"("RoleToClassApplier" :named("name"))
nqp_set_sc_for_object $P2800, cur_sc
nqp_set_sc_object "1307988392.89946", 21, $P2800
nqp_get_sc_object $P2801, "1307988392.89946", 21
nqp_get_sc_object $P2802, "1307988392.89946", 0
get_who $P2803, $P2802
set $P2803["RoleToClassApplier"], $P2801
.const 'Sub' $P2804 = "10_1307988395.99251"
$P2805 = $P2804."get_lexinfo"()
nqp_get_sc_object $P2806, "1307988392.89946", 21
$P2805."set_static_lexpad_value"("RoleToClassApplier", $P2806)
.const 'Sub' $P2807 = "10_1307988395.99251"
$P2808 = $P2807."get_lexinfo"()
$P2808."finish_static_lexpad"()
nqp_get_sc_object $P2809, "1307988392.89946", 21
get_how $P2810, $P2809
nqp_get_sc_object $P2811, "1307988392.89946", 21
.const 'Sub' $P2812 = "47_1307988395.99251"
$P2810."add_method"($P2811, "apply", $P2812)
.const 'Sub' $P2813 = "42_1307988395.99251"
$P2814 = $P2813."get_lexinfo"()
nqp_get_sc_object $P2815, "1307988392.89946", 21
$P2814."set_static_lexpad_value"("$?PACKAGE", $P2815)
.const 'Sub' $P2816 = "42_1307988395.99251"
$P2817 = $P2816."get_lexinfo"()
$P2817."finish_static_lexpad"()
.const 'Sub' $P2818 = "42_1307988395.99251"
$P2819 = $P2818."get_lexinfo"()
nqp_get_sc_object $P2820, "1307988392.89946", 21
$P2819."set_static_lexpad_value"("$?CLASS", $P2820)
.const 'Sub' $P2821 = "42_1307988395.99251"
$P2822 = $P2821."get_lexinfo"()
$P2822."finish_static_lexpad"()
nqp_get_sc_object $P2823, "1307988392.89946", 21
get_how $P2824, $P2823
nqp_get_sc_object $P2825, "1307988392.89946", 21
$P2824."compose"($P2825)
nqp_get_sc_object $P2826, "__6MODEL_CORE__", 0
$P2827 = $P2826."new_type"("NQPParametricRoleHOW" :named("name"))
nqp_set_sc_for_object $P2827, cur_sc
nqp_set_sc_object "1307988392.89946", 23, $P2827
nqp_get_sc_object $P2828, "1307988392.89946", 23
nqp_get_sc_object $P2829, "1307988392.89946", 0
get_who $P2830, $P2829
set $P2830["NQPParametricRoleHOW"], $P2828
.const 'Sub' $P2831 = "10_1307988395.99251"
$P2832 = $P2831."get_lexinfo"()
nqp_get_sc_object $P2833, "1307988392.89946", 23
$P2832."set_static_lexpad_value"("NQPParametricRoleHOW", $P2833)
.const 'Sub' $P2834 = "10_1307988395.99251"
$P2835 = $P2834."get_lexinfo"()
$P2835."finish_static_lexpad"()
nqp_get_sc_object $P2836, "1307988392.89946", 23
get_how $P2837, $P2836
nqp_get_sc_object $P2838, "1307988392.89946", 23
nqp_get_sc_object $P2839, "__6MODEL_CORE__", 2
$P2840 = $P2839."new"("$!name" :named("name"))
$P2837."add_attribute"($P2838, $P2840)
nqp_get_sc_object $P2841, "1307988392.89946", 23
get_how $P2842, $P2841
nqp_get_sc_object $P2843, "1307988392.89946", 23
nqp_get_sc_object $P2844, "__6MODEL_CORE__", 2
$P2845 = $P2844."new"("%!attributes" :named("name"))
$P2842."add_attribute"($P2843, $P2845)
nqp_get_sc_object $P2846, "1307988392.89946", 23
get_how $P2847, $P2846
nqp_get_sc_object $P2848, "1307988392.89946", 23
nqp_get_sc_object $P2849, "__6MODEL_CORE__", 2
$P2850 = $P2849."new"("%!methods" :named("name"))
$P2847."add_attribute"($P2848, $P2850)
nqp_get_sc_object $P2851, "1307988392.89946", 23
get_how $P2852, $P2851
nqp_get_sc_object $P2853, "1307988392.89946", 23
nqp_get_sc_object $P2854, "__6MODEL_CORE__", 2
$P2855 = $P2854."new"("@!multi_methods_to_incorporate" :named("name"))
$P2852."add_attribute"($P2853, $P2855)
nqp_get_sc_object $P2856, "1307988392.89946", 23
get_how $P2857, $P2856
nqp_get_sc_object $P2858, "1307988392.89946", 23
nqp_get_sc_object $P2859, "__6MODEL_CORE__", 2
$P2860 = $P2859."new"("@!roles" :named("name"))
$P2857."add_attribute"($P2858, $P2860)
nqp_get_sc_object $P2861, "1307988392.89946", 23
get_how $P2862, $P2861
nqp_get_sc_object $P2863, "1307988392.89946", 23
nqp_get_sc_object $P2864, "__6MODEL_CORE__", 2
$P2865 = $P2864."new"("$!composed" :named("name"))
$P2862."add_attribute"($P2863, $P2865)
nqp_get_sc_object $P2866, "1307988392.89946", 23
get_how $P2867, $P2866
nqp_get_sc_object $P2868, "1307988392.89946", 23
nqp_get_sc_object $P2869, "__6MODEL_CORE__", 2
$P2870 = $P2869."new"("$!body_block" :named("name"))
$P2867."add_attribute"($P2868, $P2870)
nqp_get_sc_object $P2871, "1307988392.89946", 23
get_how $P2872, $P2871
nqp_get_sc_object $P2873, "1307988392.89946", 23
.const 'Sub' $P2874 = "54_1307988395.99251"
$P2872."add_method"($P2873, "new", $P2874)
nqp_get_sc_object $P2875, "1307988392.89946", 23
get_how $P2876, $P2875
nqp_get_sc_object $P2877, "1307988392.89946", 23
.const 'Sub' $P2878 = "55_1307988395.99251"
$P2876."add_method"($P2877, "BUILD", $P2878)
nqp_get_sc_object $P2879, "1307988392.89946", 23
get_how $P2880, $P2879
nqp_get_sc_object $P2881, "1307988392.89946", 23
.const 'Sub' $P2882 = "56_1307988395.99251"
$P2880."add_method"($P2881, "new_type", $P2882)
nqp_get_sc_object $P2883, "1307988392.89946", 23
get_how $P2884, $P2883
nqp_get_sc_object $P2885, "1307988392.89946", 23
.const 'Sub' $P2886 = "57_1307988395.99251"
$P2884."add_method"($P2885, "set_body_block", $P2886)
nqp_get_sc_object $P2887, "1307988392.89946", 23
get_how $P2888, $P2887
nqp_get_sc_object $P2889, "1307988392.89946", 23
.const 'Sub' $P2890 = "58_1307988395.99251"
$P2888."add_method"($P2889, "add_method", $P2890)
nqp_get_sc_object $P2891, "1307988392.89946", 23
get_how $P2892, $P2891
nqp_get_sc_object $P2893, "1307988392.89946", 23
.const 'Sub' $P2894 = "59_1307988395.99251"
$P2892."add_method"($P2893, "add_multi_method", $P2894)
nqp_get_sc_object $P2895, "1307988392.89946", 23
get_how $P2896, $P2895
nqp_get_sc_object $P2897, "1307988392.89946", 23
.const 'Sub' $P2898 = "60_1307988395.99251"
$P2896."add_method"($P2897, "add_attribute", $P2898)
nqp_get_sc_object $P2899, "1307988392.89946", 23
get_how $P2900, $P2899
nqp_get_sc_object $P2901, "1307988392.89946", 23
.const 'Sub' $P2902 = "61_1307988395.99251"
$P2900."add_method"($P2901, "add_parent", $P2902)
nqp_get_sc_object $P2903, "1307988392.89946", 23
get_how $P2904, $P2903
nqp_get_sc_object $P2905, "1307988392.89946", 23
.const 'Sub' $P2906 = "62_1307988395.99251"
$P2904."add_method"($P2905, "add_role", $P2906)
nqp_get_sc_object $P2907, "1307988392.89946", 23
get_how $P2908, $P2907
nqp_get_sc_object $P2909, "1307988392.89946", 23
.const 'Sub' $P2910 = "63_1307988395.99251"
$P2908."add_method"($P2909, "compose", $P2910)
nqp_get_sc_object $P2911, "1307988392.89946", 23
get_how $P2912, $P2911
nqp_get_sc_object $P2913, "1307988392.89946", 23
.const 'Sub' $P2914 = "64_1307988395.99251"
$P2912."add_method"($P2913, "parametric", $P2914)
nqp_get_sc_object $P2915, "1307988392.89946", 23
get_how $P2916, $P2915
nqp_get_sc_object $P2917, "1307988392.89946", 23
.const 'Sub' $P2918 = "65_1307988395.99251"
$P2916."add_method"($P2917, "instantiate", $P2918)
nqp_get_sc_object $P2919, "1307988392.89946", 23
get_how $P2920, $P2919
nqp_get_sc_object $P2921, "1307988392.89946", 23
.const 'Sub' $P2922 = "70_1307988395.99251"
$P2920."add_method"($P2921, "methods", $P2922)
nqp_get_sc_object $P2923, "1307988392.89946", 23
get_how $P2924, $P2923
nqp_get_sc_object $P2925, "1307988392.89946", 23
.const 'Sub' $P2926 = "72_1307988395.99251"
$P2924."add_method"($P2925, "method_table", $P2926)
nqp_get_sc_object $P2927, "1307988392.89946", 23
get_how $P2928, $P2927
nqp_get_sc_object $P2929, "1307988392.89946", 23
.const 'Sub' $P2930 = "73_1307988395.99251"
$P2928."add_method"($P2929, "name", $P2930)
nqp_get_sc_object $P2931, "1307988392.89946", 23
get_how $P2932, $P2931
nqp_get_sc_object $P2933, "1307988392.89946", 23
.const 'Sub' $P2934 = "74_1307988395.99251"
$P2932."add_method"($P2933, "attributes", $P2934)
nqp_get_sc_object $P2935, "1307988392.89946", 23
get_how $P2936, $P2935
nqp_get_sc_object $P2937, "1307988392.89946", 23
.const 'Sub' $P2938 = "76_1307988395.99251"
$P2936."add_method"($P2937, "roles", $P2938)
.const 'Sub' $P2939 = "52_1307988395.99251"
$P2940 = $P2939."get_lexinfo"()
nqp_get_sc_object $P2941, "1307988392.89946", 23
$P2940."set_static_lexpad_value"("$?PACKAGE", $P2941)
.const 'Sub' $P2942 = "52_1307988395.99251"
$P2943 = $P2942."get_lexinfo"()
$P2943."finish_static_lexpad"()
.const 'Sub' $P2944 = "52_1307988395.99251"
$P2945 = $P2944."get_lexinfo"()
nqp_get_sc_object $P2946, "1307988392.89946", 23
$P2945."set_static_lexpad_value"("$?CLASS", $P2946)
.const 'Sub' $P2947 = "52_1307988395.99251"
$P2948 = $P2947."get_lexinfo"()
$P2948."finish_static_lexpad"()
nqp_get_sc_object $P2949, "1307988392.89946", 23
get_how $P2950, $P2949
nqp_get_sc_object $P2951, "1307988392.89946", 23
$P2950."compose"($P2951)
nqp_get_sc_object $P2952, "__6MODEL_CORE__", 0
$P2953 = $P2952."new_type"("NQPClassHOW" :named("name"))
nqp_set_sc_for_object $P2953, cur_sc
nqp_set_sc_object "1307988392.89946", 41, $P2953
nqp_get_sc_object $P2954, "1307988392.89946", 41
nqp_get_sc_object $P2955, "1307988392.89946", 0
get_who $P2956, $P2955
set $P2956["NQPClassHOW"], $P2954
.const 'Sub' $P2957 = "10_1307988395.99251"
$P2958 = $P2957."get_lexinfo"()
nqp_get_sc_object $P2959, "1307988392.89946", 41
$P2958."set_static_lexpad_value"("NQPClassHOW", $P2959)
.const 'Sub' $P2960 = "10_1307988395.99251"
$P2961 = $P2960."get_lexinfo"()
$P2961."finish_static_lexpad"()
nqp_get_sc_object $P2962, "1307988392.89946", 41
get_how $P2963, $P2962
nqp_get_sc_object $P2964, "1307988392.89946", 41
nqp_get_sc_object $P2965, "__6MODEL_CORE__", 2
$P2966 = $P2965."new"("$!name" :named("name"))
$P2963."add_attribute"($P2964, $P2966)
nqp_get_sc_object $P2967, "1307988392.89946", 41
get_how $P2968, $P2967
nqp_get_sc_object $P2969, "1307988392.89946", 41
nqp_get_sc_object $P2970, "__6MODEL_CORE__", 2
$P2971 = $P2970."new"("%!attributes" :named("name"))
$P2968."add_attribute"($P2969, $P2971)
nqp_get_sc_object $P2972, "1307988392.89946", 41
get_how $P2973, $P2972
nqp_get_sc_object $P2974, "1307988392.89946", 41
nqp_get_sc_object $P2975, "__6MODEL_CORE__", 2
$P2976 = $P2975."new"("%!methods" :named("name"))
$P2973."add_attribute"($P2974, $P2976)
nqp_get_sc_object $P2977, "1307988392.89946", 41
get_how $P2978, $P2977
nqp_get_sc_object $P2979, "1307988392.89946", 41
nqp_get_sc_object $P2980, "__6MODEL_CORE__", 2
$P2981 = $P2980."new"("@!multi_methods_to_incorporate" :named("name"))
$P2978."add_attribute"($P2979, $P2981)
nqp_get_sc_object $P2982, "1307988392.89946", 41
get_how $P2983, $P2982
nqp_get_sc_object $P2984, "1307988392.89946", 41
nqp_get_sc_object $P2985, "__6MODEL_CORE__", 2
$P2986 = $P2985."new"("@!parents" :named("name"))
$P2983."add_attribute"($P2984, $P2986)
nqp_get_sc_object $P2987, "1307988392.89946", 41
get_how $P2988, $P2987
nqp_get_sc_object $P2989, "1307988392.89946", 41
nqp_get_sc_object $P2990, "__6MODEL_CORE__", 2
$P2991 = $P2990."new"("@!roles" :named("name"))
$P2988."add_attribute"($P2989, $P2991)
nqp_get_sc_object $P2992, "1307988392.89946", 41
get_how $P2993, $P2992
nqp_get_sc_object $P2994, "1307988392.89946", 41
nqp_get_sc_object $P2995, "__6MODEL_CORE__", 2
$P2996 = $P2995."new"("$!default_parent" :named("name"))
$P2993."add_attribute"($P2994, $P2996)
nqp_get_sc_object $P2997, "1307988392.89946", 41
get_how $P2998, $P2997
nqp_get_sc_object $P2999, "1307988392.89946", 41
nqp_get_sc_object $P3000, "__6MODEL_CORE__", 2
$P3001 = $P3000."new"("@!vtable" :named("name"))
$P2998."add_attribute"($P2999, $P3001)
nqp_get_sc_object $P3002, "1307988392.89946", 41
get_how $P3003, $P3002
nqp_get_sc_object $P3004, "1307988392.89946", 41
nqp_get_sc_object $P3005, "__6MODEL_CORE__", 2
$P3006 = $P3005."new"("%!method-vtable-slots" :named("name"))
$P3003."add_attribute"($P3004, $P3006)
nqp_get_sc_object $P3007, "1307988392.89946", 41
get_how $P3008, $P3007
nqp_get_sc_object $P3009, "1307988392.89946", 41
nqp_get_sc_object $P3010, "__6MODEL_CORE__", 2
$P3011 = $P3010."new"("$!composed" :named("name"))
$P3008."add_attribute"($P3009, $P3011)
nqp_get_sc_object $P3012, "1307988392.89946", 41
get_how $P3013, $P3012
nqp_get_sc_object $P3014, "1307988392.89946", 41
nqp_get_sc_object $P3015, "__6MODEL_CORE__", 2
$P3016 = $P3015."new"("@!mro" :named("name"))
$P3013."add_attribute"($P3014, $P3016)
nqp_get_sc_object $P3017, "1307988392.89946", 41
get_how $P3018, $P3017
nqp_get_sc_object $P3019, "1307988392.89946", 41
nqp_get_sc_object $P3020, "__6MODEL_CORE__", 2
$P3021 = $P3020."new"("@!done" :named("name"))
$P3018."add_attribute"($P3019, $P3021)
nqp_get_sc_object $P3022, "1307988392.89946", 41
get_how $P3023, $P3022
nqp_get_sc_object $P3024, "1307988392.89946", 41
nqp_get_sc_object $P3025, "__6MODEL_CORE__", 2
$P3026 = $P3025."new"("%!parrot_vtable_mapping" :named("name"))
$P3023."add_attribute"($P3024, $P3026)
nqp_get_sc_object $P3027, "1307988392.89946", 41
get_how $P3028, $P3027
nqp_get_sc_object $P3029, "1307988392.89946", 41
nqp_get_sc_object $P3030, "__6MODEL_CORE__", 2
$P3031 = $P3030."new"("%!parrot_vtable_handler_mapping" :named("name"))
$P3028."add_attribute"($P3029, $P3031)
nqp_get_sc_object $P3032, "1307988392.89946", 41
get_how $P3033, $P3032
nqp_get_sc_object $P3034, "1307988392.89946", 41
.const 'Sub' $P3035 = "88_1307988395.99251"
$P3033."add_method"($P3034, "new", $P3035)
nqp_get_sc_object $P3036, "1307988392.89946", 41
get_how $P3037, $P3036
nqp_get_sc_object $P3038, "1307988392.89946", 41
.const 'Sub' $P3039 = "89_1307988395.99251"
$P3037."add_method"($P3038, "BUILD", $P3039)
nqp_get_sc_object $P3040, "1307988392.89946", 41
get_how $P3041, $P3040
nqp_get_sc_object $P3042, "1307988392.89946", 41
.const 'Sub' $P3043 = "90_1307988395.99251"
$P3041."add_method"($P3042, "new_type", $P3043)
nqp_get_sc_object $P3044, "1307988392.89946", 41
get_how $P3045, $P3044
nqp_get_sc_object $P3046, "1307988392.89946", 41
.const 'Sub' $P3047 = "91_1307988395.99251"
$P3045."add_method"($P3046, "add_method", $P3047)
nqp_get_sc_object $P3048, "1307988392.89946", 41
get_how $P3049, $P3048
nqp_get_sc_object $P3050, "1307988392.89946", 41
.const 'Sub' $P3051 = "92_1307988395.99251"
$P3049."add_method"($P3050, "add_multi_method", $P3051)
nqp_get_sc_object $P3052, "1307988392.89946", 41
get_how $P3053, $P3052
nqp_get_sc_object $P3054, "1307988392.89946", 41
.const 'Sub' $P3055 = "93_1307988395.99251"
$P3053."add_method"($P3054, "add_attribute", $P3055)
nqp_get_sc_object $P3056, "1307988392.89946", 41
get_how $P3057, $P3056
nqp_get_sc_object $P3058, "1307988392.89946", 41
.const 'Sub' $P3059 = "94_1307988395.99251"
$P3057."add_method"($P3058, "add_parent", $P3059)
nqp_get_sc_object $P3060, "1307988392.89946", 41
get_how $P3061, $P3060
nqp_get_sc_object $P3062, "1307988392.89946", 41
.const 'Sub' $P3063 = "96_1307988395.99251"
$P3061."add_method"($P3062, "set_default_parent", $P3063)
nqp_get_sc_object $P3064, "1307988392.89946", 41
get_how $P3065, $P3064
nqp_get_sc_object $P3066, "1307988392.89946", 41
.const 'Sub' $P3067 = "97_1307988395.99251"
$P3065."add_method"($P3066, "add_role", $P3067)
nqp_get_sc_object $P3068, "1307988392.89946", 41
get_how $P3069, $P3068
nqp_get_sc_object $P3070, "1307988392.89946", 41
.const 'Sub' $P3071 = "99_1307988395.99251"
$P3069."add_method"($P3070, "add_parrot_vtable_mapping", $P3071)
nqp_get_sc_object $P3072, "1307988392.89946", 41
get_how $P3073, $P3072
nqp_get_sc_object $P3074, "1307988392.89946", 41
.const 'Sub' $P3075 = "100_1307988395.99251"
$P3073."add_method"($P3074, "add_parrot_vtable_handler_mapping", $P3075)
nqp_get_sc_object $P3076, "1307988392.89946", 41
get_how $P3077, $P3076
nqp_get_sc_object $P3078, "1307988392.89946", 41
.const 'Sub' $P3079 = "101_1307988395.99251"
$P3077."add_method"($P3078, "compose", $P3079)
nqp_get_sc_object $P3080, "1307988392.89946", 41
get_how $P3081, $P3080
nqp_get_sc_object $P3082, "1307988392.89946", 41
.const 'Sub' $P3083 = "105_1307988395.99251"
$P3081."add_method"($P3082, "incorporate_multi_candidates", $P3083)
nqp_get_sc_object $P3084, "1307988392.89946", 41
get_how $P3085, $P3084
nqp_get_sc_object $P3086, "1307988392.89946", 41
.const 'Sub' $P3087 = "110_1307988395.99251"
$P3085."add_method"($P3086, "publish_type_cache", $P3087)
nqp_get_sc_object $P3088, "1307988392.89946", 41
get_how $P3089, $P3088
nqp_get_sc_object $P3090, "1307988392.89946", 41
.const 'Sub' $P3091 = "113_1307988395.99251"
$P3089."add_method"($P3090, "publish_method_cache", $P3091)
nqp_get_sc_object $P3092, "1307988392.89946", 41
get_how $P3093, $P3092
nqp_get_sc_object $P3094, "1307988392.89946", 41
.const 'Sub' $P3095 = "116_1307988395.99251"
$P3093."add_method"($P3094, "publish_parrot_vtable_mapping", $P3095)
nqp_get_sc_object $P3096, "1307988392.89946", 41
get_how $P3097, $P3096
nqp_get_sc_object $P3098, "1307988392.89946", 41
.const 'Sub' $P3099 = "119_1307988395.99251"
$P3097."add_method"($P3098, "publish_parrot_vtablee_handler_mapping", $P3099)
nqp_get_sc_object $P3100, "1307988392.89946", 41
get_how $P3101, $P3100
nqp_get_sc_object $P3102, "1307988392.89946", 41
.const 'Sub' $P3103 = "122_1307988395.99251"
$P3101."add_method"($P3102, "parents", $P3103)
nqp_get_sc_object $P3104, "1307988392.89946", 41
get_how $P3105, $P3104
nqp_get_sc_object $P3106, "1307988392.89946", 41
.const 'Sub' $P3107 = "123_1307988395.99251"
$P3105."add_method"($P3106, "roles", $P3107)
nqp_get_sc_object $P3108, "1307988392.89946", 41
get_how $P3109, $P3108
nqp_get_sc_object $P3110, "1307988392.89946", 41
.const 'Sub' $P3111 = "124_1307988395.99251"
$P3109."add_method"($P3110, "methods", $P3111)
nqp_get_sc_object $P3112, "1307988392.89946", 41
get_how $P3113, $P3112
nqp_get_sc_object $P3114, "1307988392.89946", 41
.const 'Sub' $P3115 = "126_1307988395.99251"
$P3113."add_method"($P3114, "method_table", $P3115)
nqp_get_sc_object $P3116, "1307988392.89946", 41
get_how $P3117, $P3116
nqp_get_sc_object $P3118, "1307988392.89946", 41
.const 'Sub' $P3119 = "127_1307988395.99251"
$P3117."add_method"($P3118, "name", $P3119)
nqp_get_sc_object $P3120, "1307988392.89946", 41
get_how $P3121, $P3120
nqp_get_sc_object $P3122, "1307988392.89946", 41
.const 'Sub' $P3123 = "128_1307988395.99251"
$P3121."add_method"($P3122, "attributes", $P3123)
nqp_get_sc_object $P3124, "1307988392.89946", 41
get_how $P3125, $P3124
nqp_get_sc_object $P3126, "1307988392.89946", 41
.const 'Sub' $P3127 = "130_1307988395.99251"
$P3125."add_method"($P3126, "parrot_vtable_mappings", $P3127)
nqp_get_sc_object $P3128, "1307988392.89946", 41
get_how $P3129, $P3128
nqp_get_sc_object $P3130, "1307988392.89946", 41
.const 'Sub' $P3131 = "131_1307988395.99251"
$P3129."add_method"($P3130, "parrot_vtable_handler_mappings", $P3131)
nqp_get_sc_object $P3132, "1307988392.89946", 41
get_how $P3133, $P3132
nqp_get_sc_object $P3134, "1307988392.89946", 41
.const 'Sub' $P3135 = "132_1307988395.99251"
$P3133."add_method"($P3134, "isa", $P3135)
nqp_get_sc_object $P3136, "1307988392.89946", 41
get_how $P3137, $P3136
nqp_get_sc_object $P3138, "1307988392.89946", 41
.const 'Sub' $P3139 = "133_1307988395.99251"
$P3137."add_method"($P3138, "does", $P3139)
nqp_get_sc_object $P3140, "1307988392.89946", 41
get_how $P3141, $P3140
nqp_get_sc_object $P3142, "1307988392.89946", 41
.const 'Sub' $P3143 = "134_1307988395.99251"
$P3141."add_method"($P3142, "can", $P3143)
nqp_get_sc_object $P3144, "1307988392.89946", 41
get_how $P3145, $P3144
nqp_get_sc_object $P3146, "1307988392.89946", 41
.const 'Sub' $P3147 = "136_1307988395.99251"
$P3145."add_method"($P3146, "find_method", $P3147)
.const 'Sub' $P3148 = "77_1307988395.99251"
$P3149 = $P3148."get_lexinfo"()
nqp_get_sc_object $P3150, "1307988392.89946", 41
$P3149."set_static_lexpad_value"("$?PACKAGE", $P3150)
.const 'Sub' $P3151 = "77_1307988395.99251"
$P3152 = $P3151."get_lexinfo"()
$P3152."finish_static_lexpad"()
.const 'Sub' $P3153 = "77_1307988395.99251"
$P3154 = $P3153."get_lexinfo"()
nqp_get_sc_object $P3155, "1307988392.89946", 41
$P3154."set_static_lexpad_value"("$?CLASS", $P3155)
.const 'Sub' $P3156 = "77_1307988395.99251"
$P3157 = $P3156."get_lexinfo"()
$P3157."finish_static_lexpad"()
nqp_get_sc_object $P3158, "1307988392.89946", 41
get_how $P3159, $P3158
nqp_get_sc_object $P3160, "1307988392.89946", 41
$P3159."compose"($P3160)
nqp_get_sc_object $P3161, "__6MODEL_CORE__", 0
$P3162 = $P3161."new_type"("NQPNativeHOW" :named("name"))
nqp_set_sc_for_object $P3162, cur_sc
nqp_set_sc_object "1307988392.89946", 71, $P3162
nqp_get_sc_object $P3163, "1307988392.89946", 71
nqp_get_sc_object $P3164, "1307988392.89946", 0
get_who $P3165, $P3164
set $P3165["NQPNativeHOW"], $P3163
.const 'Sub' $P3166 = "10_1307988395.99251"
$P3167 = $P3166."get_lexinfo"()
nqp_get_sc_object $P3168, "1307988392.89946", 71
$P3167."set_static_lexpad_value"("NQPNativeHOW", $P3168)
.const 'Sub' $P3169 = "10_1307988395.99251"
$P3170 = $P3169."get_lexinfo"()
$P3170."finish_static_lexpad"()
nqp_get_sc_object $P3171, "1307988392.89946", 71
get_how $P3172, $P3171
nqp_get_sc_object $P3173, "1307988392.89946", 71
nqp_get_sc_object $P3174, "__6MODEL_CORE__", 2
$P3175 = $P3174."new"("$!name" :named("name"))
$P3172."add_attribute"($P3173, $P3175)
nqp_get_sc_object $P3176, "1307988392.89946", 71
get_how $P3177, $P3176
nqp_get_sc_object $P3178, "1307988392.89946", 71
nqp_get_sc_object $P3179, "__6MODEL_CORE__", 2
$P3180 = $P3179."new"("$!composed" :named("name"))
$P3177."add_attribute"($P3178, $P3180)
nqp_get_sc_object $P3181, "1307988392.89946", 71
get_how $P3182, $P3181
nqp_get_sc_object $P3183, "1307988392.89946", 71
.const 'Sub' $P3184 = "139_1307988395.99251"
$P3182."add_method"($P3183, "new", $P3184)
nqp_get_sc_object $P3185, "1307988392.89946", 71
get_how $P3186, $P3185
nqp_get_sc_object $P3187, "1307988392.89946", 71
.const 'Sub' $P3188 = "140_1307988395.99251"
$P3186."add_method"($P3187, "BUILD", $P3188)
nqp_get_sc_object $P3189, "1307988392.89946", 71
get_how $P3190, $P3189
nqp_get_sc_object $P3191, "1307988392.89946", 71
.const 'Sub' $P3192 = "141_1307988395.99251"
$P3190."add_method"($P3191, "new_type", $P3192)
nqp_get_sc_object $P3193, "1307988392.89946", 71
get_how $P3194, $P3193
nqp_get_sc_object $P3195, "1307988392.89946", 71
.const 'Sub' $P3196 = "142_1307988395.99251"
$P3194."add_method"($P3195, "add_method", $P3196)
nqp_get_sc_object $P3197, "1307988392.89946", 71
get_how $P3198, $P3197
nqp_get_sc_object $P3199, "1307988392.89946", 71
.const 'Sub' $P3200 = "143_1307988395.99251"
$P3198."add_method"($P3199, "add_multi_method", $P3200)
nqp_get_sc_object $P3201, "1307988392.89946", 71
get_how $P3202, $P3201
nqp_get_sc_object $P3203, "1307988392.89946", 71
.const 'Sub' $P3204 = "144_1307988395.99251"
$P3202."add_method"($P3203, "add_attribute", $P3204)
nqp_get_sc_object $P3205, "1307988392.89946", 71
get_how $P3206, $P3205
nqp_get_sc_object $P3207, "1307988392.89946", 71
.const 'Sub' $P3208 = "145_1307988395.99251"
$P3206."add_method"($P3207, "compose", $P3208)
nqp_get_sc_object $P3209, "1307988392.89946", 71
get_how $P3210, $P3209
nqp_get_sc_object $P3211, "1307988392.89946", 71
.const 'Sub' $P3212 = "146_1307988395.99251"
$P3210."add_method"($P3211, "name", $P3212)
.const 'Sub' $P3213 = "138_1307988395.99251"
$P3214 = $P3213."get_lexinfo"()
nqp_get_sc_object $P3215, "1307988392.89946", 71
$P3214."set_static_lexpad_value"("$?PACKAGE", $P3215)
.const 'Sub' $P3216 = "138_1307988395.99251"
$P3217 = $P3216."get_lexinfo"()
$P3217."finish_static_lexpad"()
.const 'Sub' $P3218 = "138_1307988395.99251"
$P3219 = $P3218."get_lexinfo"()
nqp_get_sc_object $P3220, "1307988392.89946", 71
$P3219."set_static_lexpad_value"("$?CLASS", $P3220)
.const 'Sub' $P3221 = "138_1307988395.99251"
$P3222 = $P3221."get_lexinfo"()
$P3222."finish_static_lexpad"()
nqp_get_sc_object $P3223, "1307988392.89946", 71
get_how $P3224, $P3223
nqp_get_sc_object $P3225, "1307988392.89946", 71
$P3224."compose"($P3225)
nqp_get_sc_object $P3226, "__6MODEL_CORE__", 0
$P3227 = $P3226."new_type"("NQPAttribute" :named("name"))
nqp_set_sc_for_object $P3227, cur_sc
nqp_set_sc_object "1307988392.89946", 80, $P3227
nqp_get_sc_object $P3228, "1307988392.89946", 80
nqp_get_sc_object $P3229, "1307988392.89946", 0
get_who $P3230, $P3229
set $P3230["NQPAttribute"], $P3228
.const 'Sub' $P3231 = "10_1307988395.99251"
$P3232 = $P3231."get_lexinfo"()
nqp_get_sc_object $P3233, "1307988392.89946", 80
$P3232."set_static_lexpad_value"("NQPAttribute", $P3233)
.const 'Sub' $P3234 = "10_1307988395.99251"
$P3235 = $P3234."get_lexinfo"()
$P3235."finish_static_lexpad"()
nqp_get_sc_object $P3236, "1307988392.89946", 80
get_how $P3237, $P3236
nqp_get_sc_object $P3238, "1307988392.89946", 80
nqp_get_sc_object $P3239, "__6MODEL_CORE__", 2
$P3240 = $P3239."new"("$!name" :named("name"))
$P3237."add_attribute"($P3238, $P3240)
nqp_get_sc_object $P3241, "1307988392.89946", 80
get_how $P3242, $P3241
nqp_get_sc_object $P3243, "1307988392.89946", 80
nqp_get_sc_object $P3244, "__6MODEL_CORE__", 2
$P3245 = $P3244."new"("$!type" :named("name"))
$P3242."add_attribute"($P3243, $P3245)
nqp_get_sc_object $P3246, "1307988392.89946", 80
get_how $P3247, $P3246
nqp_get_sc_object $P3248, "1307988392.89946", 80
nqp_get_sc_object $P3249, "__6MODEL_CORE__", 2
$P3250 = $P3249."new"("$!box_target" :named("name"))
$P3247."add_attribute"($P3248, $P3250)
nqp_get_sc_object $P3251, "1307988392.89946", 80
get_how $P3252, $P3251
nqp_get_sc_object $P3253, "1307988392.89946", 80
.const 'Sub' $P3254 = "150_1307988395.99251"
$P3252."add_method"($P3253, "new", $P3254)
nqp_get_sc_object $P3255, "1307988392.89946", 80
get_how $P3256, $P3255
nqp_get_sc_object $P3257, "1307988392.89946", 80
.const 'Sub' $P3258 = "151_1307988395.99251"
$P3256."add_method"($P3257, "BUILD", $P3258)
nqp_get_sc_object $P3259, "1307988392.89946", 80
get_how $P3260, $P3259
nqp_get_sc_object $P3261, "1307988392.89946", 80
.const 'Sub' $P3262 = "152_1307988395.99251"
$P3260."add_method"($P3261, "name", $P3262)
nqp_get_sc_object $P3263, "1307988392.89946", 80
get_how $P3264, $P3263
nqp_get_sc_object $P3265, "1307988392.89946", 80
.const 'Sub' $P3266 = "153_1307988395.99251"
$P3264."add_method"($P3265, "type", $P3266)
nqp_get_sc_object $P3267, "1307988392.89946", 80
get_how $P3268, $P3267
nqp_get_sc_object $P3269, "1307988392.89946", 80
.const 'Sub' $P3270 = "154_1307988395.99251"
$P3268."add_method"($P3269, "box_target", $P3270)
nqp_get_sc_object $P3271, "1307988392.89946", 80
get_how $P3272, $P3271
nqp_get_sc_object $P3273, "1307988392.89946", 80
.const 'Sub' $P3274 = "155_1307988395.99251"
$P3272."add_method"($P3273, "compose", $P3274)
nqp_get_sc_object $P3275, "1307988392.89946", 80
get_how $P3276, $P3275
nqp_get_sc_object $P3277, "1307988392.89946", 80
.const 'Sub' $P3278 = "160_1307988395.99251"
$P3276."add_method"($P3277, "has_mutator", $P3278)
.const 'Sub' $P3279 = "147_1307988395.99251"
$P3280 = $P3279."get_lexinfo"()
nqp_get_sc_object $P3281, "1307988392.89946", 80
$P3280."set_static_lexpad_value"("$?PACKAGE", $P3281)
.const 'Sub' $P3282 = "147_1307988395.99251"
$P3283 = $P3282."get_lexinfo"()
$P3283."finish_static_lexpad"()
.const 'Sub' $P3284 = "147_1307988395.99251"
$P3285 = $P3284."get_lexinfo"()
nqp_get_sc_object $P3286, "1307988392.89946", 80
$P3285."set_static_lexpad_value"("$?CLASS", $P3286)
.const 'Sub' $P3287 = "147_1307988395.99251"
$P3288 = $P3287."get_lexinfo"()
$P3288."finish_static_lexpad"()
nqp_get_sc_object $P3289, "1307988392.89946", 80
get_how $P3290, $P3289
nqp_get_sc_object $P3291, "1307988392.89946", 80
$P3290."compose"($P3291)
nqp_get_sc_object $P3292, "__6MODEL_CORE__", 0
$P3293 = $P3292."new_type"("NQPModuleHOW" :named("name"))
nqp_set_sc_for_object $P3293, cur_sc
nqp_set_sc_object "1307988392.89946", 88, $P3293
nqp_get_sc_object $P3294, "1307988392.89946", 88
nqp_get_sc_object $P3295, "1307988392.89946", 0
get_who $P3296, $P3295
set $P3296["NQPModuleHOW"], $P3294
.const 'Sub' $P3297 = "10_1307988395.99251"
$P3298 = $P3297."get_lexinfo"()
nqp_get_sc_object $P3299, "1307988392.89946", 88
$P3298."set_static_lexpad_value"("NQPModuleHOW", $P3299)
.const 'Sub' $P3300 = "10_1307988395.99251"
$P3301 = $P3300."get_lexinfo"()
$P3301."finish_static_lexpad"()
nqp_get_sc_object $P3302, "1307988392.89946", 88
get_how $P3303, $P3302
nqp_get_sc_object $P3304, "1307988392.89946", 88
nqp_get_sc_object $P3305, "__6MODEL_CORE__", 2
$P3306 = $P3305."new"("$!name" :named("name"))
$P3303."add_attribute"($P3304, $P3306)
nqp_get_sc_object $P3307, "1307988392.89946", 88
get_how $P3308, $P3307
nqp_get_sc_object $P3309, "1307988392.89946", 88
nqp_get_sc_object $P3310, "__6MODEL_CORE__", 2
$P3311 = $P3310."new"("$!composed" :named("name"))
$P3308."add_attribute"($P3309, $P3311)
nqp_get_sc_object $P3312, "1307988392.89946", 88
get_how $P3313, $P3312
nqp_get_sc_object $P3314, "1307988392.89946", 88
.const 'Sub' $P3315 = "162_1307988395.99251"
$P3313."add_method"($P3314, "new", $P3315)
nqp_get_sc_object $P3316, "1307988392.89946", 88
get_how $P3317, $P3316
nqp_get_sc_object $P3318, "1307988392.89946", 88
.const 'Sub' $P3319 = "163_1307988395.99251"
$P3317."add_method"($P3318, "BUILD", $P3319)
nqp_get_sc_object $P3320, "1307988392.89946", 88
get_how $P3321, $P3320
nqp_get_sc_object $P3322, "1307988392.89946", 88
.const 'Sub' $P3323 = "164_1307988395.99251"
$P3321."add_method"($P3322, "new_type", $P3323)
nqp_get_sc_object $P3324, "1307988392.89946", 88
get_how $P3325, $P3324
nqp_get_sc_object $P3326, "1307988392.89946", 88
.const 'Sub' $P3327 = "165_1307988395.99251"
$P3325."add_method"($P3326, "add_method", $P3327)
nqp_get_sc_object $P3328, "1307988392.89946", 88
get_how $P3329, $P3328
nqp_get_sc_object $P3330, "1307988392.89946", 88
.const 'Sub' $P3331 = "166_1307988395.99251"
$P3329."add_method"($P3330, "add_multi_method", $P3331)
nqp_get_sc_object $P3332, "1307988392.89946", 88
get_how $P3333, $P3332
nqp_get_sc_object $P3334, "1307988392.89946", 88
.const 'Sub' $P3335 = "167_1307988395.99251"
$P3333."add_method"($P3334, "add_attribute", $P3335)
nqp_get_sc_object $P3336, "1307988392.89946", 88
get_how $P3337, $P3336
nqp_get_sc_object $P3338, "1307988392.89946", 88
.const 'Sub' $P3339 = "168_1307988395.99251"
$P3337."add_method"($P3338, "compose", $P3339)
nqp_get_sc_object $P3340, "1307988392.89946", 88
get_how $P3341, $P3340
nqp_get_sc_object $P3342, "1307988392.89946", 88
.const 'Sub' $P3343 = "169_1307988395.99251"
$P3341."add_method"($P3342, "name", $P3343)
.const 'Sub' $P3344 = "161_1307988395.99251"
$P3345 = $P3344."get_lexinfo"()
nqp_get_sc_object $P3346, "1307988392.89946", 88
$P3345."set_static_lexpad_value"("$?PACKAGE", $P3346)
.const 'Sub' $P3347 = "161_1307988395.99251"
$P3348 = $P3347."get_lexinfo"()
$P3348."finish_static_lexpad"()
.const 'Sub' $P3349 = "161_1307988395.99251"
$P3350 = $P3349."get_lexinfo"()
nqp_get_sc_object $P3351, "1307988392.89946", 88
$P3350."set_static_lexpad_value"("$?CLASS", $P3351)
.const 'Sub' $P3352 = "161_1307988395.99251"
$P3353 = $P3352."get_lexinfo"()
$P3353."finish_static_lexpad"()
nqp_get_sc_object $P3354, "1307988392.89946", 88
get_how $P3355, $P3354
nqp_get_sc_object $P3356, "1307988392.89946", 88
$P3355."compose"($P3356)
nqp_get_sc_object $P3357, "__6MODEL_CORE__", 0
$P3358 = $P3357."new_type"("EXPORTHOW" :named("name"))
nqp_set_sc_for_object $P3358, cur_sc
nqp_set_sc_object "1307988392.89946", 97, $P3358
.const 'Sub' $P3359 = "10_1307988395.99251"
$P3360 = $P3359."get_lexinfo"()
nqp_get_sc_object $P3361, "1307988392.89946", 97
$P3360."set_static_lexpad_value"("EXPORTHOW", $P3361)
.const 'Sub' $P3362 = "10_1307988395.99251"
$P3363 = $P3362."get_lexinfo"()
$P3363."finish_static_lexpad"()
.const 'Sub' $P3364 = "170_1307988395.99251"
$P3365 = $P3364."get_lexinfo"()
nqp_get_sc_object $P3366, "1307988392.89946", 97
$P3365."set_static_lexpad_value"("$?PACKAGE", $P3366)
.const 'Sub' $P3367 = "170_1307988395.99251"
$P3368 = $P3367."get_lexinfo"()
$P3368."finish_static_lexpad"()
.const 'Sub' $P3369 = "170_1307988395.99251"
$P3370 = $P3369."get_lexinfo"()
nqp_get_sc_object $P3371, "1307988392.89946", 97
$P3370."set_static_lexpad_value"("$?CLASS", $P3371)
.const 'Sub' $P3372 = "170_1307988395.99251"
$P3373 = $P3372."get_lexinfo"()
$P3373."finish_static_lexpad"()
nqp_get_sc_object $P3374, "1307988392.89946", 97
get_how $P3375, $P3374
nqp_get_sc_object $P3376, "1307988392.89946", 97
$P3375."compose"($P3376)
if_2617_end:
nqp_get_sc_object $P3698, "1307988392.89946", 0
set_hll_global "GLOBAL", $P3698
.end
.HLL "nqp"
.namespace ["RoleToRoleApplier"]
.sub "_block36" :subid("11_1307988395.99251") :outer("10_1307988395.99251")
.annotate 'line', 5
.const 'Sub' $P42 = "12_1307988395.99251"
capture_lex $P42
set $P39, $P38
.lex "$?PACKAGE", $P39
set $P41, $P40
.lex "$?CLASS", $P41
.annotate 'line', 6
.const 'Sub' $P42 = "12_1307988395.99251"
newclosure $P276, $P42
.annotate 'line', 5
.return ($P276)
.end
.HLL "nqp"
.namespace ["RoleToRoleApplier"]
.include "except_types.pasm"
.sub "apply" :anon :subid("12_1307988395.99251") :outer("11_1307988395.99251")
.param pmc param_45
.param pmc param_46
.param pmc param_47
.annotate 'line', 6
.const 'Sub' $P198 = "18_1307988395.99251"
capture_lex $P198
.const 'Sub' $P154 = "17_1307988395.99251"
capture_lex $P154
.const 'Sub' $P140 = "16_1307988395.99251"
capture_lex $P140
.const 'Sub' $P62 = "13_1307988395.99251"
capture_lex $P62
new $P44, ['ExceptionHandler'], .CONTROL_RETURN
set_label $P44, control_43
push_eh $P44
.lex "self", param_45
.lex "$target", param_46
.lex "@roles", param_47
.annotate 'line', 8
$P48 = root_new ['parrot';'Hash']
set $P49, $P48
.lex "%meth_info", $P49
.annotate 'line', 34
$P50 = root_new ['parrot';'Hash']
set $P51, $P50
.lex "%target_meth_info", $P51
.annotate 'line', 35
$P52 = root_new ['parrot';'ResizablePMCArray']
set $P53, $P52
.lex "@target_meths", $P53
.annotate 'line', 60
$P54 = root_new ['parrot';'ResizablePMCArray']
set $P55, $P54
.lex "@all_roles", $P55
.annotate 'line', 6
find_lex $P56, "%meth_info"
unless_null $P56, vivify_173
$P56 = root_new ['parrot';'Hash']
vivify_173:
.annotate 'line', 9
find_lex $P58, "@roles"
unless_null $P58, vivify_174
$P58 = root_new ['parrot';'ResizablePMCArray']
vivify_174:
defined $I59, $P58
unless $I59, for_undef_175
iter $P57, $P58
new $P128, 'ExceptionHandler'
set_label $P128, loop127_handler
$P128."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P128
loop127_test:
unless $P57, loop127_done
shift $P60, $P57
loop127_redo:
.const 'Sub' $P62 = "13_1307988395.99251"
capture_lex $P62
$P62($P60)
loop127_next:
goto loop127_test
loop127_handler:
.local pmc exception
.get_results (exception)
getattribute $P129, exception, 'type'
eq $P129, .CONTROL_LOOP_NEXT, loop127_next
eq $P129, .CONTROL_LOOP_REDO, loop127_redo
loop127_done:
pop_eh
for_undef_175:
find_lex $P130, "%target_meth_info"
unless_null $P130, vivify_199
$P130 = root_new ['parrot';'Hash']
vivify_199:
.annotate 'line', 35
find_lex $P131, "$target"
unless_null $P131, vivify_200
new $P131, "Undef"
vivify_200:
get_how $P132, $P131
find_lex $P133, "$target"
unless_null $P133, vivify_201
new $P133, "Undef"
vivify_201:
$P134 = $P132."methods"($P133)
store_lex "@target_meths", $P134
.annotate 'line', 36
find_lex $P136, "@target_meths"
unless_null $P136, vivify_202
$P136 = root_new ['parrot';'ResizablePMCArray']
vivify_202:
defined $I137, $P136
unless $I137, for_undef_203
iter $P135, $P136
new $P147, 'ExceptionHandler'
set_label $P147, loop146_handler
$P147."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P147
loop146_test:
unless $P135, loop146_done
shift $P138, $P135
loop146_redo:
.const 'Sub' $P140 = "16_1307988395.99251"
capture_lex $P140
$P140($P138)
loop146_next:
goto loop146_test
loop146_handler:
.local pmc exception
.get_results (exception)
getattribute $P148, exception, 'type'
eq $P148, .CONTROL_LOOP_NEXT, loop146_next
eq $P148, .CONTROL_LOOP_REDO, loop146_redo
loop146_done:
pop_eh
for_undef_203:
.annotate 'line', 41
find_lex $P150, "%meth_info"
unless_null $P150, vivify_207
$P150 = root_new ['parrot';'Hash']
vivify_207:
defined $I151, $P150
unless $I151, for_undef_208
iter $P149, $P150
new $P190, 'ExceptionHandler'
set_label $P190, loop189_handler
$P190."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P190
loop189_test:
unless $P149, loop189_done
shift $P152, $P149
loop189_redo:
.const 'Sub' $P154 = "17_1307988395.99251"
capture_lex $P154
$P154($P152)
loop189_next:
goto loop189_test
loop189_handler:
.local pmc exception
.get_results (exception)
getattribute $P191, exception, 'type'
eq $P191, .CONTROL_LOOP_NEXT, loop189_next
eq $P191, .CONTROL_LOOP_REDO, loop189_redo
loop189_done:
pop_eh
for_undef_208:
find_lex $P192, "@all_roles"
unless_null $P192, vivify_225
$P192 = root_new ['parrot';'ResizablePMCArray']
vivify_225:
.annotate 'line', 61
find_lex $P194, "@roles"
unless_null $P194, vivify_226
$P194 = root_new ['parrot';'ResizablePMCArray']
vivify_226:
defined $I195, $P194
unless $I195, for_undef_227
iter $P193, $P194
new $P271, 'ExceptionHandler'
set_label $P271, loop270_handler
$P271."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P271
loop270_test:
unless $P193, loop270_done
shift $P196, $P193
loop270_redo:
.const 'Sub' $P198 = "18_1307988395.99251"
capture_lex $P198
$P198($P196)
loop270_next:
goto loop270_test
loop270_handler:
.local pmc exception
.get_results (exception)
getattribute $P272, exception, 'type'
eq $P272, .CONTROL_LOOP_NEXT, loop270_next
eq $P272, .CONTROL_LOOP_REDO, loop270_redo
loop270_done:
pop_eh
for_undef_227:
.annotate 'line', 90
new $P273, "Exception"
set $P273['type'], .CONTROL_RETURN
find_lex $P274, "@all_roles"
unless_null $P274, vivify_249
$P274 = root_new ['parrot';'ResizablePMCArray']
vivify_249:
setattribute $P273, 'payload', $P274
throw $P273
.annotate 'line', 6
.return ()
control_43:
.local pmc exception
.get_results (exception)
getattribute $P275, exception, "payload"
.return ($P275)
.end
.HLL "nqp"
.namespace ["RoleToRoleApplier"]
.include "except_types.pasm"
.sub "_block61" :anon :subid("13_1307988395.99251") :outer("12_1307988395.99251")
.param pmc param_65
.annotate 'line', 9
.const 'Sub' $P75 = "14_1307988395.99251"
capture_lex $P75
.annotate 'line', 10
$P63 = root_new ['parrot';'ResizablePMCArray']
set $P64, $P63
.lex "@methods", $P64
.lex "$_", param_65
find_lex $P66, "$_"
unless_null $P66, vivify_176
new $P66, "Undef"
vivify_176:
get_how $P67, $P66
find_lex $P68, "$_"
unless_null $P68, vivify_177
new $P68, "Undef"
vivify_177:
$P69 = $P67."methods"($P68)
store_lex "@methods", $P69
.annotate 'line', 11
find_lex $P71, "@methods"
unless_null $P71, vivify_178
$P71 = root_new ['parrot';'ResizablePMCArray']
vivify_178:
defined $I72, $P71
unless $I72, for_undef_179
iter $P70, $P71
new $P125, 'ExceptionHandler'
set_label $P125, loop124_handler
$P125."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P125
loop124_test:
unless $P70, loop124_done
shift $P73, $P70
loop124_redo:
.const 'Sub' $P75 = "14_1307988395.99251"
capture_lex $P75
$P75($P73)
loop124_next:
goto loop124_test
loop124_handler:
.local pmc exception
.get_results (exception)
getattribute $P126, exception, 'type'
eq $P126, .CONTROL_LOOP_NEXT, loop124_next
eq $P126, .CONTROL_LOOP_REDO, loop124_redo
loop124_done:
pop_eh
for_undef_179:
.annotate 'line', 9
.return ($P70)
.end
.HLL "nqp"
.namespace ["RoleToRoleApplier"]
.include "except_types.pasm"
.sub "_block74" :anon :subid("14_1307988395.99251") :outer("13_1307988395.99251")
.param pmc param_84
.annotate 'line', 11
.const 'Sub' $P107 = "15_1307988395.99251"
capture_lex $P107
.annotate 'line', 12
new $P76, "Undef"
set $P77, $P76
.lex "$name", $P77
.annotate 'line', 13
new $P78, "Undef"
set $P79, $P78
.lex "$meth", $P79
.annotate 'line', 14
$P80 = root_new ['parrot';'ResizablePMCArray']
set $P81, $P80
.lex "@meth_list", $P81
.annotate 'line', 21
new $P82, "Undef"
set $P83, $P82
.lex "$found", $P83
.lex "$_", param_84
.annotate 'line', 12
find_lex $P85, "$_"
unless_null $P85, vivify_180
new $P85, "Undef"
vivify_180:
set $S86, $P85
new $P87, 'String'
set $P87, $S86
store_lex "$name", $P87
.annotate 'line', 13
find_lex $P88, "$_"
unless_null $P88, vivify_181
new $P88, "Undef"
vivify_181:
store_lex "$meth", $P88
find_lex $P89, "@meth_list"
unless_null $P89, vivify_182
$P89 = root_new ['parrot';'ResizablePMCArray']
vivify_182:
.annotate 'line', 15
find_lex $P91, "$name"
unless_null $P91, vivify_183
new $P91, "Undef"
vivify_183:
find_lex $P92, "%meth_info"
unless_null $P92, vivify_184
$P92 = root_new ['parrot';'Hash']
vivify_184:
set $P93, $P92[$P91]
unless_null $P93, vivify_185
new $P93, "Undef"
vivify_185:
defined $I94, $P93
if $I94, if_90
.annotate 'line', 19
find_lex $P98, "@meth_list"
unless_null $P98, vivify_186
$P98 = root_new ['parrot';'ResizablePMCArray']
vivify_186:
find_lex $P99, "$name"
unless_null $P99, vivify_187
new $P99, "Undef"
vivify_187:
find_lex $P100, "%meth_info"
unless_null $P100, vivify_188
$P100 = root_new ['parrot';'Hash']
store_lex "%meth_info", $P100
vivify_188:
set $P100[$P99], $P98
.annotate 'line', 18
goto if_90_end
if_90:
.annotate 'line', 16
find_lex $P95, "$name"
unless_null $P95, vivify_189
new $P95, "Undef"
vivify_189:
find_lex $P96, "%meth_info"
unless_null $P96, vivify_190
$P96 = root_new ['parrot';'Hash']
vivify_190:
set $P97, $P96[$P95]
unless_null $P97, vivify_191
new $P97, "Undef"
vivify_191:
store_lex "@meth_list", $P97
if_90_end:
.annotate 'line', 21
new $P101, "Integer"
assign $P101, 0
store_lex "$found", $P101
.annotate 'line', 22
find_lex $P103, "@meth_list"
unless_null $P103, vivify_192
$P103 = root_new ['parrot';'ResizablePMCArray']
vivify_192:
defined $I104, $P103
unless $I104, for_undef_193
iter $P102, $P103
new $P116, 'ExceptionHandler'
set_label $P116, loop115_handler
$P116."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P116
loop115_test:
unless $P102, loop115_done
shift $P105, $P102
loop115_redo:
.const 'Sub' $P107 = "15_1307988395.99251"
capture_lex $P107
$P107($P105)
loop115_next:
goto loop115_test
loop115_handler:
.local pmc exception
.get_results (exception)
getattribute $P117, exception, 'type'
eq $P117, .CONTROL_LOOP_NEXT, loop115_next
eq $P117, .CONTROL_LOOP_REDO, loop115_redo
loop115_done:
pop_eh
for_undef_193:
.annotate 'line', 27
find_lex $P120, "$found"
unless_null $P120, vivify_196
new $P120, "Undef"
vivify_196:
unless $P120, unless_119
set $P118, $P120
goto unless_119_end
unless_119:
.annotate 'line', 28
find_lex $P121, "@meth_list"
unless_null $P121, vivify_197
$P121 = root_new ['parrot';'ResizablePMCArray']
vivify_197:
find_lex $P122, "$meth"
unless_null $P122, vivify_198
new $P122, "Undef"
vivify_198:
$P123 = $P121."push"($P122)
.annotate 'line', 27
set $P118, $P123
unless_119_end:
.annotate 'line', 11
.return ($P118)
.end
.HLL "nqp"
.namespace ["RoleToRoleApplier"]
.sub "_block106" :anon :subid("15_1307988395.99251") :outer("14_1307988395.99251")
.param pmc param_108
.annotate 'line', 22
.lex "$_", param_108
.annotate 'line', 23
find_lex $P111, "$meth"
unless_null $P111, vivify_194
new $P111, "Undef"
vivify_194:
find_lex $P112, "$_"
unless_null $P112, vivify_195
new $P112, "Undef"
vivify_195:
issame $I113, $P111, $P112
if $I113, if_110
new $P109, 'Integer'
set $P109, $I113
goto if_110_end
if_110:
.annotate 'line', 24
new $P114, "Integer"
assign $P114, 1
store_lex "$found", $P114
.annotate 'line', 23
set $P109, $P114
if_110_end:
.annotate 'line', 22
.return ($P109)
.end
.HLL "nqp"
.namespace ["RoleToRoleApplier"]
.sub "_block139" :anon :subid("16_1307988395.99251") :outer("12_1307988395.99251")
.param pmc param_141
.annotate 'line', 36
.lex "$_", param_141
.annotate 'line', 37
find_lex $P142, "$_"
unless_null $P142, vivify_204
new $P142, "Undef"
vivify_204:
find_lex $P143, "$_"
unless_null $P143, vivify_205
new $P143, "Undef"
vivify_205:
set $S144, $P143
find_lex $P145, "%target_meth_info"
unless_null $P145, vivify_206
$P145 = root_new ['parrot';'Hash']
store_lex "%target_meth_info", $P145
vivify_206:
set $P145[$S144], $P142
.annotate 'line', 36
.return ($P142)
.end
.HLL "nqp"
.namespace ["RoleToRoleApplier"]
.sub "_block153" :anon :subid("17_1307988395.99251") :outer("12_1307988395.99251")
.param pmc param_159
.annotate 'line', 42
new $P155, "Undef"
set $P156, $P155
.lex "$name", $P156
.annotate 'line', 43
$P157 = root_new ['parrot';'ResizablePMCArray']
set $P158, $P157
.lex "@add_meths", $P158
.lex "$_", param_159
.annotate 'line', 42
find_lex $P160, "$_"
unless_null $P160, vivify_209
new $P160, "Undef"
vivify_209:
set $S161, $P160
new $P162, 'String'
set $P162, $S161
store_lex "$name", $P162
.annotate 'line', 43
find_lex $P163, "$name"
unless_null $P163, vivify_210
new $P163, "Undef"
vivify_210:
find_lex $P164, "%meth_info"
unless_null $P164, vivify_211
$P164 = root_new ['parrot';'Hash']
vivify_211:
set $P165, $P164[$P163]
unless_null $P165, vivify_212
new $P165, "Undef"
vivify_212:
store_lex "@add_meths", $P165
.annotate 'line', 47
find_lex $P168, "$name"
unless_null $P168, vivify_213
new $P168, "Undef"
vivify_213:
find_lex $P169, "%target_meth_info"
unless_null $P169, vivify_214
$P169 = root_new ['parrot';'Hash']
vivify_214:
set $P170, $P169[$P168]
unless_null $P170, vivify_215
new $P170, "Undef"
vivify_215:
defined $I171, $P170
unless $I171, unless_167
new $P166, 'Integer'
set $P166, $I171
goto unless_167_end
unless_167:
.annotate 'line', 49
find_lex $P174, "@add_meths"
unless_null $P174, vivify_216
$P174 = root_new ['parrot';'ResizablePMCArray']
vivify_216:
set $N175, $P174
iseq $I176, $N175, 1.0
if $I176, if_173
.annotate 'line', 54
find_lex $P184, "$target"
unless_null $P184, vivify_217
new $P184, "Undef"
vivify_217:
get_how $P185, $P184
find_lex $P186, "$target"
unless_null $P186, vivify_218
new $P186, "Undef"
vivify_218:
find_lex $P187, "$name"
unless_null $P187, vivify_219
new $P187, "Undef"
vivify_219:
$P188 = $P185."add_collision"($P186, $P187)
.annotate 'line', 52
set $P172, $P188
.annotate 'line', 49
goto if_173_end
if_173:
.annotate 'line', 50
find_lex $P177, "$target"
unless_null $P177, vivify_220
new $P177, "Undef"
vivify_220:
get_how $P178, $P177
find_lex $P179, "$target"
unless_null $P179, vivify_221
new $P179, "Undef"
vivify_221:
find_lex $P180, "$name"
unless_null $P180, vivify_222
new $P180, "Undef"
vivify_222:
find_lex $P181, "@add_meths"
unless_null $P181, vivify_223
$P181 = root_new ['parrot';'ResizablePMCArray']
vivify_223:
set $P182, $P181[0]
unless_null $P182, vivify_224
new $P182, "Undef"
vivify_224:
$P183 = $P178."add_method"($P179, $P180, $P182)
.annotate 'line', 49
set $P172, $P183
if_173_end:
.annotate 'line', 47
set $P166, $P172
unless_167_end:
.annotate 'line', 41
.return ($P166)
.end
.HLL "nqp"
.namespace ["RoleToRoleApplier"]
.include "except_types.pasm"
.sub "_block197" :anon :subid("18_1307988395.99251") :outer("12_1307988395.99251")
.param pmc param_203
.annotate 'line', 61
.const 'Sub' $P214 = "19_1307988395.99251"
capture_lex $P214
.annotate 'line', 62
new $P199, "Undef"
set $P200, $P199
.lex "$how", $P200
.annotate 'line', 65
$P201 = root_new ['parrot';'ResizablePMCArray']
set $P202, $P201
.lex "@attributes", $P202
.lex "$_", param_203
.annotate 'line', 62
find_lex $P204, "$_"
unless_null $P204, vivify_228
new $P204, "Undef"
vivify_228:
get_how $P205, $P204
store_lex "$how", $P205
.annotate 'line', 65
find_lex $P206, "$how"
unless_null $P206, vivify_229
new $P206, "Undef"
vivify_229:
find_lex $P207, "$_"
unless_null $P207, vivify_230
new $P207, "Undef"
vivify_230:
$P208 = $P206."attributes"($P207)
store_lex "@attributes", $P208
.annotate 'line', 66
find_lex $P210, "@attributes"
unless_null $P210, vivify_231
$P210 = root_new ['parrot';'ResizablePMCArray']
vivify_231:
defined $I211, $P210
unless $I211, for_undef_232
iter $P209, $P210
new $P265, 'ExceptionHandler'
set_label $P265, loop264_handler
$P265."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P265
loop264_test:
unless $P209, loop264_done
shift $P212, $P209
loop264_redo:
.const 'Sub' $P214 = "19_1307988395.99251"
capture_lex $P214
$P214($P212)
loop264_next:
goto loop264_test
loop264_handler:
.local pmc exception
.get_results (exception)
getattribute $P266, exception, 'type'
eq $P266, .CONTROL_LOOP_NEXT, loop264_next
eq $P266, .CONTROL_LOOP_REDO, loop264_redo
loop264_done:
pop_eh
for_undef_232:
.annotate 'line', 87
find_lex $P267, "@all_roles"
unless_null $P267, vivify_247
$P267 = root_new ['parrot';'ResizablePMCArray']
vivify_247:
find_lex $P268, "$_"
unless_null $P268, vivify_248
new $P268, "Undef"
vivify_248:
$P269 = $P267."push"($P268)
.annotate 'line', 61
.return ($P269)
.end
.HLL "nqp"
.namespace ["RoleToRoleApplier"]
.include "except_types.pasm"
.sub "_block213" :anon :subid("19_1307988395.99251") :outer("18_1307988395.99251")
.param pmc param_221
.annotate 'line', 66
.const 'Sub' $P233 = "20_1307988395.99251"
capture_lex $P233
.annotate 'line', 67
new $P215, "Undef"
set $P216, $P215
.lex "$add_attr", $P216
.annotate 'line', 68
new $P217, "Undef"
set $P218, $P217
.lex "$skip", $P218
.annotate 'line', 69
$P219 = root_new ['parrot';'ResizablePMCArray']
set $P220, $P219
.lex "@cur_attrs", $P220
.lex "$_", param_221
.annotate 'line', 67
find_lex $P222, "$_"
unless_null $P222, vivify_233
new $P222, "Undef"
vivify_233:
store_lex "$add_attr", $P222
.annotate 'line', 68
new $P223, "Integer"
assign $P223, 0
store_lex "$skip", $P223
.annotate 'line', 69
find_lex $P224, "$target"
unless_null $P224, vivify_234
new $P224, "Undef"
vivify_234:
get_how $P225, $P224
find_lex $P226, "$target"
unless_null $P226, vivify_235
new $P226, "Undef"
vivify_235:
$P227 = $P225."attributes"($P226)
store_lex "@cur_attrs", $P227
.annotate 'line', 70
find_lex $P229, "@cur_attrs"
unless_null $P229, vivify_236
$P229 = root_new ['parrot';'ResizablePMCArray']
vivify_236:
defined $I230, $P229
unless $I230, for_undef_237
iter $P228, $P229
new $P254, 'ExceptionHandler'
set_label $P254, loop253_handler
$P254."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P254
loop253_test:
unless $P228, loop253_done
shift $P231, $P228
loop253_redo:
.const 'Sub' $P233 = "20_1307988395.99251"
capture_lex $P233
$P233($P231)
loop253_next:
goto loop253_test
loop253_handler:
.local pmc exception
.get_results (exception)
getattribute $P255, exception, 'type'
eq $P255, .CONTROL_LOOP_NEXT, loop253_next
eq $P255, .CONTROL_LOOP_REDO, loop253_redo
loop253_done:
pop_eh
for_undef_237:
.annotate 'line', 80
find_lex $P258, "$skip"
unless_null $P258, vivify_243
new $P258, "Undef"
vivify_243:
unless $P258, unless_257
set $P256, $P258
goto unless_257_end
unless_257:
.annotate 'line', 81
find_lex $P259, "$target"
unless_null $P259, vivify_244
new $P259, "Undef"
vivify_244:
get_how $P260, $P259
find_lex $P261, "$target"
unless_null $P261, vivify_245
new $P261, "Undef"
vivify_245:
find_lex $P262, "$add_attr"
unless_null $P262, vivify_246
new $P262, "Undef"
vivify_246:
$P263 = $P260."add_attribute"($P261, $P262)
.annotate 'line', 80
set $P256, $P263
unless_257_end:
.annotate 'line', 66
.return ($P256)
.end
.HLL "nqp"
.namespace ["RoleToRoleApplier"]
.sub "_block232" :anon :subid("20_1307988395.99251") :outer("19_1307988395.99251")
.param pmc param_234
.annotate 'line', 70
.lex "$_", param_234
.annotate 'line', 71
find_lex $P237, "$_"
unless_null $P237, vivify_238
new $P237, "Undef"
vivify_238:
find_lex $P238, "$add_attr"
unless_null $P238, vivify_239
new $P238, "Undef"
vivify_239:
issame $I239, $P237, $P238
if $I239, if_236
.annotate 'line', 75
find_lex $P243, "$_"
unless_null $P243, vivify_240
new $P243, "Undef"
vivify_240:
$S244 = $P243."name"()
find_lex $P245, "$add_attr"
unless_null $P245, vivify_241
new $P245, "Undef"
vivify_241:
$S246 = $P245."name"()
iseq $I247, $S244, $S246
if $I247, if_242
new $P241, 'Integer'
set $P241, $I247
goto if_242_end
if_242:
.annotate 'line', 76
new $P248, "String"
assign $P248, "Attribute '"
find_lex $P249, "$_"
unless_null $P249, vivify_242
new $P249, "Undef"
vivify_242:
$S250 = $P249."name"()
concat $P251, $P248, $S250
concat $P252, $P251, "' conflicts in role composition"
die $P252
if_242_end:
.annotate 'line', 74
set $P235, $P241
.annotate 'line', 71
goto if_236_end
if_236:
.annotate 'line', 72
new $P240, "Integer"
assign $P240, 1
store_lex "$skip", $P240
.annotate 'line', 71
set $P235, $P240
if_236_end:
.annotate 'line', 70
.return ($P235)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.sub "_block277" :subid("21_1307988395.99251") :outer("10_1307988395.99251")
.annotate 'line', 97
.const 'Sub' $P538 = "41_1307988395.99251"
capture_lex $P538
.const 'Sub' $P532 = "40_1307988395.99251"
capture_lex $P532
.const 'Sub' $P507 = "38_1307988395.99251"
capture_lex $P507
.const 'Sub' $P501 = "37_1307988395.99251"
capture_lex $P501
.const 'Sub' $P495 = "36_1307988395.99251"
capture_lex $P495
.const 'Sub' $P489 = "35_1307988395.99251"
capture_lex $P489
.const 'Sub' $P464 = "33_1307988395.99251"
capture_lex $P464
.const 'Sub' $P415 = "31_1307988395.99251"
capture_lex $P415
.const 'Sub' $P402 = "30_1307988395.99251"
capture_lex $P402
.const 'Sub' $P389 = "29_1307988395.99251"
capture_lex $P389
.const 'Sub' $P385 = "28_1307988395.99251"
capture_lex $P385
.const 'Sub' $P363 = "27_1307988395.99251"
capture_lex $P363
.const 'Sub' $P341 = "26_1307988395.99251"
capture_lex $P341
.const 'Sub' $P322 = "25_1307988395.99251"
capture_lex $P322
.const 'Sub' $P305 = "24_1307988395.99251"
capture_lex $P305
.const 'Sub' $P295 = "23_1307988395.99251"
capture_lex $P295
.const 'Sub' $P283 = "22_1307988395.99251"
capture_lex $P283
set $P280, $P279
.lex "$?PACKAGE", $P280
set $P282, $P281
.lex "$?CLASS", $P282
.annotate 'line', 236
.const 'Sub' $P538 = "41_1307988395.99251"
newclosure $P544, $P538
.annotate 'line', 97
.return ($P544)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.sub "new" :anon :subid("22_1307988395.99251") :outer("21_1307988395.99251")
.param pmc param_284
.param pmc param_285 :named("name")
.param pmc param_286 :named("instance_of")
.annotate 'line', 129
.lex "self", param_284
.lex "$name", param_285
.lex "$instance_of", param_286
.annotate 'line', 130
new $P287, "Undef"
set $P288, $P287
.lex "$obj", $P288
find_lex $P289, "self"
repr_instance_of $P290, $P289
store_lex "$obj", $P290
.annotate 'line', 131
find_lex $P291, "$obj"
unless_null $P291, vivify_250
new $P291, "Undef"
vivify_250:
find_lex $P292, "$name"
unless_null $P292, vivify_251
new $P292, "Undef"
vivify_251:
find_lex $P293, "$instance_of"
unless_null $P293, vivify_252
new $P293, "Undef"
vivify_252:
$P291."BUILD"($P292 :named("name"), $P293 :named("instance_of"))
find_lex $P294, "$obj"
unless_null $P294, vivify_253
new $P294, "Undef"
vivify_253:
.annotate 'line', 129
.return ($P294)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.sub "BUILD" :anon :subid("23_1307988395.99251") :outer("21_1307988395.99251")
.param pmc param_296
.param pmc param_297 :named("name")
.param pmc param_298 :named("instance_of")
.annotate 'line', 135
.lex "self", param_296
.lex "$name", param_297
.lex "$instance_of", param_298
.annotate 'line', 136
find_lex $P299, "$name"
unless_null $P299, vivify_254
new $P299, "Undef"
vivify_254:
find_lex $P300, "self"
find_lex $P301, "$?CLASS"
setattribute $P300, $P301, "$!name", $P299
.annotate 'line', 137
find_lex $P302, "$instance_of"
unless_null $P302, vivify_255
new $P302, "Undef"
vivify_255:
find_lex $P303, "self"
find_lex $P304, "$?CLASS"
setattribute $P303, $P304, "$!instance_of", $P302
.annotate 'line', 135
.return ($P302)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.sub "new_type" :anon :subid("24_1307988395.99251") :outer("21_1307988395.99251")
.param pmc param_306
.param pmc param_311 :named("instance_of")
.param pmc param_307 :optional :named("name")
.param int has_param_307 :opt_flag
.param pmc param_309 :optional :named("repr")
.param int has_param_309 :opt_flag
.annotate 'line', 142
.lex "self", param_306
if has_param_307, optparam_256
new $P308, "String"
assign $P308, "<anon>"
set param_307, $P308
optparam_256:
.lex "$name", param_307
if has_param_309, optparam_257
new $P310, "String"
assign $P310, "P6opaque"
set param_309, $P310
optparam_257:
.lex "$repr", param_309
.lex "$instance_of", param_311
.annotate 'line', 143
new $P312, "Undef"
set $P313, $P312
.lex "$metarole", $P313
find_lex $P314, "self"
find_lex $P315, "$name"
unless_null $P315, vivify_258
new $P315, "Undef"
vivify_258:
find_lex $P316, "$instance_of"
unless_null $P316, vivify_259
new $P316, "Undef"
vivify_259:
$P317 = $P314."new"($P315 :named("name"), $P316 :named("instance_of"))
store_lex "$metarole", $P317
.annotate 'line', 144
find_lex $P318, "$metarole"
unless_null $P318, vivify_260
new $P318, "Undef"
vivify_260:
find_lex $P319, "$repr"
unless_null $P319, vivify_261
new $P319, "Undef"
vivify_261:
set $S320, $P319
repr_type_object_for $P321, $P318, $S320
.annotate 'line', 142
.return ($P321)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.sub "add_method" :anon :subid("25_1307988395.99251") :outer("21_1307988395.99251")
.param pmc param_323
.param pmc param_324
.param pmc param_325
.param pmc param_326
.annotate 'line', 147
.lex "self", param_323
.lex "$obj", param_324
.lex "$name", param_325
.lex "$code_obj", param_326
.annotate 'line', 148
find_lex $P328, "$name"
unless_null $P328, vivify_262
new $P328, "Undef"
vivify_262:
find_lex $P329, "self"
find_lex $P330, "$?CLASS"
getattribute $P331, $P329, $P330, "%!methods"
unless_null $P331, vivify_263
$P331 = root_new ['parrot';'Hash']
vivify_263:
set $P332, $P331[$P328]
unless_null $P332, vivify_264
new $P332, "Undef"
vivify_264:
unless $P332, if_327_end
.annotate 'line', 149
new $P333, "String"
assign $P333, "This role already has a method named "
find_lex $P334, "$name"
unless_null $P334, vivify_265
new $P334, "Undef"
vivify_265:
concat $P335, $P333, $P334
die $P335
if_327_end:
.annotate 'line', 151
find_lex $P336, "$code_obj"
unless_null $P336, vivify_266
new $P336, "Undef"
vivify_266:
find_lex $P337, "$name"
unless_null $P337, vivify_267
new $P337, "Undef"
vivify_267:
find_lex $P338, "self"
find_lex $P339, "$?CLASS"
getattribute $P340, $P338, $P339, "%!methods"
unless_null $P340, vivify_268
$P340 = root_new ['parrot';'Hash']
setattribute $P338, $P339, "%!methods", $P340
vivify_268:
set $P340[$P337], $P336
.annotate 'line', 147
.return ($P336)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.sub "add_multi_method" :anon :subid("26_1307988395.99251") :outer("21_1307988395.99251")
.param pmc param_342
.param pmc param_343
.param pmc param_344
.param pmc param_345
.annotate 'line', 154
.lex "self", param_342
.lex "$obj", param_343
.lex "$name", param_344
.lex "$code_obj", param_345
.annotate 'line', 155
$P346 = root_new ['parrot';'Hash']
set $P347, $P346
.lex "%todo", $P347
.annotate 'line', 154
find_lex $P348, "%todo"
unless_null $P348, vivify_269
$P348 = root_new ['parrot';'Hash']
vivify_269:
.annotate 'line', 156
find_lex $P349, "$name"
unless_null $P349, vivify_270
new $P349, "Undef"
vivify_270:
find_lex $P350, "%todo"
unless_null $P350, vivify_271
$P350 = root_new ['parrot';'Hash']
store_lex "%todo", $P350
vivify_271:
set $P350["name"], $P349
.annotate 'line', 157
find_lex $P351, "$code_obj"
unless_null $P351, vivify_272
new $P351, "Undef"
vivify_272:
find_lex $P352, "%todo"
unless_null $P352, vivify_273
$P352 = root_new ['parrot';'Hash']
store_lex "%todo", $P352
vivify_273:
set $P352["code"], $P351
.annotate 'line', 158
find_lex $P353, "%todo"
unless_null $P353, vivify_274
$P353 = root_new ['parrot';'Hash']
vivify_274:
find_lex $P354, "self"
find_lex $P355, "$?CLASS"
getattribute $P356, $P354, $P355, "@!multi_methods_to_incorporate"
unless_null $P356, vivify_275
$P356 = root_new ['parrot';'ResizablePMCArray']
vivify_275:
set $N357, $P356
set $I358, $N357
find_lex $P359, "self"
find_lex $P360, "$?CLASS"
getattribute $P361, $P359, $P360, "@!multi_methods_to_incorporate"
unless_null $P361, vivify_276
$P361 = root_new ['parrot';'ResizablePMCArray']
setattribute $P359, $P360, "@!multi_methods_to_incorporate", $P361
vivify_276:
set $P361[$I358], $P353
find_lex $P362, "$code_obj"
unless_null $P362, vivify_277
new $P362, "Undef"
vivify_277:
.annotate 'line', 154
.return ($P362)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.sub "add_attribute" :anon :subid("27_1307988395.99251") :outer("21_1307988395.99251")
.param pmc param_364
.param pmc param_365
.param pmc param_366
.annotate 'line', 162
.lex "self", param_364
.lex "$obj", param_365
.lex "$meta_attr", param_366
.annotate 'line', 163
new $P367, "Undef"
set $P368, $P367
.lex "$name", $P368
find_lex $P369, "$meta_attr"
unless_null $P369, vivify_278
new $P369, "Undef"
vivify_278:
$P370 = $P369."name"()
store_lex "$name", $P370
.annotate 'line', 164
find_lex $P372, "$name"
unless_null $P372, vivify_279
new $P372, "Undef"
vivify_279:
find_lex $P373, "self"
find_lex $P374, "$?CLASS"
getattribute $P375, $P373, $P374, "%!attributes"
unless_null $P375, vivify_280
$P375 = root_new ['parrot';'Hash']
vivify_280:
set $P376, $P375[$P372]
unless_null $P376, vivify_281
new $P376, "Undef"
vivify_281:
unless $P376, if_371_end
.annotate 'line', 165
new $P377, "String"
assign $P377, "This role already has an attribute named "
find_lex $P378, "$name"
unless_null $P378, vivify_282
new $P378, "Undef"
vivify_282:
concat $P379, $P377, $P378
die $P379
if_371_end:
.annotate 'line', 167
find_lex $P380, "$meta_attr"
unless_null $P380, vivify_283
new $P380, "Undef"
vivify_283:
find_lex $P381, "$name"
unless_null $P381, vivify_284
new $P381, "Undef"
vivify_284:
find_lex $P382, "self"
find_lex $P383, "$?CLASS"
getattribute $P384, $P382, $P383, "%!attributes"
unless_null $P384, vivify_285
$P384 = root_new ['parrot';'Hash']
setattribute $P382, $P383, "%!attributes", $P384
vivify_285:
set $P384[$P381], $P380
.annotate 'line', 162
.return ($P380)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.sub "add_parent" :anon :subid("28_1307988395.99251") :outer("21_1307988395.99251")
.param pmc param_386
.param pmc param_387
.param pmc param_388
.annotate 'line', 170
.lex "self", param_386
.lex "$obj", param_387
.lex "$parent", param_388
.annotate 'line', 171
die "A role cannot inherit from a class in NQP"
.annotate 'line', 170
.return ()
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.sub "add_role" :anon :subid("29_1307988395.99251") :outer("21_1307988395.99251")
.param pmc param_390
.param pmc param_391
.param pmc param_392
.annotate 'line', 174
.lex "self", param_390
.lex "$obj", param_391
.lex "$role", param_392
.annotate 'line', 175
find_lex $P393, "$role"
unless_null $P393, vivify_286
new $P393, "Undef"
vivify_286:
find_lex $P394, "self"
find_lex $P395, "$?CLASS"
getattribute $P396, $P394, $P395, "@!roles"
unless_null $P396, vivify_287
$P396 = root_new ['parrot';'ResizablePMCArray']
vivify_287:
set $N397, $P396
set $I398, $N397
find_lex $P399, "self"
find_lex $P400, "$?CLASS"
getattribute $P401, $P399, $P400, "@!roles"
unless_null $P401, vivify_288
$P401 = root_new ['parrot';'ResizablePMCArray']
setattribute $P399, $P400, "@!roles", $P401
vivify_288:
set $P401[$I398], $P393
.annotate 'line', 174
.return ($P393)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.sub "add_collision" :anon :subid("30_1307988395.99251") :outer("21_1307988395.99251")
.param pmc param_403
.param pmc param_404
.param pmc param_405
.annotate 'line', 178
.lex "self", param_403
.lex "$obj", param_404
.lex "$colliding_name", param_405
.annotate 'line', 179
find_lex $P406, "$colliding_name"
unless_null $P406, vivify_289
new $P406, "Undef"
vivify_289:
find_lex $P407, "self"
find_lex $P408, "$?CLASS"
getattribute $P409, $P407, $P408, "@!collisions"
unless_null $P409, vivify_290
$P409 = root_new ['parrot';'ResizablePMCArray']
vivify_290:
set $N410, $P409
set $I411, $N410
find_lex $P412, "self"
find_lex $P413, "$?CLASS"
getattribute $P414, $P412, $P413, "@!collisions"
unless_null $P414, vivify_291
$P414 = root_new ['parrot';'ResizablePMCArray']
setattribute $P412, $P413, "@!collisions", $P414
vivify_291:
set $P414[$I411], $P406
.annotate 'line', 178
.return ($P406)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.include "except_types.pasm"
.sub "compose" :anon :subid("31_1307988395.99251") :outer("21_1307988395.99251")
.param pmc param_416
.param pmc param_417
.annotate 'line', 183
.const 'Sub' $P429 = "32_1307988395.99251"
capture_lex $P429
.lex "self", param_416
.lex "$obj", param_417
.annotate 'line', 186
find_lex $P419, "self"
find_lex $P420, "$?CLASS"
getattribute $P421, $P419, $P420, "@!roles"
unless_null $P421, vivify_292
$P421 = root_new ['parrot';'ResizablePMCArray']
vivify_292:
unless $P421, if_418_end
.annotate 'line', 187
find_lex $P423, "self"
find_lex $P424, "$?CLASS"
getattribute $P425, $P423, $P424, "@!roles"
unless_null $P425, vivify_293
$P425 = root_new ['parrot';'ResizablePMCArray']
vivify_293:
defined $I426, $P425
unless $I426, for_undef_294
iter $P422, $P425
new $P453, 'ExceptionHandler'
set_label $P453, loop452_handler
$P453."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P453
loop452_test:
unless $P422, loop452_done
shift $P427, $P422
loop452_redo:
.const 'Sub' $P429 = "32_1307988395.99251"
capture_lex $P429
$P429($P427)
loop452_next:
goto loop452_test
loop452_handler:
.local pmc exception
.get_results (exception)
getattribute $P454, exception, 'type'
eq $P454, .CONTROL_LOOP_NEXT, loop452_next
eq $P454, .CONTROL_LOOP_REDO, loop452_redo
loop452_done:
pop_eh
for_undef_294:
.annotate 'line', 191
find_lex $P455, "RoleToRoleApplier"
find_lex $P456, "$obj"
unless_null $P456, vivify_302
new $P456, "Undef"
vivify_302:
find_lex $P457, "self"
find_lex $P458, "$?CLASS"
getattribute $P459, $P457, $P458, "@!roles"
unless_null $P459, vivify_303
$P459 = root_new ['parrot';'ResizablePMCArray']
vivify_303:
$P455."apply"($P456, $P459)
if_418_end:
.annotate 'line', 195
new $P460, "Integer"
assign $P460, 1
find_lex $P461, "self"
find_lex $P462, "$?CLASS"
setattribute $P461, $P462, "$!composed", $P460
find_lex $P463, "$obj"
unless_null $P463, vivify_304
new $P463, "Undef"
vivify_304:
.annotate 'line', 183
.return ($P463)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.sub "_block428" :anon :subid("32_1307988395.99251") :outer("31_1307988395.99251")
.param pmc param_430
.annotate 'line', 187
.lex "$_", param_430
.annotate 'line', 188
find_lex $P431, "$_"
unless_null $P431, vivify_295
new $P431, "Undef"
vivify_295:
find_lex $P432, "self"
find_lex $P433, "$?CLASS"
getattribute $P434, $P432, $P433, "@!done"
unless_null $P434, vivify_296
$P434 = root_new ['parrot';'ResizablePMCArray']
vivify_296:
set $N435, $P434
set $I436, $N435
find_lex $P437, "self"
find_lex $P438, "$?CLASS"
getattribute $P439, $P437, $P438, "@!done"
unless_null $P439, vivify_297
$P439 = root_new ['parrot';'ResizablePMCArray']
setattribute $P437, $P438, "@!done", $P439
vivify_297:
set $P439[$I436], $P431
.annotate 'line', 189
find_lex $P440, "$_"
unless_null $P440, vivify_298
new $P440, "Undef"
vivify_298:
get_how $P441, $P440
find_lex $P442, "$_"
unless_null $P442, vivify_299
new $P442, "Undef"
vivify_299:
$P443 = $P441."instance_of"($P442)
find_lex $P444, "self"
find_lex $P445, "$?CLASS"
getattribute $P446, $P444, $P445, "@!done"
unless_null $P446, vivify_300
$P446 = root_new ['parrot';'ResizablePMCArray']
vivify_300:
set $N447, $P446
set $I448, $N447
find_lex $P449, "self"
find_lex $P450, "$?CLASS"
getattribute $P451, $P449, $P450, "@!done"
unless_null $P451, vivify_301
$P451 = root_new ['parrot';'ResizablePMCArray']
setattribute $P449, $P450, "@!done", $P451
vivify_301:
set $P451[$I448], $P443
.annotate 'line', 187
.return ($P443)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.include "except_types.pasm"
.sub "methods" :anon :subid("33_1307988395.99251") :outer("21_1307988395.99251")
.param pmc param_465
.param pmc param_466
.param pmc param_467 :optional :named("local")
.param int has_param_467 :opt_flag
.annotate 'line', 204
.const 'Sub' $P479 = "34_1307988395.99251"
capture_lex $P479
.lex "self", param_465
.lex "$obj", param_466
if has_param_467, optparam_305
new $P468, "Undef"
set param_467, $P468
optparam_305:
.lex "$local", param_467
.annotate 'line', 205
$P469 = root_new ['parrot';'ResizablePMCArray']
set $P470, $P469
.lex "@meths", $P470
.annotate 'line', 204
find_lex $P471, "@meths"
unless_null $P471, vivify_306
$P471 = root_new ['parrot';'ResizablePMCArray']
vivify_306:
.annotate 'line', 206
find_lex $P473, "self"
find_lex $P474, "$?CLASS"
getattribute $P475, $P473, $P474, "%!methods"
unless_null $P475, vivify_307
$P475 = root_new ['parrot';'Hash']
vivify_307:
defined $I476, $P475
unless $I476, for_undef_308
iter $P472, $P475
new $P486, 'ExceptionHandler'
set_label $P486, loop485_handler
$P486."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P486
loop485_test:
unless $P472, loop485_done
shift $P477, $P472
loop485_redo:
.const 'Sub' $P479 = "34_1307988395.99251"
capture_lex $P479
$P479($P477)
loop485_next:
goto loop485_test
loop485_handler:
.local pmc exception
.get_results (exception)
getattribute $P487, exception, 'type'
eq $P487, .CONTROL_LOOP_NEXT, loop485_next
eq $P487, .CONTROL_LOOP_REDO, loop485_redo
loop485_done:
pop_eh
for_undef_308:
find_lex $P488, "@meths"
unless_null $P488, vivify_311
$P488 = root_new ['parrot';'ResizablePMCArray']
vivify_311:
.annotate 'line', 204
.return ($P488)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.sub "_block478" :anon :subid("34_1307988395.99251") :outer("33_1307988395.99251")
.param pmc param_480
.annotate 'line', 206
.lex "$_", param_480
.annotate 'line', 207
find_lex $P481, "@meths"
unless_null $P481, vivify_309
$P481 = root_new ['parrot';'ResizablePMCArray']
vivify_309:
find_lex $P482, "$_"
unless_null $P482, vivify_310
new $P482, "Undef"
vivify_310:
$P483 = $P482."value"()
$P484 = $P481."push"($P483)
.annotate 'line', 206
.return ($P484)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.sub "method_table" :anon :subid("35_1307988395.99251") :outer("21_1307988395.99251")
.param pmc param_490
.param pmc param_491
.annotate 'line', 212
.lex "self", param_490
.lex "$obj", param_491
find_lex $P492, "self"
find_lex $P493, "$?CLASS"
getattribute $P494, $P492, $P493, "%!methods"
unless_null $P494, vivify_312
$P494 = root_new ['parrot';'Hash']
vivify_312:
.return ($P494)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.sub "collisions" :anon :subid("36_1307988395.99251") :outer("21_1307988395.99251")
.param pmc param_496
.param pmc param_497
.annotate 'line', 216
.lex "self", param_496
.lex "$obj", param_497
find_lex $P498, "self"
find_lex $P499, "$?CLASS"
getattribute $P500, $P498, $P499, "@!collisions"
unless_null $P500, vivify_313
$P500 = root_new ['parrot';'ResizablePMCArray']
vivify_313:
.return ($P500)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.sub "name" :anon :subid("37_1307988395.99251") :outer("21_1307988395.99251")
.param pmc param_502
.param pmc param_503
.annotate 'line', 220
.lex "self", param_502
.lex "$obj", param_503
find_lex $P504, "self"
find_lex $P505, "$?CLASS"
getattribute $P506, $P504, $P505, "$!name"
unless_null $P506, vivify_314
new $P506, "Undef"
vivify_314:
.return ($P506)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.include "except_types.pasm"
.sub "attributes" :anon :subid("38_1307988395.99251") :outer("21_1307988395.99251")
.param pmc param_508
.param pmc param_509
.param pmc param_510 :optional :named("local")
.param int has_param_510 :opt_flag
.annotate 'line', 224
.const 'Sub' $P522 = "39_1307988395.99251"
capture_lex $P522
.lex "self", param_508
.lex "$obj", param_509
if has_param_510, optparam_315
new $P511, "Undef"
set param_510, $P511
optparam_315:
.lex "$local", param_510
.annotate 'line', 225
$P512 = root_new ['parrot';'ResizablePMCArray']
set $P513, $P512
.lex "@attrs", $P513
.annotate 'line', 224
find_lex $P514, "@attrs"
unless_null $P514, vivify_316
$P514 = root_new ['parrot';'ResizablePMCArray']
vivify_316:
.annotate 'line', 226
find_lex $P516, "self"
find_lex $P517, "$?CLASS"
getattribute $P518, $P516, $P517, "%!attributes"
unless_null $P518, vivify_317
$P518 = root_new ['parrot';'Hash']
vivify_317:
defined $I519, $P518
unless $I519, for_undef_318
iter $P515, $P518
new $P529, 'ExceptionHandler'
set_label $P529, loop528_handler
$P529."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P529
loop528_test:
unless $P515, loop528_done
shift $P520, $P515
loop528_redo:
.const 'Sub' $P522 = "39_1307988395.99251"
capture_lex $P522
$P522($P520)
loop528_next:
goto loop528_test
loop528_handler:
.local pmc exception
.get_results (exception)
getattribute $P530, exception, 'type'
eq $P530, .CONTROL_LOOP_NEXT, loop528_next
eq $P530, .CONTROL_LOOP_REDO, loop528_redo
loop528_done:
pop_eh
for_undef_318:
find_lex $P531, "@attrs"
unless_null $P531, vivify_321
$P531 = root_new ['parrot';'ResizablePMCArray']
vivify_321:
.annotate 'line', 224
.return ($P531)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.sub "_block521" :anon :subid("39_1307988395.99251") :outer("38_1307988395.99251")
.param pmc param_523
.annotate 'line', 226
.lex "$_", param_523
.annotate 'line', 227
find_lex $P524, "@attrs"
unless_null $P524, vivify_319
$P524 = root_new ['parrot';'ResizablePMCArray']
vivify_319:
find_lex $P525, "$_"
unless_null $P525, vivify_320
new $P525, "Undef"
vivify_320:
$P526 = $P525."value"()
$P527 = $P524."push"($P526)
.annotate 'line', 226
.return ($P527)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.sub "roles" :anon :subid("40_1307988395.99251") :outer("21_1307988395.99251")
.param pmc param_533
.param pmc param_534
.annotate 'line', 232
.lex "self", param_533
.lex "$obj", param_534
find_lex $P535, "self"
find_lex $P536, "$?CLASS"
getattribute $P537, $P535, $P536, "@!roles"
unless_null $P537, vivify_322
$P537 = root_new ['parrot';'ResizablePMCArray']
vivify_322:
.return ($P537)
.end
.HLL "nqp"
.namespace ["NQPConcreteRoleHOW"]
.sub "instance_of" :anon :subid("41_1307988395.99251") :outer("21_1307988395.99251")
.param pmc param_539
.param pmc param_540
.annotate 'line', 236
.lex "self", param_539
.lex "$obj", param_540
find_lex $P541, "self"
find_lex $P542, "$?CLASS"
getattribute $P543, $P541, $P542, "$!instance_of"
unless_null $P543, vivify_323
new $P543, "Undef"
vivify_323:
.return ($P543)
.end
.HLL "nqp"
.namespace ["RoleToClassApplier"]
.sub "_block545" :subid("42_1307988395.99251") :outer("10_1307988395.99251")
.annotate 'line', 242
.const 'Sub' $P625 = "47_1307988395.99251"
capture_lex $P625
.const 'Sub' $P584 = "45_1307988395.99251"
capture_lex $P584
.const 'Sub' $P547 = "43_1307988395.99251"
capture_lex $P547
.annotate 'line', 244
.const 'Sub' $P547 = "43_1307988395.99251"
newclosure $P582, $P547
set $P583, $P582
.lex "has_method", $P583
.annotate 'line', 252
.const 'Sub' $P584 = "45_1307988395.99251"
newclosure $P617, $P584
set $P618, $P617
.lex "has_attribute", $P618
.annotate 'line', 242
set $P620, $P619
.lex "$?PACKAGE", $P620
set $P622, $P621
.lex "$?CLASS", $P622
find_lex $P623, "has_method"
find_lex $P624, "has_attribute"
.annotate 'line', 260
.const 'Sub' $P625 = "47_1307988395.99251"
newclosure $P769, $P625
.annotate 'line', 242
.return ($P769)
.end
.HLL "nqp"
.namespace ["RoleToClassApplier"]
.include "except_types.pasm"
.sub "has_method" :subid("43_1307988395.99251") :outer("42_1307988395.99251")
.param pmc param_550
.param pmc param_551
.param pmc param_552
.annotate 'line', 244
.const 'Sub' $P565 = "44_1307988395.99251"
capture_lex $P565
new $P549, ['ExceptionHandler'], .CONTROL_RETURN
set_label $P549, control_548
push_eh $P549
.lex "$target", param_550
.lex "$name", param_551
.lex "$local", param_552
.annotate 'line', 245
$P553 = root_new ['parrot';'ResizablePMCArray']
set $P554, $P553
.lex "@methods", $P554
find_lex $P555, "$target"
unless_null $P555, vivify_324
new $P555, "Undef"
vivify_324:
get_how $P556, $P555
find_lex $P557, "$target"
unless_null $P557, vivify_325
new $P557, "Undef"
vivify_325:
find_lex $P558, "$local"
unless_null $P558, vivify_326
new $P558, "Undef"
vivify_326:
$P559 = $P556."methods"($P557, $P558 :named("local"))
store_lex "@methods", $P559
.annotate 'line', 246
find_lex $P561, "@methods"
unless_null $P561, vivify_327
$P561 = root_new ['parrot';'ResizablePMCArray']
vivify_327:
defined $I562, $P561
unless $I562, for_undef_328
iter $P560, $P561
new $P577, 'ExceptionHandler'
set_label $P577, loop576_handler
$P577."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P577
loop576_test:
unless $P560, loop576_done
shift $P563, $P560
loop576_redo:
.const 'Sub' $P565 = "44_1307988395.99251"
capture_lex $P565
$P565($P563)
loop576_next:
goto loop576_test
loop576_handler:
.local pmc exception
.get_results (exception)
getattribute $P578, exception, 'type'
eq $P578, .CONTROL_LOOP_NEXT, loop576_next
eq $P578, .CONTROL_LOOP_REDO, loop576_redo
loop576_done:
pop_eh
for_undef_328:
.annotate 'line', 249
new $P579, "Exception"
set $P579['type'], .CONTROL_RETURN
new $P580, "Integer"
assign $P580, 0
setattribute $P579, 'payload', $P580
throw $P579
.annotate 'line', 244
.return ()
control_548:
.local pmc exception
.get_results (exception)
getattribute $P581, exception, "payload"
.return ($P581)
.end
.HLL "nqp"
.namespace ["RoleToClassApplier"]
.include "except_types.pasm"
.sub "_block564" :anon :subid("44_1307988395.99251") :outer("43_1307988395.99251")
.param pmc param_566
.annotate 'line', 246
.lex "$_", param_566
.annotate 'line', 247
find_lex $P569, "$_"
unless_null $P569, vivify_329
new $P569, "Undef"
vivify_329:
set $S570, $P569
find_lex $P571, "$name"
unless_null $P571, vivify_330
new $P571, "Undef"
vivify_330:
set $S572, $P571
iseq $I573, $S570, $S572
if $I573, if_568
new $P567, 'Integer'
set $P567, $I573
goto if_568_end
if_568:
new $P574, "Exception"
set $P574['type'], .CONTROL_RETURN
new $P575, "Integer"
assign $P575, 1
setattribute $P574, 'payload', $P575
throw $P574
if_568_end:
.annotate 'line', 246
.return ($P567)
.end
.HLL "nqp"
.namespace ["RoleToClassApplier"]
.include "except_types.pasm"
.sub "has_attribute" :subid("45_1307988395.99251") :outer("42_1307988395.99251")
.param pmc param_587
.param pmc param_588
.annotate 'line', 252
.const 'Sub' $P600 = "46_1307988395.99251"
capture_lex $P600
new $P586, ['ExceptionHandler'], .CONTROL_RETURN
set_label $P586, control_585
push_eh $P586
.lex "$target", param_587
.lex "$name", param_588
.annotate 'line', 253
$P589 = root_new ['parrot';'ResizablePMCArray']
set $P590, $P589
.lex "@attributes", $P590
find_lex $P591, "$target"
unless_null $P591, vivify_331
new $P591, "Undef"
vivify_331:
get_how $P592, $P591
find_lex $P593, "$target"
unless_null $P593, vivify_332
new $P593, "Undef"
vivify_332:
$P594 = $P592."attributes"($P593, 1 :named("local"))
store_lex "@attributes", $P594
.annotate 'line', 254
find_lex $P596, "@attributes"
unless_null $P596, vivify_333
$P596 = root_new ['parrot';'ResizablePMCArray']
vivify_333:
defined $I597, $P596
unless $I597, for_undef_334
iter $P595, $P596
new $P612, 'ExceptionHandler'
set_label $P612, loop611_handler
$P612."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P612
loop611_test:
unless $P595, loop611_done
shift $P598, $P595
loop611_redo:
.const 'Sub' $P600 = "46_1307988395.99251"
capture_lex $P600
$P600($P598)
loop611_next:
goto loop611_test
loop611_handler:
.local pmc exception
.get_results (exception)
getattribute $P613, exception, 'type'
eq $P613, .CONTROL_LOOP_NEXT, loop611_next
eq $P613, .CONTROL_LOOP_REDO, loop611_redo
loop611_done:
pop_eh
for_undef_334:
.annotate 'line', 257
new $P614, "Exception"
set $P614['type'], .CONTROL_RETURN
new $P615, "Integer"
assign $P615, 0
setattribute $P614, 'payload', $P615
throw $P614
.annotate 'line', 252
.return ()
control_585:
.local pmc exception
.get_results (exception)
getattribute $P616, exception, "payload"
.return ($P616)
.end
.HLL "nqp"
.namespace ["RoleToClassApplier"]
.include "except_types.pasm"
.sub "_block599" :anon :subid("46_1307988395.99251") :outer("45_1307988395.99251")
.param pmc param_601
.annotate 'line', 254
.lex "$_", param_601
.annotate 'line', 255
find_lex $P604, "$_"
unless_null $P604, vivify_335
new $P604, "Undef"
vivify_335:
$S605 = $P604."name"()
find_lex $P606, "$name"
unless_null $P606, vivify_336
new $P606, "Undef"
vivify_336:
set $S607, $P606
iseq $I608, $S605, $S607
if $I608, if_603
new $P602, 'Integer'
set $P602, $I608
goto if_603_end
if_603:
new $P609, "Exception"
set $P609['type'], .CONTROL_RETURN
new $P610, "Integer"
assign $P610, 1
setattribute $P609, 'payload', $P610
throw $P609
if_603_end:
.annotate 'line', 254
.return ($P602)
.end
.HLL "nqp"
.namespace ["RoleToClassApplier"]
.include "except_types.pasm"
.sub "apply" :anon :subid("47_1307988395.99251") :outer("42_1307988395.99251")
.param pmc param_626
.param pmc param_627
.param pmc param_628
.annotate 'line', 260
.const 'Sub' $P740 = "51_1307988395.99251"
capture_lex $P740
.const 'Sub' $P714 = "50_1307988395.99251"
capture_lex $P714
.const 'Sub' $P685 = "49_1307988395.99251"
capture_lex $P685
.const 'Sub' $P665 = "48_1307988395.99251"
capture_lex $P665
.lex "self", param_626
.lex "$target", param_627
.lex "@roles", param_628
.annotate 'line', 263
new $P629, "Undef"
set $P630, $P629
.lex "$to_compose", $P630
.annotate 'line', 264
new $P631, "Undef"
set $P632, $P631
.lex "$to_compose_meta", $P632
.annotate 'line', 279
$P633 = root_new ['parrot';'ResizablePMCArray']
set $P634, $P633
.lex "@collisions", $P634
.annotate 'line', 288
$P635 = root_new ['parrot';'ResizablePMCArray']
set $P636, $P635
.lex "@methods", $P636
.annotate 'line', 296
$P637 = root_new ['parrot';'ResizablePMCArray']
set $P638, $P637
.lex "@attributes", $P638
.annotate 'line', 308
$P639 = root_new ['parrot';'ResizablePMCArray']
set $P640, $P639
.lex "@done", $P640
.annotate 'line', 260
find_lex $P641, "$to_compose"
unless_null $P641, vivify_337
new $P641, "Undef"
vivify_337:
find_lex $P642, "$to_compose_meta"
unless_null $P642, vivify_338
new $P642, "Undef"
vivify_338:
.annotate 'line', 265
find_lex $P644, "@roles"
unless_null $P644, vivify_339
$P644 = root_new ['parrot';'ResizablePMCArray']
vivify_339:
set $N645, $P644
iseq $I646, $N645, 1.0
if $I646, if_643
.annotate 'line', 270
find_lex $P651, "NQPConcreteRoleHOW"
find_lex $P652, "$?PACKAGE"
get_who $P653, $P652
set $P656, $P653["NQPMu"]
unless_null $P656, vivify_340
get_hll_global $P654, "GLOBAL"
get_who $P655, $P654
set $P656, $P655["NQPMu"]
vivify_340:
$P657 = $P651."new_type"($P656 :named("instance_of"))
store_lex "$to_compose", $P657
.annotate 'line', 271
find_lex $P658, "$to_compose"
unless_null $P658, vivify_341
new $P658, "Undef"
vivify_341:
get_how $P659, $P658
store_lex "$to_compose_meta", $P659
.annotate 'line', 272
find_lex $P661, "@roles"
unless_null $P661, vivify_342
$P661 = root_new ['parrot';'ResizablePMCArray']
vivify_342:
defined $I662, $P661
unless $I662, for_undef_343
iter $P660, $P661
new $P672, 'ExceptionHandler'
set_label $P672, loop671_handler
$P672."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P672
loop671_test:
unless $P660, loop671_done
shift $P663, $P660
loop671_redo:
.const 'Sub' $P665 = "48_1307988395.99251"
capture_lex $P665
$P665($P663)
loop671_next:
goto loop671_test
loop671_handler:
.local pmc exception
.get_results (exception)
getattribute $P673, exception, 'type'
eq $P673, .CONTROL_LOOP_NEXT, loop671_next
eq $P673, .CONTROL_LOOP_REDO, loop671_redo
loop671_done:
pop_eh
for_undef_343:
.annotate 'line', 275
find_lex $P674, "$to_compose_meta"
unless_null $P674, vivify_347
new $P674, "Undef"
vivify_347:
find_lex $P675, "$to_compose"
unless_null $P675, vivify_348
new $P675, "Undef"
vivify_348:
$P676 = $P674."compose"($P675)
store_lex "$to_compose", $P676
.annotate 'line', 269
goto if_643_end
if_643:
.annotate 'line', 266
find_lex $P647, "@roles"
unless_null $P647, vivify_349
$P647 = root_new ['parrot';'ResizablePMCArray']
vivify_349:
set $P648, $P647[0]
unless_null $P648, vivify_350
new $P648, "Undef"
vivify_350:
store_lex "$to_compose", $P648
.annotate 'line', 267
find_lex $P649, "$to_compose"
unless_null $P649, vivify_351
new $P649, "Undef"
vivify_351:
get_how $P650, $P649
store_lex "$to_compose_meta", $P650
if_643_end:
.annotate 'line', 279
find_lex $P677, "$to_compose_meta"
unless_null $P677, vivify_352
new $P677, "Undef"
vivify_352:
find_lex $P678, "$to_compose"
unless_null $P678, vivify_353
new $P678, "Undef"
vivify_353:
$P679 = $P677."collisions"($P678)
store_lex "@collisions", $P679
.annotate 'line', 280
find_lex $P681, "@collisions"
unless_null $P681, vivify_354
$P681 = root_new ['parrot';'ResizablePMCArray']
vivify_354:
defined $I682, $P681
unless $I682, for_undef_355
iter $P680, $P681
new $P704, 'ExceptionHandler'
set_label $P704, loop703_handler
$P704."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P704
loop703_test:
unless $P680, loop703_done
shift $P683, $P680
loop703_redo:
.const 'Sub' $P685 = "49_1307988395.99251"
capture_lex $P685
$P685($P683)
loop703_next:
goto loop703_test
loop703_handler:
.local pmc exception
.get_results (exception)
getattribute $P705, exception, 'type'
eq $P705, .CONTROL_LOOP_NEXT, loop703_next
eq $P705, .CONTROL_LOOP_REDO, loop703_redo
loop703_done:
pop_eh
for_undef_355:
.annotate 'line', 288
find_lex $P706, "$to_compose_meta"
unless_null $P706, vivify_361
new $P706, "Undef"
vivify_361:
find_lex $P707, "$to_compose"
unless_null $P707, vivify_362
new $P707, "Undef"
vivify_362:
$P708 = $P706."methods"($P707)
store_lex "@methods", $P708
.annotate 'line', 289
find_lex $P710, "@methods"
unless_null $P710, vivify_363
$P710 = root_new ['parrot';'ResizablePMCArray']
vivify_363:
defined $I711, $P710
unless $I711, for_undef_364
iter $P709, $P710
new $P730, 'ExceptionHandler'
set_label $P730, loop729_handler
$P730."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P730
loop729_test:
unless $P709, loop729_done
shift $P712, $P709
loop729_redo:
.const 'Sub' $P714 = "50_1307988395.99251"
capture_lex $P714
$P714($P712)
loop729_next:
goto loop729_test
loop729_handler:
.local pmc exception
.get_results (exception)
getattribute $P731, exception, 'type'
eq $P731, .CONTROL_LOOP_NEXT, loop729_next
eq $P731, .CONTROL_LOOP_REDO, loop729_redo
loop729_done:
pop_eh
for_undef_364:
.annotate 'line', 296
find_lex $P732, "$to_compose_meta"
unless_null $P732, vivify_371
new $P732, "Undef"
vivify_371:
find_lex $P733, "$to_compose"
unless_null $P733, vivify_372
new $P733, "Undef"
vivify_372:
$P734 = $P732."attributes"($P733)
store_lex "@attributes", $P734
.annotate 'line', 297
find_lex $P736, "@attributes"
unless_null $P736, vivify_373
$P736 = root_new ['parrot';'ResizablePMCArray']
vivify_373:
defined $I737, $P736
unless $I737, for_undef_374
iter $P735, $P736
new $P764, 'ExceptionHandler'
set_label $P764, loop763_handler
$P764."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P764
loop763_test:
unless $P735, loop763_done
shift $P738, $P735
loop763_redo:
.const 'Sub' $P740 = "51_1307988395.99251"
capture_lex $P740
$P740($P738)
loop763_next:
goto loop763_test
loop763_handler:
.local pmc exception
.get_results (exception)
getattribute $P765, exception, 'type'
eq $P765, .CONTROL_LOOP_NEXT, loop763_next
eq $P765, .CONTROL_LOOP_REDO, loop763_redo
loop763_done:
pop_eh
for_undef_374:
find_lex $P766, "@done"
unless_null $P766, vivify_383
$P766 = root_new ['parrot';'ResizablePMCArray']
vivify_383:
.annotate 'line', 309
find_lex $P767, "$to_compose"
unless_null $P767, vivify_384
new $P767, "Undef"
vivify_384:
find_lex $P768, "@done"
unless_null $P768, vivify_385
$P768 = root_new ['parrot';'ResizablePMCArray']
store_lex "@done", $P768
vivify_385:
set $P768[0], $P767
.annotate 'line', 260
.return ($P767)
.end
.HLL "nqp"
.namespace ["RoleToClassApplier"]
.sub "_block664" :anon :subid("48_1307988395.99251") :outer("47_1307988395.99251")
.param pmc param_666
.annotate 'line', 272
.lex "$_", param_666
.annotate 'line', 273
find_lex $P667, "$to_compose_meta"
unless_null $P667, vivify_344
new $P667, "Undef"
vivify_344:
find_lex $P668, "$to_compose"
unless_null $P668, vivify_345
new $P668, "Undef"
vivify_345:
find_lex $P669, "$_"
unless_null $P669, vivify_346
new $P669, "Undef"
vivify_346:
$P670 = $P667."add_role"($P668, $P669)
.annotate 'line', 272
.return ($P670)
.end
.HLL "nqp"
.namespace ["RoleToClassApplier"]
.sub "_block684" :anon :subid("49_1307988395.99251") :outer("47_1307988395.99251")
.param pmc param_686
.annotate 'line', 280
.lex "$_", param_686
.annotate 'line', 281
find_lex $P689, "$target"
unless_null $P689, vivify_356
new $P689, "Undef"
vivify_356:
find_lex $P690, "$_"
unless_null $P690, vivify_357
new $P690, "Undef"
vivify_357:
set $S691, $P690
$P692 = "has_method"($P689, $S691, 1)
unless $P692, unless_688
set $P687, $P692
goto unless_688_end
unless_688:
.annotate 'line', 282
new $P693, 'String'
set $P693, "Method '"
find_lex $P694, "$_"
unless_null $P694, vivify_358
new $P694, "Undef"
vivify_358:
concat $P695, $P693, $P694
concat $P696, $P695, "' collides and a resolution must be provided by the class '"
.annotate 'line', 283
find_lex $P697, "$target"
unless_null $P697, vivify_359
new $P697, "Undef"
vivify_359:
get_how $P698, $P697
find_lex $P699, "$target"
unless_null $P699, vivify_360
new $P699, "Undef"
vivify_360:
$S700 = $P698."name"($P699)
concat $P701, $P696, $S700
.annotate 'line', 282
concat $P702, $P701, "'"
.annotate 'line', 283
die $P702
unless_688_end:
.annotate 'line', 280
.return ($P687)
.end
.HLL "nqp"
.namespace ["RoleToClassApplier"]
.sub "_block713" :anon :subid("50_1307988395.99251") :outer("47_1307988395.99251")
.param pmc param_715
.annotate 'line', 289
.lex "$_", param_715
.annotate 'line', 290
find_lex $P718, "$target"
unless_null $P718, vivify_365
new $P718, "Undef"
vivify_365:
find_lex $P719, "$_"
unless_null $P719, vivify_366
new $P719, "Undef"
vivify_366:
set $S720, $P719
$P721 = "has_method"($P718, $S720, 0)
unless $P721, unless_717
set $P716, $P721
goto unless_717_end
unless_717:
.annotate 'line', 291
find_lex $P722, "$target"
unless_null $P722, vivify_367
new $P722, "Undef"
vivify_367:
get_how $P723, $P722
find_lex $P724, "$target"
unless_null $P724, vivify_368
new $P724, "Undef"
vivify_368:
find_lex $P725, "$_"
unless_null $P725, vivify_369
new $P725, "Undef"
vivify_369:
set $S726, $P725
find_lex $P727, "$_"
unless_null $P727, vivify_370
new $P727, "Undef"
vivify_370:
$P728 = $P723."add_method"($P724, $S726, $P727)
.annotate 'line', 290
set $P716, $P728
unless_717_end:
.annotate 'line', 289
.return ($P716)
.end
.HLL "nqp"
.namespace ["RoleToClassApplier"]
.sub "_block739" :anon :subid("51_1307988395.99251") :outer("47_1307988395.99251")
.param pmc param_741
.annotate 'line', 297
.lex "$_", param_741
.annotate 'line', 298
find_lex $P743, "$target"
unless_null $P743, vivify_375
new $P743, "Undef"
vivify_375:
find_lex $P744, "$_"
unless_null $P744, vivify_376
new $P744, "Undef"
vivify_376:
$P745 = $P744."name"()
$P746 = "has_attribute"($P743, $P745)
unless $P746, if_742_end
.annotate 'line', 299
new $P747, "String"
assign $P747, "Attribute '"
find_lex $P748, "$_"
unless_null $P748, vivify_377
new $P748, "Undef"
vivify_377:
$S749 = $P748."name"()
concat $P750, $P747, $S749
concat $P751, $P750, "' already exists in the class '"
.annotate 'line', 300
find_lex $P752, "$target"
unless_null $P752, vivify_378
new $P752, "Undef"
vivify_378:
get_how $P753, $P752
find_lex $P754, "$target"
unless_null $P754, vivify_379
new $P754, "Undef"
vivify_379:
$S755 = $P753."name"($P754)
concat $P756, $P751, $S755
.annotate 'line', 299
concat $P757, $P756, "', but a role also wishes to compose it"
.annotate 'line', 300
die $P757
if_742_end:
.annotate 'line', 302
find_lex $P758, "$target"
unless_null $P758, vivify_380
new $P758, "Undef"
vivify_380:
get_how $P759, $P758
find_lex $P760, "$target"
unless_null $P760, vivify_381
new $P760, "Undef"
vivify_381:
find_lex $P761, "$_"
unless_null $P761, vivify_382
new $P761, "Undef"
vivify_382:
$P762 = $P759."add_attribute"($P760, $P761)
.annotate 'line', 297
.return ($P762)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "_block770" :subid("52_1307988395.99251") :outer("10_1307988395.99251")
.annotate 'line', 318
.const 'Sub' $P1093 = "76_1307988395.99251"
capture_lex $P1093
.const 'Sub' $P1068 = "74_1307988395.99251"
capture_lex $P1068
.const 'Sub' $P1062 = "73_1307988395.99251"
capture_lex $P1062
.const 'Sub' $P1056 = "72_1307988395.99251"
capture_lex $P1056
.const 'Sub' $P1031 = "70_1307988395.99251"
capture_lex $P1031
.const 'Sub' $P922 = "65_1307988395.99251"
capture_lex $P922
.const 'Sub' $P919 = "64_1307988395.99251"
capture_lex $P919
.const 'Sub' $P912 = "63_1307988395.99251"
capture_lex $P912
.const 'Sub' $P899 = "62_1307988395.99251"
capture_lex $P899
.const 'Sub' $P895 = "61_1307988395.99251"
capture_lex $P895
.const 'Sub' $P873 = "60_1307988395.99251"
capture_lex $P873
.const 'Sub' $P851 = "59_1307988395.99251"
capture_lex $P851
.const 'Sub' $P832 = "58_1307988395.99251"
capture_lex $P832
.const 'Sub' $P825 = "57_1307988395.99251"
capture_lex $P825
.const 'Sub' $P809 = "56_1307988395.99251"
capture_lex $P809
.const 'Sub' $P803 = "55_1307988395.99251"
capture_lex $P803
.const 'Sub' $P793 = "54_1307988395.99251"
capture_lex $P793
.const 'Sub' $P772 = "53_1307988395.99251"
capture_lex $P772
.annotate 'line', 455
.const 'Sub' $P772 = "53_1307988395.99251"
newclosure $P787, $P772
set $P788, $P787
.lex "reify_method", $P788
.annotate 'line', 318
set $P790, $P789
.lex "$?PACKAGE", $P790
set $P792, $P791
.lex "$?CLASS", $P792
.annotate 'line', 420
find_lex $P1030, "reify_method"
.annotate 'line', 488
.const 'Sub' $P1093 = "76_1307988395.99251"
newclosure $P1099, $P1093
.annotate 'line', 318
.return ($P1099)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "reify_method" :subid("53_1307988395.99251") :outer("52_1307988395.99251")
.param pmc param_773
.annotate 'line', 455
.lex "$meth", param_773
.annotate 'line', 456
new $P774, "Undef"
set $P775, $P774
.lex "$callback", $P775
find_lex $P776, "$meth"
unless_null $P776, vivify_386
new $P776, "Undef"
vivify_386:
getprop $P777, "REIFY_CALLBACK", $P776
store_lex "$callback", $P777
.annotate 'line', 457
find_lex $P780, "$callback"
unless_null $P780, vivify_387
new $P780, "Undef"
vivify_387:
defined $I781, $P780
if $I781, if_779
find_lex $P785, "$meth"
unless_null $P785, vivify_388
new $P785, "Undef"
vivify_388:
clone $P786, $P785
set $P778, $P786
goto if_779_end
if_779:
find_lex $P782, "$callback"
unless_null $P782, vivify_389
new $P782, "Undef"
vivify_389:
find_lex $P783, "$meth"
unless_null $P783, vivify_390
new $P783, "Undef"
vivify_390:
$P784 = $P782($P783)
set $P778, $P784
if_779_end:
.annotate 'line', 455
.return ($P778)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "new" :anon :subid("54_1307988395.99251") :outer("52_1307988395.99251")
.param pmc param_794
.param pmc param_795 :named("name")
.annotate 'line', 348
.lex "self", param_794
.lex "$name", param_795
.annotate 'line', 349
new $P796, "Undef"
set $P797, $P796
.lex "$obj", $P797
find_lex $P798, "self"
repr_instance_of $P799, $P798
store_lex "$obj", $P799
.annotate 'line', 350
find_lex $P800, "$obj"
unless_null $P800, vivify_391
new $P800, "Undef"
vivify_391:
find_lex $P801, "$name"
unless_null $P801, vivify_392
new $P801, "Undef"
vivify_392:
$P800."BUILD"($P801 :named("name"))
find_lex $P802, "$obj"
unless_null $P802, vivify_393
new $P802, "Undef"
vivify_393:
.annotate 'line', 348
.return ($P802)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "BUILD" :anon :subid("55_1307988395.99251") :outer("52_1307988395.99251")
.param pmc param_804
.param pmc param_805 :named("name")
.annotate 'line', 354
.lex "self", param_804
.lex "$name", param_805
.annotate 'line', 355
find_lex $P806, "$name"
unless_null $P806, vivify_394
new $P806, "Undef"
vivify_394:
find_lex $P807, "self"
find_lex $P808, "$?CLASS"
setattribute $P807, $P808, "$!name", $P806
.annotate 'line', 354
.return ($P806)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "new_type" :anon :subid("56_1307988395.99251") :outer("52_1307988395.99251")
.param pmc param_810
.param pmc param_811 :optional :named("name")
.param int has_param_811 :opt_flag
.param pmc param_813 :optional :named("repr")
.param int has_param_813 :opt_flag
.annotate 'line', 360
.lex "self", param_810
if has_param_811, optparam_395
new $P812, "String"
assign $P812, "<anon>"
set param_811, $P812
optparam_395:
.lex "$name", param_811
if has_param_813, optparam_396
new $P814, "String"
assign $P814, "P6opaque"
set param_813, $P814
optparam_396:
.lex "$repr", param_813
.annotate 'line', 361
new $P815, "Undef"
set $P816, $P815
.lex "$metarole", $P816
find_lex $P817, "self"
find_lex $P818, "$name"
unless_null $P818, vivify_397
new $P818, "Undef"
vivify_397:
$P819 = $P817."new"($P818 :named("name"))
store_lex "$metarole", $P819
.annotate 'line', 363
find_lex $P820, "$metarole"
unless_null $P820, vivify_398
new $P820, "Undef"
vivify_398:
find_lex $P821, "$repr"
unless_null $P821, vivify_399
new $P821, "Undef"
vivify_399:
set $S822, $P821
repr_type_object_for $P823, $P820, $S822
$P824 = root_new ['parrot';'Hash']
set_who $P823, $P824
.annotate 'line', 360
.return ($P823)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "set_body_block" :anon :subid("57_1307988395.99251") :outer("52_1307988395.99251")
.param pmc param_826
.param pmc param_827
.param pmc param_828
.annotate 'line', 367
.lex "self", param_826
.lex "$obj", param_827
.lex "$body_block", param_828
.annotate 'line', 368
find_lex $P829, "$body_block"
unless_null $P829, vivify_400
new $P829, "Undef"
vivify_400:
find_lex $P830, "self"
find_lex $P831, "$?CLASS"
setattribute $P830, $P831, "$!body_block", $P829
.annotate 'line', 367
.return ($P829)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "add_method" :anon :subid("58_1307988395.99251") :outer("52_1307988395.99251")
.param pmc param_833
.param pmc param_834
.param pmc param_835
.param pmc param_836
.annotate 'line', 371
.lex "self", param_833
.lex "$obj", param_834
.lex "$name", param_835
.lex "$code_obj", param_836
.annotate 'line', 372
find_lex $P838, "$name"
unless_null $P838, vivify_401
new $P838, "Undef"
vivify_401:
find_lex $P839, "self"
find_lex $P840, "$?CLASS"
getattribute $P841, $P839, $P840, "%!methods"
unless_null $P841, vivify_402
$P841 = root_new ['parrot';'Hash']
vivify_402:
set $P842, $P841[$P838]
unless_null $P842, vivify_403
new $P842, "Undef"
vivify_403:
unless $P842, if_837_end
.annotate 'line', 373
new $P843, "String"
assign $P843, "This role already has a method named "
find_lex $P844, "$name"
unless_null $P844, vivify_404
new $P844, "Undef"
vivify_404:
concat $P845, $P843, $P844
die $P845
if_837_end:
.annotate 'line', 375
find_lex $P846, "$code_obj"
unless_null $P846, vivify_405
new $P846, "Undef"
vivify_405:
find_lex $P847, "$name"
unless_null $P847, vivify_406
new $P847, "Undef"
vivify_406:
find_lex $P848, "self"
find_lex $P849, "$?CLASS"
getattribute $P850, $P848, $P849, "%!methods"
unless_null $P850, vivify_407
$P850 = root_new ['parrot';'Hash']
setattribute $P848, $P849, "%!methods", $P850
vivify_407:
set $P850[$P847], $P846
.annotate 'line', 371
.return ($P846)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "add_multi_method" :anon :subid("59_1307988395.99251") :outer("52_1307988395.99251")
.param pmc param_852
.param pmc param_853
.param pmc param_854
.param pmc param_855
.annotate 'line', 378
.lex "self", param_852
.lex "$obj", param_853
.lex "$name", param_854
.lex "$code_obj", param_855
.annotate 'line', 379
$P856 = root_new ['parrot';'Hash']
set $P857, $P856
.lex "%todo", $P857
.annotate 'line', 378
find_lex $P858, "%todo"
unless_null $P858, vivify_408
$P858 = root_new ['parrot';'Hash']
vivify_408:
.annotate 'line', 380
find_lex $P859, "$name"
unless_null $P859, vivify_409
new $P859, "Undef"
vivify_409:
find_lex $P860, "%todo"
unless_null $P860, vivify_410
$P860 = root_new ['parrot';'Hash']
store_lex "%todo", $P860
vivify_410:
set $P860["name"], $P859
.annotate 'line', 381
find_lex $P861, "$code_obj"
unless_null $P861, vivify_411
new $P861, "Undef"
vivify_411:
find_lex $P862, "%todo"
unless_null $P862, vivify_412
$P862 = root_new ['parrot';'Hash']
store_lex "%todo", $P862
vivify_412:
set $P862["code"], $P861
.annotate 'line', 382
find_lex $P863, "%todo"
unless_null $P863, vivify_413
$P863 = root_new ['parrot';'Hash']
vivify_413:
find_lex $P864, "self"
find_lex $P865, "$?CLASS"
getattribute $P866, $P864, $P865, "@!multi_methods_to_incorporate"
unless_null $P866, vivify_414
$P866 = root_new ['parrot';'ResizablePMCArray']
vivify_414:
set $N867, $P866
set $I868, $N867
find_lex $P869, "self"
find_lex $P870, "$?CLASS"
getattribute $P871, $P869, $P870, "@!multi_methods_to_incorporate"
unless_null $P871, vivify_415
$P871 = root_new ['parrot';'ResizablePMCArray']
setattribute $P869, $P870, "@!multi_methods_to_incorporate", $P871
vivify_415:
set $P871[$I868], $P863
find_lex $P872, "$code_obj"
unless_null $P872, vivify_416
new $P872, "Undef"
vivify_416:
.annotate 'line', 378
.return ($P872)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "add_attribute" :anon :subid("60_1307988395.99251") :outer("52_1307988395.99251")
.param pmc param_874
.param pmc param_875
.param pmc param_876
.annotate 'line', 386
.lex "self", param_874
.lex "$obj", param_875
.lex "$meta_attr", param_876
.annotate 'line', 387
new $P877, "Undef"
set $P878, $P877
.lex "$name", $P878
find_lex $P879, "$meta_attr"
unless_null $P879, vivify_417
new $P879, "Undef"
vivify_417:
$P880 = $P879."name"()
store_lex "$name", $P880
.annotate 'line', 388
find_lex $P882, "$name"
unless_null $P882, vivify_418
new $P882, "Undef"
vivify_418:
find_lex $P883, "self"
find_lex $P884, "$?CLASS"
getattribute $P885, $P883, $P884, "%!attributes"
unless_null $P885, vivify_419
$P885 = root_new ['parrot';'Hash']
vivify_419:
set $P886, $P885[$P882]
unless_null $P886, vivify_420
new $P886, "Undef"
vivify_420:
unless $P886, if_881_end
.annotate 'line', 389
new $P887, "String"
assign $P887, "This role already has an attribute named "
find_lex $P888, "$name"
unless_null $P888, vivify_421
new $P888, "Undef"
vivify_421:
concat $P889, $P887, $P888
die $P889
if_881_end:
.annotate 'line', 391
find_lex $P890, "$meta_attr"
unless_null $P890, vivify_422
new $P890, "Undef"
vivify_422:
find_lex $P891, "$name"
unless_null $P891, vivify_423
new $P891, "Undef"
vivify_423:
find_lex $P892, "self"
find_lex $P893, "$?CLASS"
getattribute $P894, $P892, $P893, "%!attributes"
unless_null $P894, vivify_424
$P894 = root_new ['parrot';'Hash']
setattribute $P892, $P893, "%!attributes", $P894
vivify_424:
set $P894[$P891], $P890
.annotate 'line', 386
.return ($P890)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "add_parent" :anon :subid("61_1307988395.99251") :outer("52_1307988395.99251")
.param pmc param_896
.param pmc param_897
.param pmc param_898
.annotate 'line', 394
.lex "self", param_896
.lex "$obj", param_897
.lex "$parent", param_898
.annotate 'line', 395
die "A role cannot inherit from a class"
.annotate 'line', 394
.return ()
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "add_role" :anon :subid("62_1307988395.99251") :outer("52_1307988395.99251")
.param pmc param_900
.param pmc param_901
.param pmc param_902
.annotate 'line', 398
.lex "self", param_900
.lex "$obj", param_901
.lex "$role", param_902
.annotate 'line', 399
find_lex $P903, "$role"
unless_null $P903, vivify_425
new $P903, "Undef"
vivify_425:
find_lex $P904, "self"
find_lex $P905, "$?CLASS"
getattribute $P906, $P904, $P905, "@!roles"
unless_null $P906, vivify_426
$P906 = root_new ['parrot';'ResizablePMCArray']
vivify_426:
set $N907, $P906
set $I908, $N907
find_lex $P909, "self"
find_lex $P910, "$?CLASS"
getattribute $P911, $P909, $P910, "@!roles"
unless_null $P911, vivify_427
$P911 = root_new ['parrot';'ResizablePMCArray']
setattribute $P909, $P910, "@!roles", $P911
vivify_427:
set $P911[$I908], $P903
.annotate 'line', 398
.return ($P903)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "compose" :anon :subid("63_1307988395.99251") :outer("52_1307988395.99251")
.param pmc param_913
.param pmc param_914
.annotate 'line', 403
.lex "self", param_913
.lex "$obj", param_914
.annotate 'line', 404
new $P915, "Integer"
assign $P915, 1
find_lex $P916, "self"
find_lex $P917, "$?CLASS"
setattribute $P916, $P917, "$!composed", $P915
find_lex $P918, "$obj"
unless_null $P918, vivify_428
new $P918, "Undef"
vivify_428:
.annotate 'line', 403
.return ($P918)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "parametric" :anon :subid("64_1307988395.99251") :outer("52_1307988395.99251")
.param pmc param_920
.param pmc param_921
.annotate 'line', 414
.lex "self", param_920
.lex "$obj", param_921
.return (1)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.include "except_types.pasm"
.sub "instantiate" :anon :subid("65_1307988395.99251") :outer("52_1307988395.99251")
.param pmc param_925
.param pmc param_926
.param pmc param_927
.annotate 'line', 420
.const 'Sub' $P1007 = "69_1307988395.99251"
capture_lex $P1007
.const 'Sub' $P986 = "68_1307988395.99251"
capture_lex $P986
.const 'Sub' $P965 = "67_1307988395.99251"
capture_lex $P965
.const 'Sub' $P947 = "66_1307988395.99251"
capture_lex $P947
new $P924, ['ExceptionHandler'], .CONTROL_RETURN
set_label $P924, control_923
push_eh $P924
.lex "self", param_925
.lex "$obj", param_926
.lex "$class_arg", param_927
.annotate 'line', 426
new $P928, "Undef"
set $P929, $P928
.lex "$irole", $P929
.annotate 'line', 423
find_lex $P930, "self"
find_lex $P931, "$?CLASS"
getattribute $P932, $P930, $P931, "$!body_block"
unless_null $P932, vivify_429
new $P932, "Undef"
vivify_429:
find_lex $P933, "$class_arg"
unless_null $P933, vivify_430
new $P933, "Undef"
vivify_430:
$P932($P933)
.annotate 'line', 426
find_lex $P934, "NQPConcreteRoleHOW"
find_lex $P935, "self"
find_lex $P936, "$?CLASS"
getattribute $P937, $P935, $P936, "$!name"
unless_null $P937, vivify_431
new $P937, "Undef"
vivify_431:
find_lex $P938, "$obj"
unless_null $P938, vivify_432
new $P938, "Undef"
vivify_432:
$P939 = $P934."new_type"($P937 :named("name"), $P938 :named("instance_of"))
store_lex "$irole", $P939
.annotate 'line', 430
find_lex $P941, "self"
find_lex $P942, "$?CLASS"
getattribute $P943, $P941, $P942, "%!attributes"
unless_null $P943, vivify_433
$P943 = root_new ['parrot';'Hash']
vivify_433:
defined $I944, $P943
unless $I944, for_undef_434
iter $P940, $P943
new $P956, 'ExceptionHandler'
set_label $P956, loop955_handler
$P956."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P956
loop955_test:
unless $P940, loop955_done
shift $P945, $P940
loop955_redo:
.const 'Sub' $P947 = "66_1307988395.99251"
capture_lex $P947
$P947($P945)
loop955_next:
goto loop955_test
loop955_handler:
.local pmc exception
.get_results (exception)
getattribute $P957, exception, 'type'
eq $P957, .CONTROL_LOOP_NEXT, loop955_next
eq $P957, .CONTROL_LOOP_REDO, loop955_redo
loop955_done:
pop_eh
for_undef_434:
.annotate 'line', 435
find_lex $P959, "self"
find_lex $P960, "$?CLASS"
getattribute $P961, $P959, $P960, "%!methods"
unless_null $P961, vivify_438
$P961 = root_new ['parrot';'Hash']
vivify_438:
defined $I962, $P961
unless $I962, for_undef_439
iter $P958, $P961
new $P977, 'ExceptionHandler'
set_label $P977, loop976_handler
$P977."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P977
loop976_test:
unless $P958, loop976_done
shift $P963, $P958
loop976_redo:
.const 'Sub' $P965 = "67_1307988395.99251"
capture_lex $P965
$P965($P963)
loop976_next:
goto loop976_test
loop976_handler:
.local pmc exception
.get_results (exception)
getattribute $P978, exception, 'type'
eq $P978, .CONTROL_LOOP_NEXT, loop976_next
eq $P978, .CONTROL_LOOP_REDO, loop976_redo
loop976_done:
pop_eh
for_undef_439:
.annotate 'line', 438
find_lex $P980, "self"
find_lex $P981, "$?CLASS"
getattribute $P982, $P980, $P981, "@!multi_methods_to_incorporate"
unless_null $P982, vivify_444
$P982 = root_new ['parrot';'ResizablePMCArray']
vivify_444:
defined $I983, $P982
unless $I983, for_undef_445
iter $P979, $P982
new $P998, 'ExceptionHandler'
set_label $P998, loop997_handler
$P998."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P998
loop997_test:
unless $P979, loop997_done
shift $P984, $P979
loop997_redo:
.const 'Sub' $P986 = "68_1307988395.99251"
capture_lex $P986
$P986($P984)
loop997_next:
goto loop997_test
loop997_handler:
.local pmc exception
.get_results (exception)
getattribute $P999, exception, 'type'
eq $P999, .CONTROL_LOOP_NEXT, loop997_next
eq $P999, .CONTROL_LOOP_REDO, loop997_redo
loop997_done:
pop_eh
for_undef_445:
.annotate 'line', 443
find_lex $P1001, "self"
find_lex $P1002, "$?CLASS"
getattribute $P1003, $P1001, $P1002, "@!roles"
unless_null $P1003, vivify_452
$P1003 = root_new ['parrot';'ResizablePMCArray']
vivify_452:
defined $I1004, $P1003
unless $I1004, for_undef_453
iter $P1000, $P1003
new $P1022, 'ExceptionHandler'
set_label $P1022, loop1021_handler
$P1022."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1022
loop1021_test:
unless $P1000, loop1021_done
shift $P1005, $P1000
loop1021_redo:
.const 'Sub' $P1007 = "69_1307988395.99251"
capture_lex $P1007
$P1007($P1005)
loop1021_next:
goto loop1021_test
loop1021_handler:
.local pmc exception
.get_results (exception)
getattribute $P1023, exception, 'type'
eq $P1023, .CONTROL_LOOP_NEXT, loop1021_next
eq $P1023, .CONTROL_LOOP_REDO, loop1021_redo
loop1021_done:
pop_eh
for_undef_453:
.annotate 'line', 449
find_lex $P1024, "$irole"
unless_null $P1024, vivify_460
new $P1024, "Undef"
vivify_460:
get_how $P1025, $P1024
find_lex $P1026, "$irole"
unless_null $P1026, vivify_461
new $P1026, "Undef"
vivify_461:
$P1025."compose"($P1026)
.annotate 'line', 450
new $P1027, "Exception"
set $P1027['type'], .CONTROL_RETURN
find_lex $P1028, "$irole"
unless_null $P1028, vivify_462
new $P1028, "Undef"
vivify_462:
setattribute $P1027, 'payload', $P1028
throw $P1027
.annotate 'line', 420
.return ()
control_923:
.local pmc exception
.get_results (exception)
getattribute $P1029, exception, "payload"
.return ($P1029)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "_block946" :anon :subid("66_1307988395.99251") :outer("65_1307988395.99251")
.param pmc param_948
.annotate 'line', 430
.lex "$_", param_948
.annotate 'line', 431
find_lex $P949, "$irole"
unless_null $P949, vivify_435
new $P949, "Undef"
vivify_435:
get_how $P950, $P949
find_lex $P951, "$irole"
unless_null $P951, vivify_436
new $P951, "Undef"
vivify_436:
find_lex $P952, "$_"
unless_null $P952, vivify_437
new $P952, "Undef"
vivify_437:
$P953 = $P952."value"()
$P954 = $P950."add_attribute"($P951, $P953)
.annotate 'line', 430
.return ($P954)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "_block964" :anon :subid("67_1307988395.99251") :outer("65_1307988395.99251")
.param pmc param_966
.annotate 'line', 435
.lex "$_", param_966
.annotate 'line', 436
find_lex $P967, "$irole"
unless_null $P967, vivify_440
new $P967, "Undef"
vivify_440:
get_how $P968, $P967
find_lex $P969, "$irole"
unless_null $P969, vivify_441
new $P969, "Undef"
vivify_441:
find_lex $P970, "$_"
unless_null $P970, vivify_442
new $P970, "Undef"
vivify_442:
$P971 = $P970."key"()
find_lex $P972, "$_"
unless_null $P972, vivify_443
new $P972, "Undef"
vivify_443:
$P973 = $P972."value"()
$P974 = "reify_method"($P973)
$P975 = $P968."add_method"($P969, $P971, $P974)
.annotate 'line', 435
.return ($P975)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "_block985" :anon :subid("68_1307988395.99251") :outer("65_1307988395.99251")
.param pmc param_987
.annotate 'line', 438
.lex "$_", param_987
.annotate 'line', 439
find_lex $P988, "$irole"
unless_null $P988, vivify_446
new $P988, "Undef"
vivify_446:
get_how $P989, $P988
find_lex $P990, "$irole"
unless_null $P990, vivify_447
new $P990, "Undef"
vivify_447:
find_lex $P991, "$_"
unless_null $P991, vivify_448
$P991 = root_new ['parrot';'Hash']
vivify_448:
set $P992, $P991["name"]
unless_null $P992, vivify_449
new $P992, "Undef"
vivify_449:
find_lex $P993, "$_"
unless_null $P993, vivify_450
$P993 = root_new ['parrot';'Hash']
vivify_450:
set $P994, $P993["code"]
unless_null $P994, vivify_451
new $P994, "Undef"
vivify_451:
$P995 = "reify_method"($P994)
$P996 = $P989."add_multi_method"($P990, $P992, $P995)
.annotate 'line', 438
.return ($P996)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "_block1006" :anon :subid("69_1307988395.99251") :outer("65_1307988395.99251")
.param pmc param_1010
.annotate 'line', 444
new $P1008, "Undef"
set $P1009, $P1008
.lex "$instantiated", $P1009
.lex "$_", param_1010
find_lex $P1011, "$irole"
unless_null $P1011, vivify_454
new $P1011, "Undef"
vivify_454:
get_how $P1012, $P1011
find_lex $P1013, "$irole"
unless_null $P1013, vivify_455
new $P1013, "Undef"
vivify_455:
find_lex $P1014, "$class_arg"
unless_null $P1014, vivify_456
new $P1014, "Undef"
vivify_456:
$P1015 = $P1012."instantiate"($P1013, $P1014)
store_lex "$instantiated", $P1015
.annotate 'line', 445
find_lex $P1016, "$irole"
unless_null $P1016, vivify_457
new $P1016, "Undef"
vivify_457:
get_how $P1017, $P1016
find_lex $P1018, "$irole"
unless_null $P1018, vivify_458
new $P1018, "Undef"
vivify_458:
find_lex $P1019, "$instantiated"
unless_null $P1019, vivify_459
new $P1019, "Undef"
vivify_459:
$P1020 = $P1017."add_role"($P1018, $P1019)
.annotate 'line', 443
.return ($P1020)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.include "except_types.pasm"
.sub "methods" :anon :subid("70_1307988395.99251") :outer("52_1307988395.99251")
.param pmc param_1032
.param pmc param_1033
.param pmc param_1034 :optional :named("local")
.param int has_param_1034 :opt_flag
.annotate 'line', 464
.const 'Sub' $P1046 = "71_1307988395.99251"
capture_lex $P1046
.lex "self", param_1032
.lex "$obj", param_1033
if has_param_1034, optparam_463
new $P1035, "Undef"
set param_1034, $P1035
optparam_463:
.lex "$local", param_1034
.annotate 'line', 465
$P1036 = root_new ['parrot';'ResizablePMCArray']
set $P1037, $P1036
.lex "@meths", $P1037
.annotate 'line', 464
find_lex $P1038, "@meths"
unless_null $P1038, vivify_464
$P1038 = root_new ['parrot';'ResizablePMCArray']
vivify_464:
.annotate 'line', 466
find_lex $P1040, "self"
find_lex $P1041, "$?CLASS"
getattribute $P1042, $P1040, $P1041, "%!methods"
unless_null $P1042, vivify_465
$P1042 = root_new ['parrot';'Hash']
vivify_465:
defined $I1043, $P1042
unless $I1043, for_undef_466
iter $P1039, $P1042
new $P1053, 'ExceptionHandler'
set_label $P1053, loop1052_handler
$P1053."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1053
loop1052_test:
unless $P1039, loop1052_done
shift $P1044, $P1039
loop1052_redo:
.const 'Sub' $P1046 = "71_1307988395.99251"
capture_lex $P1046
$P1046($P1044)
loop1052_next:
goto loop1052_test
loop1052_handler:
.local pmc exception
.get_results (exception)
getattribute $P1054, exception, 'type'
eq $P1054, .CONTROL_LOOP_NEXT, loop1052_next
eq $P1054, .CONTROL_LOOP_REDO, loop1052_redo
loop1052_done:
pop_eh
for_undef_466:
find_lex $P1055, "@meths"
unless_null $P1055, vivify_469
$P1055 = root_new ['parrot';'ResizablePMCArray']
vivify_469:
.annotate 'line', 464
.return ($P1055)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "_block1045" :anon :subid("71_1307988395.99251") :outer("70_1307988395.99251")
.param pmc param_1047
.annotate 'line', 466
.lex "$_", param_1047
.annotate 'line', 467
find_lex $P1048, "@meths"
unless_null $P1048, vivify_467
$P1048 = root_new ['parrot';'ResizablePMCArray']
vivify_467:
find_lex $P1049, "$_"
unless_null $P1049, vivify_468
new $P1049, "Undef"
vivify_468:
$P1050 = $P1049."value"()
$P1051 = $P1048."push"($P1050)
.annotate 'line', 466
.return ($P1051)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "method_table" :anon :subid("72_1307988395.99251") :outer("52_1307988395.99251")
.param pmc param_1057
.param pmc param_1058
.annotate 'line', 472
.lex "self", param_1057
.lex "$obj", param_1058
find_lex $P1059, "self"
find_lex $P1060, "$?CLASS"
getattribute $P1061, $P1059, $P1060, "%!methods"
unless_null $P1061, vivify_470
$P1061 = root_new ['parrot';'Hash']
vivify_470:
.return ($P1061)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "name" :anon :subid("73_1307988395.99251") :outer("52_1307988395.99251")
.param pmc param_1063
.param pmc param_1064
.annotate 'line', 476
.lex "self", param_1063
.lex "$obj", param_1064
find_lex $P1065, "self"
find_lex $P1066, "$?CLASS"
getattribute $P1067, $P1065, $P1066, "$!name"
unless_null $P1067, vivify_471
new $P1067, "Undef"
vivify_471:
.return ($P1067)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.include "except_types.pasm"
.sub "attributes" :anon :subid("74_1307988395.99251") :outer("52_1307988395.99251")
.param pmc param_1069
.param pmc param_1070
.param pmc param_1071 :optional :named("local")
.param int has_param_1071 :opt_flag
.annotate 'line', 480
.const 'Sub' $P1083 = "75_1307988395.99251"
capture_lex $P1083
.lex "self", param_1069
.lex "$obj", param_1070
if has_param_1071, optparam_472
new $P1072, "Undef"
set param_1071, $P1072
optparam_472:
.lex "$local", param_1071
.annotate 'line', 481
$P1073 = root_new ['parrot';'ResizablePMCArray']
set $P1074, $P1073
.lex "@attrs", $P1074
.annotate 'line', 480
find_lex $P1075, "@attrs"
unless_null $P1075, vivify_473
$P1075 = root_new ['parrot';'ResizablePMCArray']
vivify_473:
.annotate 'line', 482
find_lex $P1077, "self"
find_lex $P1078, "$?CLASS"
getattribute $P1079, $P1077, $P1078, "%!attributes"
unless_null $P1079, vivify_474
$P1079 = root_new ['parrot';'Hash']
vivify_474:
defined $I1080, $P1079
unless $I1080, for_undef_475
iter $P1076, $P1079
new $P1090, 'ExceptionHandler'
set_label $P1090, loop1089_handler
$P1090."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1090
loop1089_test:
unless $P1076, loop1089_done
shift $P1081, $P1076
loop1089_redo:
.const 'Sub' $P1083 = "75_1307988395.99251"
capture_lex $P1083
$P1083($P1081)
loop1089_next:
goto loop1089_test
loop1089_handler:
.local pmc exception
.get_results (exception)
getattribute $P1091, exception, 'type'
eq $P1091, .CONTROL_LOOP_NEXT, loop1089_next
eq $P1091, .CONTROL_LOOP_REDO, loop1089_redo
loop1089_done:
pop_eh
for_undef_475:
find_lex $P1092, "@attrs"
unless_null $P1092, vivify_478
$P1092 = root_new ['parrot';'ResizablePMCArray']
vivify_478:
.annotate 'line', 480
.return ($P1092)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "_block1082" :anon :subid("75_1307988395.99251") :outer("74_1307988395.99251")
.param pmc param_1084
.annotate 'line', 482
.lex "$_", param_1084
.annotate 'line', 483
find_lex $P1085, "@attrs"
unless_null $P1085, vivify_476
$P1085 = root_new ['parrot';'ResizablePMCArray']
vivify_476:
find_lex $P1086, "$_"
unless_null $P1086, vivify_477
new $P1086, "Undef"
vivify_477:
$P1087 = $P1086."value"()
$P1088 = $P1085."push"($P1087)
.annotate 'line', 482
.return ($P1088)
.end
.HLL "nqp"
.namespace ["NQPParametricRoleHOW"]
.sub "roles" :anon :subid("76_1307988395.99251") :outer("52_1307988395.99251")
.param pmc param_1094
.param pmc param_1095
.annotate 'line', 488
.lex "self", param_1094
.lex "$obj", param_1095
find_lex $P1096, "self"
find_lex $P1097, "$?CLASS"
getattribute $P1098, $P1096, $P1097, "@!roles"
unless_null $P1098, vivify_479
$P1098 = root_new ['parrot';'ResizablePMCArray']
vivify_479:
.return ($P1098)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "_block1100" :subid("77_1307988395.99251") :outer("10_1307988395.99251")
.annotate 'line', 498
.const 'Sub' $P2213 = "136_1307988395.99251"
capture_lex $P2213
.const 'Sub' $P2175 = "134_1307988395.99251"
capture_lex $P2175
.const 'Sub' $P2140 = "133_1307988395.99251"
capture_lex $P2140
.const 'Sub' $P2101 = "132_1307988395.99251"
capture_lex $P2101
.const 'Sub' $P2094 = "131_1307988395.99251"
capture_lex $P2094
.const 'Sub' $P2087 = "130_1307988395.99251"
capture_lex $P2087
.const 'Sub' $P2063 = "128_1307988395.99251"
capture_lex $P2063
.const 'Sub' $P2057 = "127_1307988395.99251"
capture_lex $P2057
.const 'Sub' $P2051 = "126_1307988395.99251"
capture_lex $P2051
.const 'Sub' $P2027 = "124_1307988395.99251"
capture_lex $P2027
.const 'Sub' $P2020 = "123_1307988395.99251"
capture_lex $P2020
.const 'Sub' $P2006 = "122_1307988395.99251"
capture_lex $P2006
.const 'Sub' $P1955 = "119_1307988395.99251"
capture_lex $P1955
.const 'Sub' $P1904 = "116_1307988395.99251"
capture_lex $P1904
.const 'Sub' $P1857 = "113_1307988395.99251"
capture_lex $P1857
.const 'Sub' $P1819 = "110_1307988395.99251"
capture_lex $P1819
.const 'Sub' $P1665 = "105_1307988395.99251"
capture_lex $P1665
.const 'Sub' $P1555 = "101_1307988395.99251"
capture_lex $P1555
.const 'Sub' $P1527 = "100_1307988395.99251"
capture_lex $P1527
.const 'Sub' $P1501 = "99_1307988395.99251"
capture_lex $P1501
.const 'Sub' $P1467 = "97_1307988395.99251"
capture_lex $P1467
.const 'Sub' $P1460 = "96_1307988395.99251"
capture_lex $P1460
.const 'Sub' $P1412 = "94_1307988395.99251"
capture_lex $P1412
.const 'Sub' $P1390 = "93_1307988395.99251"
capture_lex $P1390
.const 'Sub' $P1368 = "92_1307988395.99251"
capture_lex $P1368
.const 'Sub' $P1333 = "91_1307988395.99251"
capture_lex $P1333
.const 'Sub' $P1317 = "90_1307988395.99251"
capture_lex $P1317
.const 'Sub' $P1310 = "89_1307988395.99251"
capture_lex $P1310
.const 'Sub' $P1299 = "88_1307988395.99251"
capture_lex $P1299
.const 'Sub' $P1148 = "81_1307988395.99251"
capture_lex $P1148
.const 'Sub' $P1102 = "78_1307988395.99251"
capture_lex $P1102
.annotate 'line', 735
.const 'Sub' $P1102 = "78_1307988395.99251"
newclosure $P1146, $P1102
set $P1147, $P1146
.lex "compute_c3_mro", $P1147
.annotate 'line', 757
.const 'Sub' $P1148 = "81_1307988395.99251"
newclosure $P1293, $P1148
set $P1294, $P1293
.lex "c3_merge", $P1294
.annotate 'line', 498
set $P1296, $P1295
.lex "$?PACKAGE", $P1296
set $P1298, $P1297
.lex "$?CLASS", $P1298
.annotate 'line', 676
find_lex $P1817, "compute_c3_mro"
find_lex $P1818, "c3_merge"
.annotate 'line', 959
.const 'Sub' $P2213 = "136_1307988395.99251"
newclosure $P2250, $P2213
.annotate 'line', 498
.return ($P2250)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "compute_c3_mro" :subid("78_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_1105
.annotate 'line', 735
.const 'Sub' $P1119 = "79_1307988395.99251"
capture_lex $P1119
new $P1104, ['ExceptionHandler'], .CONTROL_RETURN
set_label $P1104, control_1103
push_eh $P1104
.lex "$class", param_1105
.annotate 'line', 736
$P1106 = root_new ['parrot';'ResizablePMCArray']
set $P1107, $P1106
.lex "@immediate_parents", $P1107
.annotate 'line', 739
$P1108 = root_new ['parrot';'ResizablePMCArray']
set $P1109, $P1108
.lex "@result", $P1109
.annotate 'line', 736
find_lex $P1110, "$class"
unless_null $P1110, vivify_480
new $P1110, "Undef"
vivify_480:
get_how $P1111, $P1110
find_lex $P1112, "$class"
unless_null $P1112, vivify_481
new $P1112, "Undef"
vivify_481:
$P1113 = $P1111."parents"($P1112, 1 :named("local"))
store_lex "@immediate_parents", $P1113
find_lex $P1114, "@result"
unless_null $P1114, vivify_482
$P1114 = root_new ['parrot';'ResizablePMCArray']
vivify_482:
.annotate 'line', 740
find_lex $P1116, "@immediate_parents"
unless_null $P1116, vivify_483
$P1116 = root_new ['parrot';'ResizablePMCArray']
vivify_483:
set $N1117, $P1116
unless $N1117, if_1115_end
.const 'Sub' $P1119 = "79_1307988395.99251"
capture_lex $P1119
$P1119()
if_1115_end:
.annotate 'line', 752
find_lex $P1141, "@result"
unless_null $P1141, vivify_492
$P1141 = root_new ['parrot';'ResizablePMCArray']
vivify_492:
find_lex $P1142, "$class"
unless_null $P1142, vivify_493
new $P1142, "Undef"
vivify_493:
$P1141."unshift"($P1142)
.annotate 'line', 753
new $P1143, "Exception"
set $P1143['type'], .CONTROL_RETURN
find_lex $P1144, "@result"
unless_null $P1144, vivify_494
$P1144 = root_new ['parrot';'ResizablePMCArray']
vivify_494:
setattribute $P1143, 'payload', $P1144
throw $P1143
.annotate 'line', 735
.return ()
control_1103:
.local pmc exception
.get_results (exception)
getattribute $P1145, exception, "payload"
.return ($P1145)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "_block1118" :anon :subid("79_1307988395.99251") :outer("78_1307988395.99251")
.annotate 'line', 740
.const 'Sub' $P1128 = "80_1307988395.99251"
capture_lex $P1128
.annotate 'line', 743
$P1120 = root_new ['parrot';'ResizablePMCArray']
set $P1121, $P1120
.lex "@merge_list", $P1121
.annotate 'line', 740
find_lex $P1122, "@merge_list"
unless_null $P1122, vivify_484
$P1122 = root_new ['parrot';'ResizablePMCArray']
vivify_484:
.annotate 'line', 744
find_lex $P1124, "@immediate_parents"
unless_null $P1124, vivify_485
$P1124 = root_new ['parrot';'ResizablePMCArray']
vivify_485:
defined $I1125, $P1124
unless $I1125, for_undef_486
iter $P1123, $P1124
new $P1135, 'ExceptionHandler'
set_label $P1135, loop1134_handler
$P1135."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1135
loop1134_test:
unless $P1123, loop1134_done
shift $P1126, $P1123
loop1134_redo:
.const 'Sub' $P1128 = "80_1307988395.99251"
capture_lex $P1128
$P1128($P1126)
loop1134_next:
goto loop1134_test
loop1134_handler:
.local pmc exception
.get_results (exception)
getattribute $P1136, exception, 'type'
eq $P1136, .CONTROL_LOOP_NEXT, loop1134_next
eq $P1136, .CONTROL_LOOP_REDO, loop1134_redo
loop1134_done:
pop_eh
for_undef_486:
.annotate 'line', 747
find_lex $P1137, "@merge_list"
unless_null $P1137, vivify_489
$P1137 = root_new ['parrot';'ResizablePMCArray']
vivify_489:
find_lex $P1138, "@immediate_parents"
unless_null $P1138, vivify_490
$P1138 = root_new ['parrot';'ResizablePMCArray']
vivify_490:
$P1137."push"($P1138)
.annotate 'line', 748
find_lex $P1139, "@merge_list"
unless_null $P1139, vivify_491
$P1139 = root_new ['parrot';'ResizablePMCArray']
vivify_491:
$P1140 = "c3_merge"($P1139)
store_lex "@result", $P1140
.annotate 'line', 740
.return ($P1140)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "_block1127" :anon :subid("80_1307988395.99251") :outer("79_1307988395.99251")
.param pmc param_1129
.annotate 'line', 744
.lex "$_", param_1129
.annotate 'line', 745
find_lex $P1130, "@merge_list"
unless_null $P1130, vivify_487
$P1130 = root_new ['parrot';'ResizablePMCArray']
vivify_487:
find_lex $P1131, "$_"
unless_null $P1131, vivify_488
new $P1131, "Undef"
vivify_488:
$P1132 = "compute_c3_mro"($P1131)
$P1133 = $P1130."push"($P1132)
.annotate 'line', 744
.return ($P1133)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "c3_merge" :subid("81_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_1151
.annotate 'line', 757
.const 'Sub' $P1252 = "86_1307988395.99251"
capture_lex $P1252
.const 'Sub' $P1171 = "82_1307988395.99251"
capture_lex $P1171
new $P1150, ['ExceptionHandler'], .CONTROL_RETURN
set_label $P1150, control_1149
push_eh $P1150
.lex "@merge_list", param_1151
.annotate 'line', 758
$P1152 = root_new ['parrot';'ResizablePMCArray']
set $P1153, $P1152
.lex "@result", $P1153
.annotate 'line', 759
new $P1154, "Undef"
set $P1155, $P1154
.lex "$accepted", $P1155
.annotate 'line', 760
new $P1156, "Undef"
set $P1157, $P1156
.lex "$something_accepted", $P1157
.annotate 'line', 761
new $P1158, "Undef"
set $P1159, $P1158
.lex "$cand_count", $P1159
.annotate 'line', 804
new $P1160, "Undef"
set $P1161, $P1160
.lex "$i", $P1161
.annotate 'line', 757
find_lex $P1162, "@result"
unless_null $P1162, vivify_495
$P1162 = root_new ['parrot';'ResizablePMCArray']
vivify_495:
find_lex $P1163, "$accepted"
unless_null $P1163, vivify_496
new $P1163, "Undef"
vivify_496:
.annotate 'line', 760
new $P1164, "Integer"
assign $P1164, 0
store_lex "$something_accepted", $P1164
.annotate 'line', 761
new $P1165, "Integer"
assign $P1165, 0
store_lex "$cand_count", $P1165
.annotate 'line', 764
find_lex $P1167, "@merge_list"
unless_null $P1167, vivify_497
$P1167 = root_new ['parrot';'ResizablePMCArray']
vivify_497:
defined $I1168, $P1167
unless $I1168, for_undef_498
iter $P1166, $P1167
new $P1235, 'ExceptionHandler'
set_label $P1235, loop1234_handler
$P1235."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1235
loop1234_test:
unless $P1166, loop1234_done
shift $P1169, $P1166
loop1234_redo:
.const 'Sub' $P1171 = "82_1307988395.99251"
capture_lex $P1171
$P1171($P1169)
loop1234_next:
goto loop1234_test
loop1234_handler:
.local pmc exception
.get_results (exception)
getattribute $P1236, exception, 'type'
eq $P1236, .CONTROL_LOOP_NEXT, loop1234_next
eq $P1236, .CONTROL_LOOP_REDO, loop1234_redo
loop1234_done:
pop_eh
for_undef_498:
.annotate 'line', 794
find_lex $P1238, "$cand_count"
unless_null $P1238, vivify_517
new $P1238, "Undef"
vivify_517:
set $N1239, $P1238
iseq $I1240, $N1239, 0.0
unless $I1240, if_1237_end
.annotate 'line', 795
new $P1241, "Exception"
set $P1241['type'], .CONTROL_RETURN
find_lex $P1242, "@result"
unless_null $P1242, vivify_518
$P1242 = root_new ['parrot';'ResizablePMCArray']
vivify_518:
setattribute $P1241, 'payload', $P1242
throw $P1241
if_1237_end:
.annotate 'line', 799
find_lex $P1244, "$something_accepted"
unless_null $P1244, vivify_519
new $P1244, "Undef"
vivify_519:
if $P1244, unless_1243_end
.annotate 'line', 800
die "Could not build C3 linearization: ambiguous hierarchy"
unless_1243_end:
.annotate 'line', 804
new $P1245, "Integer"
assign $P1245, 0
store_lex "$i", $P1245
.annotate 'line', 805
new $P1284, 'ExceptionHandler'
set_label $P1284, loop1283_handler
$P1284."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1284
loop1283_test:
find_lex $P1246, "$i"
unless_null $P1246, vivify_520
new $P1246, "Undef"
vivify_520:
set $N1247, $P1246
find_lex $P1248, "@merge_list"
unless_null $P1248, vivify_521
$P1248 = root_new ['parrot';'ResizablePMCArray']
vivify_521:
set $N1249, $P1248
islt $I1250, $N1247, $N1249
unless $I1250, loop1283_done
loop1283_redo:
.const 'Sub' $P1252 = "86_1307988395.99251"
capture_lex $P1252
$P1252()
loop1283_next:
goto loop1283_test
loop1283_handler:
.local pmc exception
.get_results (exception)
getattribute $P1285, exception, 'type'
eq $P1285, .CONTROL_LOOP_NEXT, loop1283_next
eq $P1285, .CONTROL_LOOP_REDO, loop1283_redo
loop1283_done:
pop_eh
.annotate 'line', 818
find_lex $P1286, "@merge_list"
unless_null $P1286, vivify_535
$P1286 = root_new ['parrot';'ResizablePMCArray']
vivify_535:
$P1287 = "c3_merge"($P1286)
store_lex "@result", $P1287
.annotate 'line', 819
find_lex $P1288, "@result"
unless_null $P1288, vivify_536
$P1288 = root_new ['parrot';'ResizablePMCArray']
vivify_536:
find_lex $P1289, "$accepted"
unless_null $P1289, vivify_537
new $P1289, "Undef"
vivify_537:
$P1288."unshift"($P1289)
.annotate 'line', 820
new $P1290, "Exception"
set $P1290['type'], .CONTROL_RETURN
find_lex $P1291, "@result"
unless_null $P1291, vivify_538
$P1291 = root_new ['parrot';'ResizablePMCArray']
vivify_538:
setattribute $P1290, 'payload', $P1291
throw $P1290
.annotate 'line', 757
.return ()
control_1149:
.local pmc exception
.get_results (exception)
getattribute $P1292, exception, "payload"
.return ($P1292)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "_block1170" :anon :subid("82_1307988395.99251") :outer("81_1307988395.99251")
.param pmc param_1174
.annotate 'line', 764
.const 'Sub' $P1181 = "83_1307988395.99251"
capture_lex $P1181
.annotate 'line', 765
$P1172 = root_new ['parrot';'ResizablePMCArray']
set $P1173, $P1172
.lex "@cand_list", $P1173
.lex "$_", param_1174
find_lex $P1175, "$_"
unless_null $P1175, vivify_499
new $P1175, "Undef"
vivify_499:
store_lex "@cand_list", $P1175
.annotate 'line', 766
find_lex $P1178, "@cand_list"
unless_null $P1178, vivify_500
$P1178 = root_new ['parrot';'ResizablePMCArray']
vivify_500:
set $N1179, $P1178
if $N1179, if_1177
new $P1176, 'Float'
set $P1176, $N1179
goto if_1177_end
if_1177:
.const 'Sub' $P1181 = "83_1307988395.99251"
capture_lex $P1181
$P1233 = $P1181()
set $P1176, $P1233
if_1177_end:
.annotate 'line', 764
.return ($P1176)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "_block1180" :anon :subid("83_1307988395.99251") :outer("82_1307988395.99251")
.annotate 'line', 766
.const 'Sub' $P1196 = "84_1307988395.99251"
capture_lex $P1196
.annotate 'line', 767
new $P1182, "Undef"
set $P1183, $P1182
.lex "$rejected", $P1183
.annotate 'line', 768
new $P1184, "Undef"
set $P1185, $P1184
.lex "$cand_class", $P1185
.annotate 'line', 767
new $P1186, "Integer"
assign $P1186, 0
store_lex "$rejected", $P1186
.annotate 'line', 768
find_lex $P1187, "@cand_list"
unless_null $P1187, vivify_501
$P1187 = root_new ['parrot';'ResizablePMCArray']
vivify_501:
set $P1188, $P1187[0]
unless_null $P1188, vivify_502
new $P1188, "Undef"
vivify_502:
store_lex "$cand_class", $P1188
.annotate 'line', 769
find_lex $P1189, "$cand_count"
unless_null $P1189, vivify_503
new $P1189, "Undef"
vivify_503:
add $P1190, $P1189, 1
store_lex "$cand_count", $P1190
.annotate 'line', 770
find_lex $P1192, "@merge_list"
unless_null $P1192, vivify_504
$P1192 = root_new ['parrot';'ResizablePMCArray']
vivify_504:
defined $I1193, $P1192
unless $I1193, for_undef_505
iter $P1191, $P1192
new $P1231, 'ExceptionHandler'
set_label $P1231, loop1230_handler
$P1231."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1231
loop1230_test:
unless $P1191, loop1230_done
shift $P1194, $P1191
loop1230_redo:
.const 'Sub' $P1196 = "84_1307988395.99251"
capture_lex $P1196
$P1196($P1194)
loop1230_next:
goto loop1230_test
loop1230_handler:
.local pmc exception
.get_results (exception)
getattribute $P1232, exception, 'type'
eq $P1232, .CONTROL_LOOP_NEXT, loop1230_next
eq $P1232, .CONTROL_LOOP_REDO, loop1230_redo
loop1230_done:
pop_eh
for_undef_505:
.annotate 'line', 766
.return ($P1191)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "_block1195" :anon :subid("84_1307988395.99251") :outer("83_1307988395.99251")
.param pmc param_1197
.annotate 'line', 770
.const 'Sub' $P1203 = "85_1307988395.99251"
capture_lex $P1203
.lex "$_", param_1197
.annotate 'line', 772
find_lex $P1199, "$_"
unless_null $P1199, vivify_506
new $P1199, "Undef"
vivify_506:
find_lex $P1200, "@cand_list"
unless_null $P1200, vivify_507
$P1200 = root_new ['parrot';'ResizablePMCArray']
vivify_507:
issame $I1201, $P1199, $P1200
if $I1201, unless_1198_end
.const 'Sub' $P1203 = "85_1307988395.99251"
capture_lex $P1203
$P1203()
unless_1198_end:
.annotate 'line', 784
find_lex $P1227, "$rejected"
unless_null $P1227, vivify_515
new $P1227, "Undef"
vivify_515:
unless $P1227, unless_1226
set $P1225, $P1227
goto unless_1226_end
unless_1226:
.annotate 'line', 785
find_lex $P1228, "$cand_class"
unless_null $P1228, vivify_516
new $P1228, "Undef"
vivify_516:
store_lex "$accepted", $P1228
.annotate 'line', 786
new $P1229, "Integer"
assign $P1229, 1
store_lex "$something_accepted", $P1229
.annotate 'line', 787
die 0, .CONTROL_LOOP_LAST
unless_1226_end:
.annotate 'line', 770
.return ($P1225)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "_block1202" :anon :subid("85_1307988395.99251") :outer("84_1307988395.99251")
.annotate 'line', 774
new $P1204, "Undef"
set $P1205, $P1204
.lex "$cur_pos", $P1205
new $P1206, "Integer"
assign $P1206, 1
store_lex "$cur_pos", $P1206
.annotate 'line', 775
new $P1223, 'ExceptionHandler'
set_label $P1223, loop1222_handler
$P1223."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1223
loop1222_test:
find_lex $P1207, "$cur_pos"
unless_null $P1207, vivify_508
new $P1207, "Undef"
vivify_508:
set $N1208, $P1207
find_lex $P1209, "$_"
unless_null $P1209, vivify_509
new $P1209, "Undef"
vivify_509:
set $N1210, $P1209
isle $I1211, $N1208, $N1210
unless $I1211, loop1222_done
loop1222_redo:
.annotate 'line', 776
find_lex $P1213, "$cur_pos"
unless_null $P1213, vivify_510
new $P1213, "Undef"
vivify_510:
set $I1214, $P1213
find_lex $P1215, "$_"
unless_null $P1215, vivify_511
$P1215 = root_new ['parrot';'ResizablePMCArray']
vivify_511:
set $P1216, $P1215[$I1214]
unless_null $P1216, vivify_512
new $P1216, "Undef"
vivify_512:
find_lex $P1217, "$cand_class"
unless_null $P1217, vivify_513
new $P1217, "Undef"
vivify_513:
issame $I1218, $P1216, $P1217
unless $I1218, if_1212_end
.annotate 'line', 777
new $P1219, "Integer"
assign $P1219, 1
store_lex "$rejected", $P1219
if_1212_end:
.annotate 'line', 779
find_lex $P1220, "$cur_pos"
unless_null $P1220, vivify_514
new $P1220, "Undef"
vivify_514:
add $P1221, $P1220, 1
store_lex "$cur_pos", $P1221
loop1222_next:
.annotate 'line', 775
goto loop1222_test
loop1222_handler:
.local pmc exception
.get_results (exception)
getattribute $P1224, exception, 'type'
eq $P1224, .CONTROL_LOOP_NEXT, loop1222_next
eq $P1224, .CONTROL_LOOP_REDO, loop1222_redo
loop1222_done:
pop_eh
.annotate 'line', 772
.return ($I1211)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "_block1251" :anon :subid("86_1307988395.99251") :outer("81_1307988395.99251")
.annotate 'line', 805
.const 'Sub' $P1264 = "87_1307988395.99251"
capture_lex $P1264
.annotate 'line', 806
$P1253 = root_new ['parrot';'ResizablePMCArray']
set $P1254, $P1253
.lex "@new_list", $P1254
.annotate 'line', 805
find_lex $P1255, "@new_list"
unless_null $P1255, vivify_522
$P1255 = root_new ['parrot';'ResizablePMCArray']
vivify_522:
.annotate 'line', 807
find_lex $P1257, "$i"
unless_null $P1257, vivify_523
new $P1257, "Undef"
vivify_523:
set $I1258, $P1257
find_lex $P1259, "@merge_list"
unless_null $P1259, vivify_524
$P1259 = root_new ['parrot';'ResizablePMCArray']
vivify_524:
set $P1260, $P1259[$I1258]
unless_null $P1260, vivify_525
new $P1260, "Undef"
vivify_525:
defined $I1261, $P1260
unless $I1261, for_undef_526
iter $P1256, $P1260
new $P1275, 'ExceptionHandler'
set_label $P1275, loop1274_handler
$P1275."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1275
loop1274_test:
unless $P1256, loop1274_done
shift $P1262, $P1256
loop1274_redo:
.const 'Sub' $P1264 = "87_1307988395.99251"
capture_lex $P1264
$P1264($P1262)
loop1274_next:
goto loop1274_test
loop1274_handler:
.local pmc exception
.get_results (exception)
getattribute $P1276, exception, 'type'
eq $P1276, .CONTROL_LOOP_NEXT, loop1274_next
eq $P1276, .CONTROL_LOOP_REDO, loop1274_redo
loop1274_done:
pop_eh
for_undef_526:
.annotate 'line', 812
find_lex $P1277, "@new_list"
unless_null $P1277, vivify_531
$P1277 = root_new ['parrot';'ResizablePMCArray']
vivify_531:
find_lex $P1278, "$i"
unless_null $P1278, vivify_532
new $P1278, "Undef"
vivify_532:
set $I1279, $P1278
find_lex $P1280, "@merge_list"
unless_null $P1280, vivify_533
$P1280 = root_new ['parrot';'ResizablePMCArray']
store_lex "@merge_list", $P1280
vivify_533:
set $P1280[$I1279], $P1277
.annotate 'line', 813
find_lex $P1281, "$i"
unless_null $P1281, vivify_534
new $P1281, "Undef"
vivify_534:
add $P1282, $P1281, 1
store_lex "$i", $P1282
.annotate 'line', 805
.return ($P1282)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "_block1263" :anon :subid("87_1307988395.99251") :outer("86_1307988395.99251")
.param pmc param_1265
.annotate 'line', 807
.lex "$_", param_1265
.annotate 'line', 808
find_lex $P1268, "$_"
unless_null $P1268, vivify_527
new $P1268, "Undef"
vivify_527:
find_lex $P1269, "$accepted"
unless_null $P1269, vivify_528
new $P1269, "Undef"
vivify_528:
issame $I1270, $P1268, $P1269
unless $I1270, unless_1267
new $P1266, 'Integer'
set $P1266, $I1270
goto unless_1267_end
unless_1267:
.annotate 'line', 809
find_lex $P1271, "@new_list"
unless_null $P1271, vivify_529
$P1271 = root_new ['parrot';'ResizablePMCArray']
vivify_529:
find_lex $P1272, "$_"
unless_null $P1272, vivify_530
new $P1272, "Undef"
vivify_530:
$P1273 = $P1271."push"($P1272)
.annotate 'line', 808
set $P1266, $P1273
unless_1267_end:
.annotate 'line', 807
.return ($P1266)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "new" :anon :subid("88_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_1300
.param pmc param_1301 :optional :named("name")
.param int has_param_1301 :opt_flag
.annotate 'line', 535
.lex "self", param_1300
if has_param_1301, optparam_539
new $P1302, "Undef"
set param_1301, $P1302
optparam_539:
.lex "$name", param_1301
.annotate 'line', 536
new $P1303, "Undef"
set $P1304, $P1303
.lex "$obj", $P1304
find_lex $P1305, "self"
repr_instance_of $P1306, $P1305
store_lex "$obj", $P1306
.annotate 'line', 537
find_lex $P1307, "$obj"
unless_null $P1307, vivify_540
new $P1307, "Undef"
vivify_540:
find_lex $P1308, "$name"
unless_null $P1308, vivify_541
new $P1308, "Undef"
vivify_541:
$P1307."BUILD"($P1308 :named("name"))
find_lex $P1309, "$obj"
unless_null $P1309, vivify_542
new $P1309, "Undef"
vivify_542:
.annotate 'line', 535
.return ($P1309)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "BUILD" :anon :subid("89_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_1311
.param pmc param_1312 :optional :named("name")
.param int has_param_1312 :opt_flag
.annotate 'line', 541
.lex "self", param_1311
if has_param_1312, optparam_543
new $P1313, "Undef"
set param_1312, $P1313
optparam_543:
.lex "$name", param_1312
.annotate 'line', 542
find_lex $P1314, "$name"
unless_null $P1314, vivify_544
new $P1314, "Undef"
vivify_544:
find_lex $P1315, "self"
find_lex $P1316, "$?CLASS"
setattribute $P1315, $P1316, "$!name", $P1314
.annotate 'line', 541
.return ($P1314)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "new_type" :anon :subid("90_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_1318
.param pmc param_1319 :optional :named("name")
.param int has_param_1319 :opt_flag
.param pmc param_1321 :optional :named("repr")
.param int has_param_1321 :opt_flag
.annotate 'line', 547
.lex "self", param_1318
if has_param_1319, optparam_545
new $P1320, "String"
assign $P1320, "<anon>"
set param_1319, $P1320
optparam_545:
.lex "$name", param_1319
if has_param_1321, optparam_546
new $P1322, "String"
assign $P1322, "P6opaque"
set param_1321, $P1322
optparam_546:
.lex "$repr", param_1321
.annotate 'line', 548
new $P1323, "Undef"
set $P1324, $P1323
.lex "$metaclass", $P1324
find_lex $P1325, "self"
find_lex $P1326, "$name"
unless_null $P1326, vivify_547
new $P1326, "Undef"
vivify_547:
$P1327 = $P1325."new"($P1326 :named("name"))
store_lex "$metaclass", $P1327
.annotate 'line', 550
find_lex $P1328, "$metaclass"
unless_null $P1328, vivify_548
new $P1328, "Undef"
vivify_548:
find_lex $P1329, "$repr"
unless_null $P1329, vivify_549
new $P1329, "Undef"
vivify_549:
set $S1330, $P1329
repr_type_object_for $P1331, $P1328, $S1330
$P1332 = root_new ['parrot';'Hash']
set_who $P1331, $P1332
.annotate 'line', 547
.return ($P1331)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "add_method" :anon :subid("91_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_1334
.param pmc param_1335
.param pmc param_1336
.param pmc param_1337
.annotate 'line', 554
.lex "self", param_1334
.lex "$obj", param_1335
.lex "$name", param_1336
.lex "$code_obj", param_1337
.annotate 'line', 555
find_lex $P1339, "$name"
unless_null $P1339, vivify_550
new $P1339, "Undef"
vivify_550:
find_lex $P1340, "self"
find_lex $P1341, "$?CLASS"
getattribute $P1342, $P1340, $P1341, "%!methods"
unless_null $P1342, vivify_551
$P1342 = root_new ['parrot';'Hash']
vivify_551:
set $P1343, $P1342[$P1339]
unless_null $P1343, vivify_552
new $P1343, "Undef"
vivify_552:
unless $P1343, if_1338_end
.annotate 'line', 556
new $P1344, "String"
assign $P1344, "This class already has a method named "
find_lex $P1345, "$name"
unless_null $P1345, vivify_553
new $P1345, "Undef"
vivify_553:
concat $P1346, $P1344, $P1345
die $P1346
if_1338_end:
.annotate 'line', 558
find_lex $P1350, "$code_obj"
unless_null $P1350, vivify_554
new $P1350, "Undef"
vivify_554:
isnull $I1351, $P1350
unless $I1351, unless_1349
new $P1348, 'Integer'
set $P1348, $I1351
goto unless_1349_end
unless_1349:
find_lex $P1352, "$code_obj"
unless_null $P1352, vivify_555
new $P1352, "Undef"
vivify_555:
isa $I1353, $P1352, "Undef"
new $P1348, 'Integer'
set $P1348, $I1353
unless_1349_end:
unless $P1348, if_1347_end
.annotate 'line', 559
new $P1354, 'String'
set $P1354, "Cannot add a null method '"
find_lex $P1355, "$name"
unless_null $P1355, vivify_556
new $P1355, "Undef"
vivify_556:
concat $P1356, $P1354, $P1355
concat $P1357, $P1356, "' to class '"
find_lex $P1358, "self"
find_lex $P1359, "$?CLASS"
getattribute $P1360, $P1358, $P1359, "$!name"
unless_null $P1360, vivify_557
new $P1360, "Undef"
vivify_557:
concat $P1361, $P1357, $P1360
concat $P1362, $P1361, "'"
die $P1362
if_1347_end:
.annotate 'line', 561
find_lex $P1363, "$code_obj"
unless_null $P1363, vivify_558
new $P1363, "Undef"
vivify_558:
find_lex $P1364, "$name"
unless_null $P1364, vivify_559
new $P1364, "Undef"
vivify_559:
find_lex $P1365, "self"
find_lex $P1366, "$?CLASS"
getattribute $P1367, $P1365, $P1366, "%!methods"
unless_null $P1367, vivify_560
$P1367 = root_new ['parrot';'Hash']
setattribute $P1365, $P1366, "%!methods", $P1367
vivify_560:
set $P1367[$P1364], $P1363
.annotate 'line', 554
.return ($P1363)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "add_multi_method" :anon :subid("92_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_1369
.param pmc param_1370
.param pmc param_1371
.param pmc param_1372
.annotate 'line', 564
.lex "self", param_1369
.lex "$obj", param_1370
.lex "$name", param_1371
.lex "$code_obj", param_1372
.annotate 'line', 570
$P1373 = root_new ['parrot';'Hash']
set $P1374, $P1373
.lex "%todo", $P1374
.annotate 'line', 564
find_lex $P1375, "%todo"
unless_null $P1375, vivify_561
$P1375 = root_new ['parrot';'Hash']
vivify_561:
.annotate 'line', 571
find_lex $P1376, "$name"
unless_null $P1376, vivify_562
new $P1376, "Undef"
vivify_562:
find_lex $P1377, "%todo"
unless_null $P1377, vivify_563
$P1377 = root_new ['parrot';'Hash']
store_lex "%todo", $P1377
vivify_563:
set $P1377["name"], $P1376
.annotate 'line', 572
find_lex $P1378, "$code_obj"
unless_null $P1378, vivify_564
new $P1378, "Undef"
vivify_564:
find_lex $P1379, "%todo"
unless_null $P1379, vivify_565
$P1379 = root_new ['parrot';'Hash']
store_lex "%todo", $P1379
vivify_565:
set $P1379["code"], $P1378
.annotate 'line', 573
find_lex $P1380, "%todo"
unless_null $P1380, vivify_566
$P1380 = root_new ['parrot';'Hash']
vivify_566:
find_lex $P1381, "self"
find_lex $P1382, "$?CLASS"
getattribute $P1383, $P1381, $P1382, "@!multi_methods_to_incorporate"
unless_null $P1383, vivify_567
$P1383 = root_new ['parrot';'ResizablePMCArray']
vivify_567:
set $N1384, $P1383
set $I1385, $N1384
find_lex $P1386, "self"
find_lex $P1387, "$?CLASS"
getattribute $P1388, $P1386, $P1387, "@!multi_methods_to_incorporate"
unless_null $P1388, vivify_568
$P1388 = root_new ['parrot';'ResizablePMCArray']
setattribute $P1386, $P1387, "@!multi_methods_to_incorporate", $P1388
vivify_568:
set $P1388[$I1385], $P1380
find_lex $P1389, "$code_obj"
unless_null $P1389, vivify_569
new $P1389, "Undef"
vivify_569:
.annotate 'line', 564
.return ($P1389)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "add_attribute" :anon :subid("93_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_1391
.param pmc param_1392
.param pmc param_1393
.annotate 'line', 577
.lex "self", param_1391
.lex "$obj", param_1392
.lex "$meta_attr", param_1393
.annotate 'line', 578
new $P1394, "Undef"
set $P1395, $P1394
.lex "$name", $P1395
find_lex $P1396, "$meta_attr"
unless_null $P1396, vivify_570
new $P1396, "Undef"
vivify_570:
$P1397 = $P1396."name"()
store_lex "$name", $P1397
.annotate 'line', 579
find_lex $P1399, "$name"
unless_null $P1399, vivify_571
new $P1399, "Undef"
vivify_571:
find_lex $P1400, "self"
find_lex $P1401, "$?CLASS"
getattribute $P1402, $P1400, $P1401, "%!attributes"
unless_null $P1402, vivify_572
$P1402 = root_new ['parrot';'Hash']
vivify_572:
set $P1403, $P1402[$P1399]
unless_null $P1403, vivify_573
new $P1403, "Undef"
vivify_573:
unless $P1403, if_1398_end
.annotate 'line', 580
new $P1404, "String"
assign $P1404, "This class already has an attribute named "
find_lex $P1405, "$name"
unless_null $P1405, vivify_574
new $P1405, "Undef"
vivify_574:
concat $P1406, $P1404, $P1405
die $P1406
if_1398_end:
.annotate 'line', 582
find_lex $P1407, "$meta_attr"
unless_null $P1407, vivify_575
new $P1407, "Undef"
vivify_575:
find_lex $P1408, "$name"
unless_null $P1408, vivify_576
new $P1408, "Undef"
vivify_576:
find_lex $P1409, "self"
find_lex $P1410, "$?CLASS"
getattribute $P1411, $P1409, $P1410, "%!attributes"
unless_null $P1411, vivify_577
$P1411 = root_new ['parrot';'Hash']
setattribute $P1409, $P1410, "%!attributes", $P1411
vivify_577:
set $P1411[$P1408], $P1407
.annotate 'line', 577
.return ($P1407)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "add_parent" :anon :subid("94_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_1413
.param pmc param_1414
.param pmc param_1415
.annotate 'line', 585
.const 'Sub' $P1437 = "95_1307988395.99251"
capture_lex $P1437
.lex "self", param_1413
.lex "$obj", param_1414
.lex "$parent", param_1415
.annotate 'line', 586
find_lex $P1417, "self"
find_lex $P1418, "$?CLASS"
getattribute $P1419, $P1417, $P1418, "$!composed"
unless_null $P1419, vivify_578
new $P1419, "Undef"
vivify_578:
unless $P1419, if_1416_end
.annotate 'line', 587
die "NQPClassHOW does not support adding parents after being composed."
if_1416_end:
.annotate 'line', 589
find_lex $P1421, "$obj"
unless_null $P1421, vivify_579
new $P1421, "Undef"
vivify_579:
find_lex $P1422, "$parent"
unless_null $P1422, vivify_580
new $P1422, "Undef"
vivify_580:
issame $I1423, $P1421, $P1422
unless $I1423, if_1420_end
.annotate 'line', 590
new $P1424, 'String'
set $P1424, "Class '"
find_lex $P1425, "self"
find_lex $P1426, "$?CLASS"
getattribute $P1427, $P1425, $P1426, "$!name"
unless_null $P1427, vivify_581
new $P1427, "Undef"
vivify_581:
concat $P1428, $P1424, $P1427
concat $P1429, $P1428, "' cannot inherit from itself."
die $P1429
if_1420_end:
.annotate 'line', 592
find_lex $P1431, "self"
find_lex $P1432, "$?CLASS"
getattribute $P1433, $P1431, $P1432, "@!parents"
unless_null $P1433, vivify_582
$P1433 = root_new ['parrot';'ResizablePMCArray']
vivify_582:
defined $I1434, $P1433
unless $I1434, for_undef_583
iter $P1430, $P1433
new $P1449, 'ExceptionHandler'
set_label $P1449, loop1448_handler
$P1449."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1449
loop1448_test:
unless $P1430, loop1448_done
shift $P1435, $P1430
loop1448_redo:
.const 'Sub' $P1437 = "95_1307988395.99251"
capture_lex $P1437
$P1437($P1435)
loop1448_next:
goto loop1448_test
loop1448_handler:
.local pmc exception
.get_results (exception)
getattribute $P1450, exception, 'type'
eq $P1450, .CONTROL_LOOP_NEXT, loop1448_next
eq $P1450, .CONTROL_LOOP_REDO, loop1448_redo
loop1448_done:
pop_eh
for_undef_583:
.annotate 'line', 597
find_lex $P1451, "$parent"
unless_null $P1451, vivify_587
new $P1451, "Undef"
vivify_587:
find_lex $P1452, "self"
find_lex $P1453, "$?CLASS"
getattribute $P1454, $P1452, $P1453, "@!parents"
unless_null $P1454, vivify_588
$P1454 = root_new ['parrot';'ResizablePMCArray']
vivify_588:
set $N1455, $P1454
set $I1456, $N1455
find_lex $P1457, "self"
find_lex $P1458, "$?CLASS"
getattribute $P1459, $P1457, $P1458, "@!parents"
unless_null $P1459, vivify_589
$P1459 = root_new ['parrot';'ResizablePMCArray']
setattribute $P1457, $P1458, "@!parents", $P1459
vivify_589:
set $P1459[$I1456], $P1451
.annotate 'line', 585
.return ($P1451)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "_block1436" :anon :subid("95_1307988395.99251") :outer("94_1307988395.99251")
.param pmc param_1438
.annotate 'line', 592
.lex "$_", param_1438
.annotate 'line', 593
find_lex $P1441, "$_"
unless_null $P1441, vivify_584
new $P1441, "Undef"
vivify_584:
find_lex $P1442, "$parent"
unless_null $P1442, vivify_585
new $P1442, "Undef"
vivify_585:
issame $I1443, $P1441, $P1442
if $I1443, if_1440
new $P1439, 'Integer'
set $P1439, $I1443
goto if_1440_end
if_1440:
.annotate 'line', 594
new $P1444, "String"
assign $P1444, "Already have "
find_lex $P1445, "$parent"
unless_null $P1445, vivify_586
new $P1445, "Undef"
vivify_586:
concat $P1446, $P1444, $P1445
concat $P1447, $P1446, " as a parent class."
die $P1447
if_1440_end:
.annotate 'line', 592
.return ($P1439)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "set_default_parent" :anon :subid("96_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_1461
.param pmc param_1462
.param pmc param_1463
.annotate 'line', 600
.lex "self", param_1461
.lex "$obj", param_1462
.lex "$parent", param_1463
.annotate 'line', 601
find_lex $P1464, "$parent"
unless_null $P1464, vivify_590
new $P1464, "Undef"
vivify_590:
find_lex $P1465, "self"
find_lex $P1466, "$?CLASS"
setattribute $P1465, $P1466, "$!default_parent", $P1464
.annotate 'line', 600
.return ($P1464)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "add_role" :anon :subid("97_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_1468
.param pmc param_1469
.param pmc param_1470
.annotate 'line', 604
.const 'Sub' $P1478 = "98_1307988395.99251"
capture_lex $P1478
.lex "self", param_1468
.lex "$obj", param_1469
.lex "$role", param_1470
.annotate 'line', 605
find_lex $P1472, "self"
find_lex $P1473, "$?CLASS"
getattribute $P1474, $P1472, $P1473, "@!roles"
unless_null $P1474, vivify_591
$P1474 = root_new ['parrot';'ResizablePMCArray']
vivify_591:
defined $I1475, $P1474
unless $I1475, for_undef_592
iter $P1471, $P1474
new $P1490, 'ExceptionHandler'
set_label $P1490, loop1489_handler
$P1490."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1490
loop1489_test:
unless $P1471, loop1489_done
shift $P1476, $P1471
loop1489_redo:
.const 'Sub' $P1478 = "98_1307988395.99251"
capture_lex $P1478
$P1478($P1476)
loop1489_next:
goto loop1489_test
loop1489_handler:
.local pmc exception
.get_results (exception)
getattribute $P1491, exception, 'type'
eq $P1491, .CONTROL_LOOP_NEXT, loop1489_next
eq $P1491, .CONTROL_LOOP_REDO, loop1489_redo
loop1489_done:
pop_eh
for_undef_592:
.annotate 'line', 610
find_lex $P1492, "$role"
unless_null $P1492, vivify_596
new $P1492, "Undef"
vivify_596:
find_lex $P1493, "self"
find_lex $P1494, "$?CLASS"
getattribute $P1495, $P1493, $P1494, "@!roles"
unless_null $P1495, vivify_597
$P1495 = root_new ['parrot';'ResizablePMCArray']
vivify_597:
set $N1496, $P1495
set $I1497, $N1496
find_lex $P1498, "self"
find_lex $P1499, "$?CLASS"
getattribute $P1500, $P1498, $P1499, "@!roles"
unless_null $P1500, vivify_598
$P1500 = root_new ['parrot';'ResizablePMCArray']
setattribute $P1498, $P1499, "@!roles", $P1500
vivify_598:
set $P1500[$I1497], $P1492
.annotate 'line', 604
.return ($P1492)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "_block1477" :anon :subid("98_1307988395.99251") :outer("97_1307988395.99251")
.param pmc param_1479
.annotate 'line', 605
.lex "$_", param_1479
.annotate 'line', 606
find_lex $P1482, "$_"
unless_null $P1482, vivify_593
new $P1482, "Undef"
vivify_593:
find_lex $P1483, "$role"
unless_null $P1483, vivify_594
new $P1483, "Undef"
vivify_594:
issame $I1484, $P1482, $P1483
if $I1484, if_1481
new $P1480, 'Integer'
set $P1480, $I1484
goto if_1481_end
if_1481:
.annotate 'line', 607
new $P1485, "String"
assign $P1485, "The role "
find_lex $P1486, "$role"
unless_null $P1486, vivify_595
new $P1486, "Undef"
vivify_595:
concat $P1487, $P1485, $P1486
concat $P1488, $P1487, " has already been added."
die $P1488
if_1481_end:
.annotate 'line', 605
.return ($P1480)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "add_parrot_vtable_mapping" :anon :subid("99_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_1502
.param pmc param_1503
.param pmc param_1504
.param pmc param_1505
.annotate 'line', 613
.lex "self", param_1502
.lex "$obj", param_1503
.lex "$name", param_1504
.lex "$meth", param_1505
.annotate 'line', 614
find_lex $P1507, "$name"
unless_null $P1507, vivify_599
new $P1507, "Undef"
vivify_599:
find_lex $P1508, "self"
find_lex $P1509, "$?CLASS"
getattribute $P1510, $P1508, $P1509, "%!parrot_vtable_mapping"
unless_null $P1510, vivify_600
$P1510 = root_new ['parrot';'Hash']
vivify_600:
set $P1511, $P1510[$P1507]
unless_null $P1511, vivify_601
new $P1511, "Undef"
vivify_601:
defined $I1512, $P1511
unless $I1512, if_1506_end
.annotate 'line', 615
new $P1513, "String"
assign $P1513, "Class '"
find_lex $P1514, "self"
find_lex $P1515, "$?CLASS"
getattribute $P1516, $P1514, $P1515, "$!name"
unless_null $P1516, vivify_602
new $P1516, "Undef"
vivify_602:
concat $P1517, $P1513, $P1516
concat $P1518, $P1517, "' already has a Parrot v-table override for '"
find_lex $P1519, "$name"
unless_null $P1519, vivify_603
new $P1519, "Undef"
vivify_603:
concat $P1520, $P1518, $P1519
.annotate 'line', 616
concat $P1521, $P1520, "'"
.annotate 'line', 617
die $P1521
if_1506_end:
.annotate 'line', 619
find_lex $P1522, "$meth"
unless_null $P1522, vivify_604
new $P1522, "Undef"
vivify_604:
find_lex $P1523, "$name"
unless_null $P1523, vivify_605
new $P1523, "Undef"
vivify_605:
find_lex $P1524, "self"
find_lex $P1525, "$?CLASS"
getattribute $P1526, $P1524, $P1525, "%!parrot_vtable_mapping"
unless_null $P1526, vivify_606
$P1526 = root_new ['parrot';'Hash']
setattribute $P1524, $P1525, "%!parrot_vtable_mapping", $P1526
vivify_606:
set $P1526[$P1523], $P1522
.annotate 'line', 613
.return ($P1522)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "add_parrot_vtable_handler_mapping" :anon :subid("100_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_1528
.param pmc param_1529
.param pmc param_1530
.param pmc param_1531
.annotate 'line', 622
.lex "self", param_1528
.lex "$obj", param_1529
.lex "$name", param_1530
.lex "$att_name", param_1531
.annotate 'line', 623
find_lex $P1533, "$name"
unless_null $P1533, vivify_607
new $P1533, "Undef"
vivify_607:
find_lex $P1534, "self"
find_lex $P1535, "$?CLASS"
getattribute $P1536, $P1534, $P1535, "%!parrot_vtable_handler_mapping"
unless_null $P1536, vivify_608
$P1536 = root_new ['parrot';'Hash']
vivify_608:
set $P1537, $P1536[$P1533]
unless_null $P1537, vivify_609
new $P1537, "Undef"
vivify_609:
defined $I1538, $P1537
unless $I1538, if_1532_end
.annotate 'line', 624
new $P1539, "String"
assign $P1539, "Class '"
find_lex $P1540, "self"
find_lex $P1541, "$?CLASS"
getattribute $P1542, $P1540, $P1541, "$!name"
unless_null $P1542, vivify_610
new $P1542, "Undef"
vivify_610:
concat $P1543, $P1539, $P1542
concat $P1544, $P1543, "' already has a Parrot v-table handler for '"
find_lex $P1545, "$name"
unless_null $P1545, vivify_611
new $P1545, "Undef"
vivify_611:
concat $P1546, $P1544, $P1545
.annotate 'line', 625
concat $P1547, $P1546, "'"
.annotate 'line', 626
die $P1547
if_1532_end:
.annotate 'line', 628
find_lex $P1548, "$obj"
unless_null $P1548, vivify_612
new $P1548, "Undef"
vivify_612:
find_lex $P1549, "$att_name"
unless_null $P1549, vivify_613
new $P1549, "Undef"
vivify_613:
new $P1550, "ResizablePMCArray"
push $P1550, $P1548
push $P1550, $P1549
find_lex $P1551, "$name"
unless_null $P1551, vivify_614
new $P1551, "Undef"
vivify_614:
find_lex $P1552, "self"
find_lex $P1553, "$?CLASS"
getattribute $P1554, $P1552, $P1553, "%!parrot_vtable_handler_mapping"
unless_null $P1554, vivify_615
$P1554 = root_new ['parrot';'Hash']
setattribute $P1552, $P1553, "%!parrot_vtable_handler_mapping", $P1554
vivify_615:
set $P1554[$P1551], $P1550
.annotate 'line', 622
.return ($P1550)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "compose" :anon :subid("101_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_1556
.param pmc param_1557
.annotate 'line', 631
.const 'Sub' $P1648 = "104_1307988395.99251"
capture_lex $P1648
.const 'Sub' $P1563 = "102_1307988395.99251"
capture_lex $P1563
.lex "self", param_1556
.lex "$obj", param_1557
.annotate 'line', 635
find_lex $P1559, "self"
find_lex $P1560, "$?CLASS"
getattribute $P1561, $P1559, $P1560, "@!roles"
unless_null $P1561, vivify_616
$P1561 = root_new ['parrot';'ResizablePMCArray']
vivify_616:
unless $P1561, if_1558_end
.const 'Sub' $P1563 = "102_1307988395.99251"
capture_lex $P1563
$P1563()
if_1558_end:
.annotate 'line', 648
find_lex $P1613, "self"
find_lex $P1614, "$?CLASS"
getattribute $P1615, $P1613, $P1614, "@!parents"
unless_null $P1615, vivify_633
$P1615 = root_new ['parrot';'ResizablePMCArray']
vivify_633:
set $N1616, $P1615
iseq $I1617, $N1616, 0.0
if $I1617, if_1612
new $P1611, 'Integer'
set $P1611, $I1617
goto if_1612_end
if_1612:
find_lex $P1618, "self"
find_lex $P1619, "$?CLASS"
getattribute $P1620, $P1618, $P1619, "$!name"
unless_null $P1620, vivify_634
new $P1620, "Undef"
vivify_634:
set $S1621, $P1620
isne $I1622, $S1621, "NQPMu"
new $P1611, 'Integer'
set $P1611, $I1622
if_1612_end:
unless $P1611, if_1610_end
.annotate 'line', 649
find_lex $P1623, "self"
find_lex $P1624, "$obj"
unless_null $P1624, vivify_635
new $P1624, "Undef"
vivify_635:
find_lex $P1625, "self"
find_lex $P1626, "$?CLASS"
getattribute $P1627, $P1625, $P1626, "$!default_parent"
unless_null $P1627, vivify_636
new $P1627, "Undef"
vivify_636:
$P1623."add_parent"($P1624, $P1627)
if_1610_end:
.annotate 'line', 654
find_lex $P1629, "self"
find_lex $P1630, "$?CLASS"
getattribute $P1631, $P1629, $P1630, "$!composed"
unless_null $P1631, vivify_637
new $P1631, "Undef"
vivify_637:
if $P1631, unless_1628_end
.annotate 'line', 655
find_lex $P1632, "$obj"
unless_null $P1632, vivify_638
new $P1632, "Undef"
vivify_638:
$P1633 = "compute_c3_mro"($P1632)
find_lex $P1634, "self"
find_lex $P1635, "$?CLASS"
setattribute $P1634, $P1635, "@!mro", $P1633
.annotate 'line', 656
new $P1636, "Integer"
assign $P1636, 1
find_lex $P1637, "self"
find_lex $P1638, "$?CLASS"
setattribute $P1637, $P1638, "$!composed", $P1636
unless_1628_end:
.annotate 'line', 660
find_lex $P1639, "self"
find_lex $P1640, "$obj"
unless_null $P1640, vivify_639
new $P1640, "Undef"
vivify_639:
$P1639."incorporate_multi_candidates"($P1640)
.annotate 'line', 663
find_lex $P1642, "self"
find_lex $P1643, "$obj"
unless_null $P1643, vivify_640
new $P1643, "Undef"
vivify_640:
$P1644 = $P1642."attributes"($P1643, "0" :named("local"))
defined $I1645, $P1644
unless $I1645, for_undef_641
iter $P1641, $P1644
new $P1654, 'ExceptionHandler'
set_label $P1654, loop1653_handler
$P1654."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1654
loop1653_test:
unless $P1641, loop1653_done
shift $P1646, $P1641
loop1653_redo:
.const 'Sub' $P1648 = "104_1307988395.99251"
capture_lex $P1648
$P1648($P1646)
loop1653_next:
goto loop1653_test
loop1653_handler:
.local pmc exception
.get_results (exception)
getattribute $P1655, exception, 'type'
eq $P1655, .CONTROL_LOOP_NEXT, loop1653_next
eq $P1655, .CONTROL_LOOP_REDO, loop1653_redo
loop1653_done:
pop_eh
for_undef_641:
.annotate 'line', 666
find_lex $P1656, "self"
find_lex $P1657, "$obj"
unless_null $P1657, vivify_644
new $P1657, "Undef"
vivify_644:
$P1656."publish_type_cache"($P1657)
.annotate 'line', 667
find_lex $P1658, "self"
find_lex $P1659, "$obj"
unless_null $P1659, vivify_645
new $P1659, "Undef"
vivify_645:
$P1658."publish_method_cache"($P1659)
.annotate 'line', 670
find_lex $P1660, "self"
find_lex $P1661, "$obj"
unless_null $P1661, vivify_646
new $P1661, "Undef"
vivify_646:
$P1660."publish_parrot_vtable_mapping"($P1661)
.annotate 'line', 671
find_lex $P1662, "self"
find_lex $P1663, "$obj"
unless_null $P1663, vivify_647
new $P1663, "Undef"
vivify_647:
$P1662."publish_parrot_vtablee_handler_mapping"($P1663)
find_lex $P1664, "$obj"
unless_null $P1664, vivify_648
new $P1664, "Undef"
vivify_648:
.annotate 'line', 631
.return ($P1664)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "_block1562" :anon :subid("102_1307988395.99251") :outer("101_1307988395.99251")
.annotate 'line', 635
.const 'Sub' $P1574 = "103_1307988395.99251"
capture_lex $P1574
.annotate 'line', 636
$P1564 = root_new ['parrot';'ResizablePMCArray']
set $P1565, $P1564
.lex "@instantiated_roles", $P1565
.annotate 'line', 635
find_lex $P1566, "@instantiated_roles"
unless_null $P1566, vivify_617
$P1566 = root_new ['parrot';'ResizablePMCArray']
vivify_617:
.annotate 'line', 637
find_lex $P1568, "self"
find_lex $P1569, "$?CLASS"
getattribute $P1570, $P1568, $P1569, "@!roles"
unless_null $P1570, vivify_618
$P1570 = root_new ['parrot';'ResizablePMCArray']
vivify_618:
defined $I1571, $P1570
unless $I1571, for_undef_619
iter $P1567, $P1570
new $P1604, 'ExceptionHandler'
set_label $P1604, loop1603_handler
$P1604."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1604
loop1603_test:
unless $P1567, loop1603_done
shift $P1572, $P1567
loop1603_redo:
.const 'Sub' $P1574 = "103_1307988395.99251"
capture_lex $P1574
$P1574($P1572)
loop1603_next:
goto loop1603_test
loop1603_handler:
.local pmc exception
.get_results (exception)
getattribute $P1605, exception, 'type'
eq $P1605, .CONTROL_LOOP_NEXT, loop1603_next
eq $P1605, .CONTROL_LOOP_REDO, loop1603_redo
loop1603_done:
pop_eh
for_undef_619:
.annotate 'line', 643
find_lex $P1606, "RoleToClassApplier"
find_lex $P1607, "$obj"
unless_null $P1607, vivify_631
new $P1607, "Undef"
vivify_631:
find_lex $P1608, "@instantiated_roles"
unless_null $P1608, vivify_632
$P1608 = root_new ['parrot';'ResizablePMCArray']
vivify_632:
$P1609 = $P1606."apply"($P1607, $P1608)
.annotate 'line', 635
.return ($P1609)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "_block1573" :anon :subid("103_1307988395.99251") :outer("102_1307988395.99251")
.param pmc param_1577
.annotate 'line', 638
new $P1575, "Undef"
set $P1576, $P1575
.lex "$ins", $P1576
.lex "$_", param_1577
find_lex $P1578, "$_"
unless_null $P1578, vivify_620
new $P1578, "Undef"
vivify_620:
get_how $P1579, $P1578
find_lex $P1580, "$_"
unless_null $P1580, vivify_621
new $P1580, "Undef"
vivify_621:
find_lex $P1581, "$obj"
unless_null $P1581, vivify_622
new $P1581, "Undef"
vivify_622:
$P1582 = $P1579."instantiate"($P1580, $P1581)
store_lex "$ins", $P1582
.annotate 'line', 639
find_lex $P1583, "@instantiated_roles"
unless_null $P1583, vivify_623
$P1583 = root_new ['parrot';'ResizablePMCArray']
vivify_623:
find_lex $P1584, "$ins"
unless_null $P1584, vivify_624
new $P1584, "Undef"
vivify_624:
$P1583."push"($P1584)
.annotate 'line', 640
find_lex $P1585, "$_"
unless_null $P1585, vivify_625
new $P1585, "Undef"
vivify_625:
find_lex $P1586, "self"
find_lex $P1587, "$?CLASS"
getattribute $P1588, $P1586, $P1587, "@!done"
unless_null $P1588, vivify_626
$P1588 = root_new ['parrot';'ResizablePMCArray']
vivify_626:
set $N1589, $P1588
set $I1590, $N1589
find_lex $P1591, "self"
find_lex $P1592, "$?CLASS"
getattribute $P1593, $P1591, $P1592, "@!done"
unless_null $P1593, vivify_627
$P1593 = root_new ['parrot';'ResizablePMCArray']
setattribute $P1591, $P1592, "@!done", $P1593
vivify_627:
set $P1593[$I1590], $P1585
.annotate 'line', 641
find_lex $P1594, "$ins"
unless_null $P1594, vivify_628
new $P1594, "Undef"
vivify_628:
find_lex $P1595, "self"
find_lex $P1596, "$?CLASS"
getattribute $P1597, $P1595, $P1596, "@!done"
unless_null $P1597, vivify_629
$P1597 = root_new ['parrot';'ResizablePMCArray']
vivify_629:
set $N1598, $P1597
set $I1599, $N1598
find_lex $P1600, "self"
find_lex $P1601, "$?CLASS"
getattribute $P1602, $P1600, $P1601, "@!done"
unless_null $P1602, vivify_630
$P1602 = root_new ['parrot';'ResizablePMCArray']
setattribute $P1600, $P1601, "@!done", $P1602
vivify_630:
set $P1602[$I1599], $P1594
.annotate 'line', 637
.return ($P1594)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "_block1647" :anon :subid("104_1307988395.99251") :outer("101_1307988395.99251")
.param pmc param_1649
.annotate 'line', 663
.lex "$_", param_1649
find_lex $P1650, "$_"
unless_null $P1650, vivify_642
new $P1650, "Undef"
vivify_642:
find_lex $P1651, "$obj"
unless_null $P1651, vivify_643
new $P1651, "Undef"
vivify_643:
$P1652 = $P1650."compose"($P1651)
.return ($P1652)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "incorporate_multi_candidates" :anon :subid("105_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_1666
.param pmc param_1667
.annotate 'line', 676
.const 'Sub' $P1684 = "106_1307988395.99251"
capture_lex $P1684
.lex "self", param_1666
.lex "$obj", param_1667
.annotate 'line', 677
new $P1668, "Undef"
set $P1669, $P1668
.lex "$num_todo", $P1669
.annotate 'line', 678
new $P1670, "Undef"
set $P1671, $P1670
.lex "$i", $P1671
.annotate 'line', 677
find_lex $P1672, "self"
find_lex $P1673, "$?CLASS"
getattribute $P1674, $P1672, $P1673, "@!multi_methods_to_incorporate"
unless_null $P1674, vivify_649
$P1674 = root_new ['parrot';'ResizablePMCArray']
vivify_649:
set $N1675, $P1674
new $P1676, 'Float'
set $P1676, $N1675
store_lex "$num_todo", $P1676
.annotate 'line', 678
new $P1677, "Integer"
assign $P1677, 0
store_lex "$i", $P1677
.annotate 'line', 679
new $P1815, 'ExceptionHandler'
set_label $P1815, loop1814_handler
$P1815."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1815
loop1814_test:
find_lex $P1678, "$i"
unless_null $P1678, vivify_650
new $P1678, "Undef"
vivify_650:
set $N1679, $P1678
find_lex $P1680, "$num_todo"
unless_null $P1680, vivify_651
new $P1680, "Undef"
vivify_651:
set $N1681, $P1680
isne $I1682, $N1679, $N1681
unless $I1682, loop1814_done
loop1814_redo:
.const 'Sub' $P1684 = "106_1307988395.99251"
capture_lex $P1684
$P1684()
loop1814_next:
goto loop1814_test
loop1814_handler:
.local pmc exception
.get_results (exception)
getattribute $P1816, exception, 'type'
eq $P1816, .CONTROL_LOOP_NEXT, loop1814_next
eq $P1816, .CONTROL_LOOP_REDO, loop1814_redo
loop1814_done:
pop_eh
.annotate 'line', 676
.return ($I1682)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "_block1683" :anon :subid("106_1307988395.99251") :outer("105_1307988395.99251")
.annotate 'line', 679
.const 'Sub' $P1723 = "107_1307988395.99251"
capture_lex $P1723
.annotate 'line', 681
new $P1685, "Undef"
set $P1686, $P1685
.lex "$name", $P1686
.annotate 'line', 682
new $P1687, "Undef"
set $P1688, $P1687
.lex "$code", $P1688
.annotate 'line', 686
new $P1689, "Undef"
set $P1690, $P1689
.lex "$dispatcher", $P1690
.annotate 'line', 681
find_lex $P1691, "$i"
unless_null $P1691, vivify_652
new $P1691, "Undef"
vivify_652:
set $I1692, $P1691
find_lex $P1693, "self"
find_lex $P1694, "$?CLASS"
getattribute $P1695, $P1693, $P1694, "@!multi_methods_to_incorporate"
unless_null $P1695, vivify_653
$P1695 = root_new ['parrot';'ResizablePMCArray']
vivify_653:
set $P1696, $P1695[$I1692]
unless_null $P1696, vivify_654
$P1696 = root_new ['parrot';'Hash']
vivify_654:
set $P1697, $P1696["name"]
unless_null $P1697, vivify_655
new $P1697, "Undef"
vivify_655:
store_lex "$name", $P1697
.annotate 'line', 682
find_lex $P1698, "$i"
unless_null $P1698, vivify_656
new $P1698, "Undef"
vivify_656:
set $I1699, $P1698
find_lex $P1700, "self"
find_lex $P1701, "$?CLASS"
getattribute $P1702, $P1700, $P1701, "@!multi_methods_to_incorporate"
unless_null $P1702, vivify_657
$P1702 = root_new ['parrot';'ResizablePMCArray']
vivify_657:
set $P1703, $P1702[$I1699]
unless_null $P1703, vivify_658
$P1703 = root_new ['parrot';'Hash']
vivify_658:
set $P1704, $P1703["code"]
unless_null $P1704, vivify_659
new $P1704, "Undef"
vivify_659:
store_lex "$code", $P1704
.annotate 'line', 686
find_lex $P1705, "$name"
unless_null $P1705, vivify_660
new $P1705, "Undef"
vivify_660:
find_lex $P1706, "self"
find_lex $P1707, "$?CLASS"
getattribute $P1708, $P1706, $P1707, "%!methods"
unless_null $P1708, vivify_661
$P1708 = root_new ['parrot';'Hash']
vivify_661:
set $P1709, $P1708[$P1705]
unless_null $P1709, vivify_662
new $P1709, "Undef"
vivify_662:
store_lex "$dispatcher", $P1709
.annotate 'line', 687
find_lex $P1711, "$dispatcher"
unless_null $P1711, vivify_663
new $P1711, "Undef"
vivify_663:
defined $I1712, $P1711
if $I1712, if_1710
.annotate 'line', 697
.const 'Sub' $P1723 = "107_1307988395.99251"
capture_lex $P1723
$P1723()
goto if_1710_end
if_1710:
.annotate 'line', 690
find_lex $P1714, "$dispatcher"
unless_null $P1714, vivify_694
new $P1714, "Undef"
vivify_694:
is_dispatcher $I1715, $P1714
if $I1715, if_1713
.annotate 'line', 694
new $P1718, 'String'
set $P1718, "Cannot have a multi candidate for "
find_lex $P1719, "$name"
unless_null $P1719, vivify_695
new $P1719, "Undef"
vivify_695:
concat $P1720, $P1718, $P1719
concat $P1721, $P1720, " when an only method is also in the class"
die $P1721
.annotate 'line', 693
goto if_1713_end
if_1713:
.annotate 'line', 691
find_lex $P1716, "$dispatcher"
unless_null $P1716, vivify_696
new $P1716, "Undef"
vivify_696:
find_lex $P1717, "$code"
unless_null $P1717, vivify_697
new $P1717, "Undef"
vivify_697:
push_dispatchee $P1716, $P1717
if_1713_end:
if_1710_end:
.annotate 'line', 730
find_lex $P1812, "$i"
unless_null $P1812, vivify_698
new $P1812, "Undef"
vivify_698:
add $P1813, $P1812, 1
store_lex "$i", $P1813
.annotate 'line', 679
.return ($P1813)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "_block1722" :anon :subid("107_1307988395.99251") :outer("106_1307988395.99251")
.annotate 'line', 697
.const 'Sub' $P1742 = "108_1307988395.99251"
capture_lex $P1742
.annotate 'line', 699
new $P1724, "Undef"
set $P1725, $P1724
.lex "$j", $P1725
.annotate 'line', 700
new $P1726, "Undef"
set $P1727, $P1726
.lex "$found", $P1727
.annotate 'line', 699
new $P1728, "Integer"
assign $P1728, 1
store_lex "$j", $P1728
.annotate 'line', 700
new $P1729, "Integer"
assign $P1729, 0
store_lex "$found", $P1729
.annotate 'line', 701
new $P1803, 'ExceptionHandler'
set_label $P1803, loop1802_handler
$P1803."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1803
loop1802_test:
find_lex $P1732, "$j"
unless_null $P1732, vivify_664
new $P1732, "Undef"
vivify_664:
set $N1733, $P1732
find_lex $P1734, "self"
find_lex $P1735, "$?CLASS"
getattribute $P1736, $P1734, $P1735, "@!mro"
unless_null $P1736, vivify_665
$P1736 = root_new ['parrot';'ResizablePMCArray']
vivify_665:
set $N1737, $P1736
isne $I1738, $N1733, $N1737
if $I1738, if_1731
new $P1730, 'Integer'
set $P1730, $I1738
goto if_1731_end
if_1731:
find_lex $P1739, "$found"
unless_null $P1739, vivify_666
new $P1739, "Undef"
vivify_666:
isfalse $I1740, $P1739
new $P1730, 'Integer'
set $P1730, $I1740
if_1731_end:
unless $P1730, loop1802_done
loop1802_redo:
.const 'Sub' $P1742 = "108_1307988395.99251"
capture_lex $P1742
$P1742()
loop1802_next:
goto loop1802_test
loop1802_handler:
.local pmc exception
.get_results (exception)
getattribute $P1804, exception, 'type'
eq $P1804, .CONTROL_LOOP_NEXT, loop1802_next
eq $P1804, .CONTROL_LOOP_REDO, loop1802_redo
loop1802_done:
pop_eh
.annotate 'line', 726
find_lex $P1807, "$found"
unless_null $P1807, vivify_692
new $P1807, "Undef"
vivify_692:
unless $P1807, unless_1806
set $P1805, $P1807
goto unless_1806_end
unless_1806:
.annotate 'line', 727
new $P1808, 'String'
set $P1808, "Could not find a proto for multi "
find_lex $P1809, "$name"
unless_null $P1809, vivify_693
new $P1809, "Undef"
vivify_693:
concat $P1810, $P1808, $P1809
concat $P1811, $P1810, ", and proto generation is NYI"
die $P1811
unless_1806_end:
.annotate 'line', 697
.return ($P1805)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "_block1741" :anon :subid("108_1307988395.99251") :outer("107_1307988395.99251")
.annotate 'line', 701
.const 'Sub' $P1769 = "109_1307988395.99251"
capture_lex $P1769
.annotate 'line', 702
new $P1743, "Undef"
set $P1744, $P1743
.lex "$parent", $P1744
.annotate 'line', 703
$P1745 = root_new ['parrot';'Hash']
set $P1746, $P1745
.lex "%meths", $P1746
.annotate 'line', 704
new $P1747, "Undef"
set $P1748, $P1747
.lex "$dispatcher", $P1748
.annotate 'line', 702
find_lex $P1749, "$j"
unless_null $P1749, vivify_667
new $P1749, "Undef"
vivify_667:
set $I1750, $P1749
find_lex $P1751, "self"
find_lex $P1752, "$?CLASS"
getattribute $P1753, $P1751, $P1752, "@!mro"
unless_null $P1753, vivify_668
$P1753 = root_new ['parrot';'ResizablePMCArray']
vivify_668:
set $P1754, $P1753[$I1750]
unless_null $P1754, vivify_669
new $P1754, "Undef"
vivify_669:
store_lex "$parent", $P1754
.annotate 'line', 703
find_lex $P1755, "$parent"
unless_null $P1755, vivify_670
new $P1755, "Undef"
vivify_670:
get_how $P1756, $P1755
find_lex $P1757, "$parent"
unless_null $P1757, vivify_671
new $P1757, "Undef"
vivify_671:
$P1758 = $P1756."method_table"($P1757)
store_lex "%meths", $P1758
.annotate 'line', 704
find_lex $P1759, "$name"
unless_null $P1759, vivify_672
new $P1759, "Undef"
vivify_672:
find_lex $P1760, "%meths"
unless_null $P1760, vivify_673
$P1760 = root_new ['parrot';'Hash']
vivify_673:
set $P1761, $P1760[$P1759]
unless_null $P1761, vivify_674
new $P1761, "Undef"
vivify_674:
store_lex "$dispatcher", $P1761
.annotate 'line', 705
find_lex $P1763, "$dispatcher"
unless_null $P1763, vivify_675
new $P1763, "Undef"
vivify_675:
defined $I1764, $P1763
unless $I1764, if_1762_end
.annotate 'line', 708
find_lex $P1766, "$dispatcher"
unless_null $P1766, vivify_676
new $P1766, "Undef"
vivify_676:
is_dispatcher $I1767, $P1766
if $I1767, if_1765
.annotate 'line', 721
new $P1796, 'String'
set $P1796, "Could not find a proto for multi "
find_lex $P1797, "$name"
unless_null $P1797, vivify_677
new $P1797, "Undef"
vivify_677:
concat $P1798, $P1796, $P1797
concat $P1799, $P1798, " (it may exist, but an only is hiding it if so)"
die $P1799
.annotate 'line', 720
goto if_1765_end
if_1765:
.annotate 'line', 708
.const 'Sub' $P1769 = "109_1307988395.99251"
capture_lex $P1769
$P1769()
if_1765_end:
if_1762_end:
.annotate 'line', 724
find_lex $P1800, "$j"
unless_null $P1800, vivify_691
new $P1800, "Undef"
vivify_691:
add $P1801, $P1800, 1
store_lex "$j", $P1801
.annotate 'line', 701
.return ($P1801)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "_block1768" :anon :subid("109_1307988395.99251") :outer("108_1307988395.99251")
.annotate 'line', 710
$P1770 = root_new ['parrot';'ResizablePMCArray']
set $P1771, $P1770
.lex "@new_dispatchees", $P1771
.annotate 'line', 712
new $P1772, "Undef"
set $P1773, $P1772
.lex "$new_disp", $P1773
.annotate 'line', 713
new $P1774, "Undef"
set $P1775, $P1774
.lex "$clone_callback", $P1775
.annotate 'line', 708
find_lex $P1776, "@new_dispatchees"
unless_null $P1776, vivify_678
$P1776 = root_new ['parrot';'ResizablePMCArray']
vivify_678:
.annotate 'line', 711
find_lex $P1777, "$code"
unless_null $P1777, vivify_679
new $P1777, "Undef"
vivify_679:
find_lex $P1778, "@new_dispatchees"
unless_null $P1778, vivify_680
$P1778 = root_new ['parrot';'ResizablePMCArray']
store_lex "@new_dispatchees", $P1778
vivify_680:
set $P1778[0], $P1777
.annotate 'line', 712
find_lex $P1779, "$dispatcher"
unless_null $P1779, vivify_681
new $P1779, "Undef"
vivify_681:
find_lex $P1780, "@new_dispatchees"
unless_null $P1780, vivify_682
$P1780 = root_new ['parrot';'ResizablePMCArray']
vivify_682:
create_dispatch_and_add_candidates $P1781, $P1779, $P1780
store_lex "$new_disp", $P1781
.annotate 'line', 713
find_lex $P1782, "$dispatcher"
unless_null $P1782, vivify_683
new $P1782, "Undef"
vivify_683:
getprop $P1783, "CLONE_CALLBACK", $P1782
store_lex "$clone_callback", $P1783
.annotate 'line', 714
find_lex $P1785, "$clone_callback"
unless_null $P1785, vivify_684
new $P1785, "Undef"
vivify_684:
defined $I1786, $P1785
unless $I1786, if_1784_end
.annotate 'line', 715
find_lex $P1787, "$clone_callback"
unless_null $P1787, vivify_685
new $P1787, "Undef"
vivify_685:
find_lex $P1788, "$dispatcher"
unless_null $P1788, vivify_686
new $P1788, "Undef"
vivify_686:
find_lex $P1789, "$new_disp"
unless_null $P1789, vivify_687
new $P1789, "Undef"
vivify_687:
$P1787($P1788, $P1789)
if_1784_end:
.annotate 'line', 717
find_lex $P1790, "$new_disp"
unless_null $P1790, vivify_688
new $P1790, "Undef"
vivify_688:
find_lex $P1791, "$name"
unless_null $P1791, vivify_689
new $P1791, "Undef"
vivify_689:
find_lex $P1792, "self"
find_lex $P1793, "$?CLASS"
getattribute $P1794, $P1792, $P1793, "%!methods"
unless_null $P1794, vivify_690
$P1794 = root_new ['parrot';'Hash']
setattribute $P1792, $P1793, "%!methods", $P1794
vivify_690:
set $P1794[$P1791], $P1790
.annotate 'line', 718
new $P1795, "Integer"
assign $P1795, 1
store_lex "$found", $P1795
.annotate 'line', 708
.return ($P1795)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "publish_type_cache" :anon :subid("110_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_1820
.param pmc param_1821
.annotate 'line', 823
.const 'Sub' $P1847 = "112_1307988395.99251"
capture_lex $P1847
.const 'Sub' $P1832 = "111_1307988395.99251"
capture_lex $P1832
.lex "self", param_1820
.lex "$obj", param_1821
.annotate 'line', 824
$P1822 = root_new ['parrot';'ResizablePMCArray']
set $P1823, $P1822
.lex "@tc", $P1823
.annotate 'line', 823
find_lex $P1824, "@tc"
unless_null $P1824, vivify_699
$P1824 = root_new ['parrot';'ResizablePMCArray']
vivify_699:
.annotate 'line', 825
find_lex $P1826, "self"
find_lex $P1827, "$?CLASS"
getattribute $P1828, $P1826, $P1827, "@!mro"
unless_null $P1828, vivify_700
$P1828 = root_new ['parrot';'ResizablePMCArray']
vivify_700:
defined $I1829, $P1828
unless $I1829, for_undef_701
iter $P1825, $P1828
new $P1838, 'ExceptionHandler'
set_label $P1838, loop1837_handler
$P1838."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1838
loop1837_test:
unless $P1825, loop1837_done
shift $P1830, $P1825
loop1837_redo:
.const 'Sub' $P1832 = "111_1307988395.99251"
capture_lex $P1832
$P1832($P1830)
loop1837_next:
goto loop1837_test
loop1837_handler:
.local pmc exception
.get_results (exception)
getattribute $P1839, exception, 'type'
eq $P1839, .CONTROL_LOOP_NEXT, loop1837_next
eq $P1839, .CONTROL_LOOP_REDO, loop1837_redo
loop1837_done:
pop_eh
for_undef_701:
.annotate 'line', 826
find_lex $P1841, "self"
find_lex $P1842, "$?CLASS"
getattribute $P1843, $P1841, $P1842, "@!done"
unless_null $P1843, vivify_704
$P1843 = root_new ['parrot';'ResizablePMCArray']
vivify_704:
defined $I1844, $P1843
unless $I1844, for_undef_705
iter $P1840, $P1843
new $P1853, 'ExceptionHandler'
set_label $P1853, loop1852_handler
$P1853."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1853
loop1852_test:
unless $P1840, loop1852_done
shift $P1845, $P1840
loop1852_redo:
.const 'Sub' $P1847 = "112_1307988395.99251"
capture_lex $P1847
$P1847($P1845)
loop1852_next:
goto loop1852_test
loop1852_handler:
.local pmc exception
.get_results (exception)
getattribute $P1854, exception, 'type'
eq $P1854, .CONTROL_LOOP_NEXT, loop1852_next
eq $P1854, .CONTROL_LOOP_REDO, loop1852_redo
loop1852_done:
pop_eh
for_undef_705:
.annotate 'line', 827
find_lex $P1855, "$obj"
unless_null $P1855, vivify_708
new $P1855, "Undef"
vivify_708:
find_lex $P1856, "@tc"
unless_null $P1856, vivify_709
$P1856 = root_new ['parrot';'ResizablePMCArray']
vivify_709:
publish_type_check_cache $P1855, $P1856
.annotate 'line', 823
.return ()
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "_block1831" :anon :subid("111_1307988395.99251") :outer("110_1307988395.99251")
.param pmc param_1833
.annotate 'line', 825
.lex "$_", param_1833
find_lex $P1834, "@tc"
unless_null $P1834, vivify_702
$P1834 = root_new ['parrot';'ResizablePMCArray']
vivify_702:
find_lex $P1835, "$_"
unless_null $P1835, vivify_703
new $P1835, "Undef"
vivify_703:
$P1836 = $P1834."push"($P1835)
.return ($P1836)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "_block1846" :anon :subid("112_1307988395.99251") :outer("110_1307988395.99251")
.param pmc param_1848
.annotate 'line', 826
.lex "$_", param_1848
find_lex $P1849, "@tc"
unless_null $P1849, vivify_706
$P1849 = root_new ['parrot';'ResizablePMCArray']
vivify_706:
find_lex $P1850, "$_"
unless_null $P1850, vivify_707
new $P1850, "Undef"
vivify_707:
$P1851 = $P1849."push"($P1850)
.return ($P1851)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "publish_method_cache" :anon :subid("113_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_1858
.param pmc param_1859
.annotate 'line', 830
.const 'Sub' $P1870 = "114_1307988395.99251"
capture_lex $P1870
.lex "self", param_1858
.lex "$obj", param_1859
.annotate 'line', 833
$P1860 = root_new ['parrot';'Hash']
set $P1861, $P1860
.lex "%cache", $P1861
.annotate 'line', 830
find_lex $P1862, "%cache"
unless_null $P1862, vivify_710
$P1862 = root_new ['parrot';'Hash']
vivify_710:
.annotate 'line', 834
find_lex $P1864, "self"
find_lex $P1865, "$?CLASS"
getattribute $P1866, $P1864, $P1865, "@!mro"
unless_null $P1866, vivify_711
$P1866 = root_new ['parrot';'ResizablePMCArray']
vivify_711:
defined $I1867, $P1866
unless $I1867, for_undef_712
iter $P1863, $P1866
new $P1900, 'ExceptionHandler'
set_label $P1900, loop1899_handler
$P1900."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1900
loop1899_test:
unless $P1863, loop1899_done
shift $P1868, $P1863
loop1899_redo:
.const 'Sub' $P1870 = "114_1307988395.99251"
capture_lex $P1870
$P1870($P1868)
loop1899_next:
goto loop1899_test
loop1899_handler:
.local pmc exception
.get_results (exception)
getattribute $P1901, exception, 'type'
eq $P1901, .CONTROL_LOOP_NEXT, loop1899_next
eq $P1901, .CONTROL_LOOP_REDO, loop1899_redo
loop1899_done:
pop_eh
for_undef_712:
.annotate 'line', 842
find_lex $P1902, "$obj"
unless_null $P1902, vivify_723
new $P1902, "Undef"
vivify_723:
find_lex $P1903, "%cache"
unless_null $P1903, vivify_724
$P1903 = root_new ['parrot';'Hash']
vivify_724:
publish_method_cache $P1902, $P1903
.annotate 'line', 830
.return ()
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "_block1869" :anon :subid("114_1307988395.99251") :outer("113_1307988395.99251")
.param pmc param_1873
.annotate 'line', 834
.const 'Sub' $P1883 = "115_1307988395.99251"
capture_lex $P1883
.annotate 'line', 835
$P1871 = root_new ['parrot';'Hash']
set $P1872, $P1871
.lex "%methods", $P1872
.lex "$_", param_1873
find_lex $P1874, "$_"
unless_null $P1874, vivify_713
new $P1874, "Undef"
vivify_713:
get_how $P1875, $P1874
find_lex $P1876, "$_"
unless_null $P1876, vivify_714
new $P1876, "Undef"
vivify_714:
$P1877 = $P1875."method_table"($P1876)
store_lex "%methods", $P1877
.annotate 'line', 836
find_lex $P1879, "%methods"
unless_null $P1879, vivify_715
$P1879 = root_new ['parrot';'Hash']
vivify_715:
defined $I1880, $P1879
unless $I1880, for_undef_716
iter $P1878, $P1879
new $P1897, 'ExceptionHandler'
set_label $P1897, loop1896_handler
$P1897."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1897
loop1896_test:
unless $P1878, loop1896_done
shift $P1881, $P1878
loop1896_redo:
.const 'Sub' $P1883 = "115_1307988395.99251"
capture_lex $P1883
$P1883($P1881)
loop1896_next:
goto loop1896_test
loop1896_handler:
.local pmc exception
.get_results (exception)
getattribute $P1898, exception, 'type'
eq $P1898, .CONTROL_LOOP_NEXT, loop1896_next
eq $P1898, .CONTROL_LOOP_REDO, loop1896_redo
loop1896_done:
pop_eh
for_undef_716:
.annotate 'line', 834
.return ($P1878)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "_block1882" :anon :subid("115_1307988395.99251") :outer("114_1307988395.99251")
.param pmc param_1884
.annotate 'line', 836
.lex "$_", param_1884
.annotate 'line', 837
find_lex $P1887, "$_"
unless_null $P1887, vivify_717
new $P1887, "Undef"
vivify_717:
$P1888 = $P1887."key"()
find_lex $P1889, "%cache"
unless_null $P1889, vivify_718
$P1889 = root_new ['parrot';'Hash']
vivify_718:
set $P1890, $P1889[$P1888]
unless_null $P1890, vivify_719
new $P1890, "Undef"
vivify_719:
unless $P1890, unless_1886
set $P1885, $P1890
goto unless_1886_end
unless_1886:
.annotate 'line', 838
find_lex $P1891, "$_"
unless_null $P1891, vivify_720
new $P1891, "Undef"
vivify_720:
$P1892 = $P1891."value"()
find_lex $P1893, "$_"
unless_null $P1893, vivify_721
new $P1893, "Undef"
vivify_721:
$P1894 = $P1893."key"()
find_lex $P1895, "%cache"
unless_null $P1895, vivify_722
$P1895 = root_new ['parrot';'Hash']
store_lex "%cache", $P1895
vivify_722:
set $P1895[$P1894], $P1892
.annotate 'line', 837
set $P1885, $P1892
unless_1886_end:
.annotate 'line', 836
.return ($P1885)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "publish_parrot_vtable_mapping" :anon :subid("116_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_1905
.param pmc param_1906
.annotate 'line', 845
.const 'Sub' $P1917 = "117_1307988395.99251"
capture_lex $P1917
.lex "self", param_1905
.lex "$obj", param_1906
.annotate 'line', 846
$P1907 = root_new ['parrot';'Hash']
set $P1908, $P1907
.lex "%mapping", $P1908
.annotate 'line', 845
find_lex $P1909, "%mapping"
unless_null $P1909, vivify_725
$P1909 = root_new ['parrot';'Hash']
vivify_725:
.annotate 'line', 847
find_lex $P1911, "self"
find_lex $P1912, "$?CLASS"
getattribute $P1913, $P1911, $P1912, "@!mro"
unless_null $P1913, vivify_726
$P1913 = root_new ['parrot';'ResizablePMCArray']
vivify_726:
defined $I1914, $P1913
unless $I1914, for_undef_727
iter $P1910, $P1913
new $P1947, 'ExceptionHandler'
set_label $P1947, loop1946_handler
$P1947."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1947
loop1946_test:
unless $P1910, loop1946_done
shift $P1915, $P1910
loop1946_redo:
.const 'Sub' $P1917 = "117_1307988395.99251"
capture_lex $P1917
$P1917($P1915)
loop1946_next:
goto loop1946_test
loop1946_handler:
.local pmc exception
.get_results (exception)
getattribute $P1948, exception, 'type'
eq $P1948, .CONTROL_LOOP_NEXT, loop1946_next
eq $P1948, .CONTROL_LOOP_REDO, loop1946_redo
loop1946_done:
pop_eh
for_undef_727:
.annotate 'line', 855
find_lex $P1951, "%mapping"
unless_null $P1951, vivify_738
$P1951 = root_new ['parrot';'Hash']
vivify_738:
set $N1952, $P1951
if $N1952, if_1950
new $P1949, 'Float'
set $P1949, $N1952
goto if_1950_end
if_1950:
.annotate 'line', 856
find_lex $P1953, "$obj"
unless_null $P1953, vivify_739
new $P1953, "Undef"
vivify_739:
find_lex $P1954, "%mapping"
unless_null $P1954, vivify_740
$P1954 = root_new ['parrot';'Hash']
vivify_740:
stable_publish_vtable_mapping $P1953, $P1954
if_1950_end:
.annotate 'line', 845
.return ($P1949)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "_block1916" :anon :subid("117_1307988395.99251") :outer("116_1307988395.99251")
.param pmc param_1920
.annotate 'line', 847
.const 'Sub' $P1930 = "118_1307988395.99251"
capture_lex $P1930
.annotate 'line', 848
$P1918 = root_new ['parrot';'Hash']
set $P1919, $P1918
.lex "%map", $P1919
.lex "$_", param_1920
find_lex $P1921, "$_"
unless_null $P1921, vivify_728
new $P1921, "Undef"
vivify_728:
get_how $P1922, $P1921
find_lex $P1923, "$_"
unless_null $P1923, vivify_729
new $P1923, "Undef"
vivify_729:
$P1924 = $P1922."parrot_vtable_mappings"($P1923, 1 :named("local"))
store_lex "%map", $P1924
.annotate 'line', 849
find_lex $P1926, "%map"
unless_null $P1926, vivify_730
$P1926 = root_new ['parrot';'Hash']
vivify_730:
defined $I1927, $P1926
unless $I1927, for_undef_731
iter $P1925, $P1926
new $P1944, 'ExceptionHandler'
set_label $P1944, loop1943_handler
$P1944."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1944
loop1943_test:
unless $P1925, loop1943_done
shift $P1928, $P1925
loop1943_redo:
.const 'Sub' $P1930 = "118_1307988395.99251"
capture_lex $P1930
$P1930($P1928)
loop1943_next:
goto loop1943_test
loop1943_handler:
.local pmc exception
.get_results (exception)
getattribute $P1945, exception, 'type'
eq $P1945, .CONTROL_LOOP_NEXT, loop1943_next
eq $P1945, .CONTROL_LOOP_REDO, loop1943_redo
loop1943_done:
pop_eh
for_undef_731:
.annotate 'line', 847
.return ($P1925)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "_block1929" :anon :subid("118_1307988395.99251") :outer("117_1307988395.99251")
.param pmc param_1931
.annotate 'line', 849
.lex "$_", param_1931
.annotate 'line', 850
find_lex $P1934, "$_"
unless_null $P1934, vivify_732
new $P1934, "Undef"
vivify_732:
$P1935 = $P1934."key"()
find_lex $P1936, "%mapping"
unless_null $P1936, vivify_733
$P1936 = root_new ['parrot';'Hash']
vivify_733:
set $P1937, $P1936[$P1935]
unless_null $P1937, vivify_734
new $P1937, "Undef"
vivify_734:
unless $P1937, unless_1933
set $P1932, $P1937
goto unless_1933_end
unless_1933:
.annotate 'line', 851
find_lex $P1938, "$_"
unless_null $P1938, vivify_735
new $P1938, "Undef"
vivify_735:
$P1939 = $P1938."value"()
find_lex $P1940, "$_"
unless_null $P1940, vivify_736
new $P1940, "Undef"
vivify_736:
$P1941 = $P1940."key"()
find_lex $P1942, "%mapping"
unless_null $P1942, vivify_737
$P1942 = root_new ['parrot';'Hash']
store_lex "%mapping", $P1942
vivify_737:
set $P1942[$P1941], $P1939
.annotate 'line', 850
set $P1932, $P1939
unless_1933_end:
.annotate 'line', 849
.return ($P1932)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "publish_parrot_vtablee_handler_mapping" :anon :subid("119_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_1956
.param pmc param_1957
.annotate 'line', 860
.const 'Sub' $P1968 = "120_1307988395.99251"
capture_lex $P1968
.lex "self", param_1956
.lex "$obj", param_1957
.annotate 'line', 861
$P1958 = root_new ['parrot';'Hash']
set $P1959, $P1958
.lex "%mapping", $P1959
.annotate 'line', 860
find_lex $P1960, "%mapping"
unless_null $P1960, vivify_741
$P1960 = root_new ['parrot';'Hash']
vivify_741:
.annotate 'line', 862
find_lex $P1962, "self"
find_lex $P1963, "$?CLASS"
getattribute $P1964, $P1962, $P1963, "@!mro"
unless_null $P1964, vivify_742
$P1964 = root_new ['parrot';'ResizablePMCArray']
vivify_742:
defined $I1965, $P1964
unless $I1965, for_undef_743
iter $P1961, $P1964
new $P1998, 'ExceptionHandler'
set_label $P1998, loop1997_handler
$P1998."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1998
loop1997_test:
unless $P1961, loop1997_done
shift $P1966, $P1961
loop1997_redo:
.const 'Sub' $P1968 = "120_1307988395.99251"
capture_lex $P1968
$P1968($P1966)
loop1997_next:
goto loop1997_test
loop1997_handler:
.local pmc exception
.get_results (exception)
getattribute $P1999, exception, 'type'
eq $P1999, .CONTROL_LOOP_NEXT, loop1997_next
eq $P1999, .CONTROL_LOOP_REDO, loop1997_redo
loop1997_done:
pop_eh
for_undef_743:
.annotate 'line', 870
find_lex $P2002, "%mapping"
unless_null $P2002, vivify_754
$P2002 = root_new ['parrot';'Hash']
vivify_754:
set $N2003, $P2002
if $N2003, if_2001
new $P2000, 'Float'
set $P2000, $N2003
goto if_2001_end
if_2001:
.annotate 'line', 871
find_lex $P2004, "$obj"
unless_null $P2004, vivify_755
new $P2004, "Undef"
vivify_755:
find_lex $P2005, "%mapping"
unless_null $P2005, vivify_756
$P2005 = root_new ['parrot';'Hash']
vivify_756:
stable_publish_vtable_handler_mapping $P2004, $P2005
if_2001_end:
.annotate 'line', 860
.return ($P2000)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "_block1967" :anon :subid("120_1307988395.99251") :outer("119_1307988395.99251")
.param pmc param_1971
.annotate 'line', 862
.const 'Sub' $P1981 = "121_1307988395.99251"
capture_lex $P1981
.annotate 'line', 863
$P1969 = root_new ['parrot';'Hash']
set $P1970, $P1969
.lex "%map", $P1970
.lex "$_", param_1971
find_lex $P1972, "$_"
unless_null $P1972, vivify_744
new $P1972, "Undef"
vivify_744:
get_how $P1973, $P1972
find_lex $P1974, "$_"
unless_null $P1974, vivify_745
new $P1974, "Undef"
vivify_745:
$P1975 = $P1973."parrot_vtable_handler_mappings"($P1974, 1 :named("local"))
store_lex "%map", $P1975
.annotate 'line', 864
find_lex $P1977, "%map"
unless_null $P1977, vivify_746
$P1977 = root_new ['parrot';'Hash']
vivify_746:
defined $I1978, $P1977
unless $I1978, for_undef_747
iter $P1976, $P1977
new $P1995, 'ExceptionHandler'
set_label $P1995, loop1994_handler
$P1995."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1995
loop1994_test:
unless $P1976, loop1994_done
shift $P1979, $P1976
loop1994_redo:
.const 'Sub' $P1981 = "121_1307988395.99251"
capture_lex $P1981
$P1981($P1979)
loop1994_next:
goto loop1994_test
loop1994_handler:
.local pmc exception
.get_results (exception)
getattribute $P1996, exception, 'type'
eq $P1996, .CONTROL_LOOP_NEXT, loop1994_next
eq $P1996, .CONTROL_LOOP_REDO, loop1994_redo
loop1994_done:
pop_eh
for_undef_747:
.annotate 'line', 862
.return ($P1976)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "_block1980" :anon :subid("121_1307988395.99251") :outer("120_1307988395.99251")
.param pmc param_1982
.annotate 'line', 864
.lex "$_", param_1982
.annotate 'line', 865
find_lex $P1985, "$_"
unless_null $P1985, vivify_748
new $P1985, "Undef"
vivify_748:
$P1986 = $P1985."key"()
find_lex $P1987, "%mapping"
unless_null $P1987, vivify_749
$P1987 = root_new ['parrot';'Hash']
vivify_749:
set $P1988, $P1987[$P1986]
unless_null $P1988, vivify_750
new $P1988, "Undef"
vivify_750:
unless $P1988, unless_1984
set $P1983, $P1988
goto unless_1984_end
unless_1984:
.annotate 'line', 866
find_lex $P1989, "$_"
unless_null $P1989, vivify_751
new $P1989, "Undef"
vivify_751:
$P1990 = $P1989."value"()
find_lex $P1991, "$_"
unless_null $P1991, vivify_752
new $P1991, "Undef"
vivify_752:
$P1992 = $P1991."key"()
find_lex $P1993, "%mapping"
unless_null $P1993, vivify_753
$P1993 = root_new ['parrot';'Hash']
store_lex "%mapping", $P1993
vivify_753:
set $P1993[$P1992], $P1990
.annotate 'line', 865
set $P1983, $P1990
unless_1984_end:
.annotate 'line', 864
.return ($P1983)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "parents" :anon :subid("122_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_2007
.param pmc param_2008
.param pmc param_2009 :optional :named("local")
.param int has_param_2009 :opt_flag
.annotate 'line', 878
.lex "self", param_2007
.lex "$obj", param_2008
if has_param_2009, optparam_757
new $P2010, "Undef"
set param_2009, $P2010
optparam_757:
.lex "$local", param_2009
.annotate 'line', 879
find_lex $P2013, "$local"
unless_null $P2013, vivify_758
new $P2013, "Undef"
vivify_758:
if $P2013, if_2012
find_lex $P2017, "self"
find_lex $P2018, "$?CLASS"
getattribute $P2019, $P2017, $P2018, "@!mro"
unless_null $P2019, vivify_759
$P2019 = root_new ['parrot';'ResizablePMCArray']
vivify_759:
set $P2011, $P2019
goto if_2012_end
if_2012:
find_lex $P2014, "self"
find_lex $P2015, "$?CLASS"
getattribute $P2016, $P2014, $P2015, "@!parents"
unless_null $P2016, vivify_760
$P2016 = root_new ['parrot';'ResizablePMCArray']
vivify_760:
set $P2011, $P2016
if_2012_end:
.annotate 'line', 878
.return ($P2011)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "roles" :anon :subid("123_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_2021
.param pmc param_2022
.param pmc param_2023 :named("local")
.annotate 'line', 882
.lex "self", param_2021
.lex "$obj", param_2022
.lex "$local", param_2023
find_lex $P2024, "self"
find_lex $P2025, "$?CLASS"
getattribute $P2026, $P2024, $P2025, "@!roles"
unless_null $P2026, vivify_761
$P2026 = root_new ['parrot';'ResizablePMCArray']
vivify_761:
.return ($P2026)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "methods" :anon :subid("124_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_2028
.param pmc param_2029
.param pmc param_2030 :named("local")
.annotate 'line', 886
.const 'Sub' $P2041 = "125_1307988395.99251"
capture_lex $P2041
.lex "self", param_2028
.lex "$obj", param_2029
.lex "$local", param_2030
.annotate 'line', 887
$P2031 = root_new ['parrot';'ResizablePMCArray']
set $P2032, $P2031
.lex "@meths", $P2032
.annotate 'line', 886
find_lex $P2033, "@meths"
unless_null $P2033, vivify_762
$P2033 = root_new ['parrot';'ResizablePMCArray']
vivify_762:
.annotate 'line', 888
find_lex $P2035, "self"
find_lex $P2036, "$?CLASS"
getattribute $P2037, $P2035, $P2036, "%!methods"
unless_null $P2037, vivify_763
$P2037 = root_new ['parrot';'Hash']
vivify_763:
defined $I2038, $P2037
unless $I2038, for_undef_764
iter $P2034, $P2037
new $P2048, 'ExceptionHandler'
set_label $P2048, loop2047_handler
$P2048."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P2048
loop2047_test:
unless $P2034, loop2047_done
shift $P2039, $P2034
loop2047_redo:
.const 'Sub' $P2041 = "125_1307988395.99251"
capture_lex $P2041
$P2041($P2039)
loop2047_next:
goto loop2047_test
loop2047_handler:
.local pmc exception
.get_results (exception)
getattribute $P2049, exception, 'type'
eq $P2049, .CONTROL_LOOP_NEXT, loop2047_next
eq $P2049, .CONTROL_LOOP_REDO, loop2047_redo
loop2047_done:
pop_eh
for_undef_764:
find_lex $P2050, "@meths"
unless_null $P2050, vivify_767
$P2050 = root_new ['parrot';'ResizablePMCArray']
vivify_767:
.annotate 'line', 886
.return ($P2050)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "_block2040" :anon :subid("125_1307988395.99251") :outer("124_1307988395.99251")
.param pmc param_2042
.annotate 'line', 888
.lex "$_", param_2042
.annotate 'line', 889
find_lex $P2043, "@meths"
unless_null $P2043, vivify_765
$P2043 = root_new ['parrot';'ResizablePMCArray']
vivify_765:
find_lex $P2044, "$_"
unless_null $P2044, vivify_766
new $P2044, "Undef"
vivify_766:
$P2045 = $P2044."value"()
$P2046 = $P2043."push"($P2045)
.annotate 'line', 888
.return ($P2046)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "method_table" :anon :subid("126_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_2052
.param pmc param_2053
.annotate 'line', 894
.lex "self", param_2052
.lex "$obj", param_2053
find_lex $P2054, "self"
find_lex $P2055, "$?CLASS"
getattribute $P2056, $P2054, $P2055, "%!methods"
unless_null $P2056, vivify_768
$P2056 = root_new ['parrot';'Hash']
vivify_768:
.return ($P2056)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "name" :anon :subid("127_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_2058
.param pmc param_2059
.annotate 'line', 898
.lex "self", param_2058
.lex "$obj", param_2059
find_lex $P2060, "self"
find_lex $P2061, "$?CLASS"
getattribute $P2062, $P2060, $P2061, "$!name"
unless_null $P2062, vivify_769
new $P2062, "Undef"
vivify_769:
.return ($P2062)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "attributes" :anon :subid("128_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_2064
.param pmc param_2065
.param pmc param_2066 :named("local")
.annotate 'line', 902
.const 'Sub' $P2077 = "129_1307988395.99251"
capture_lex $P2077
.lex "self", param_2064
.lex "$obj", param_2065
.lex "$local", param_2066
.annotate 'line', 903
$P2067 = root_new ['parrot';'ResizablePMCArray']
set $P2068, $P2067
.lex "@attrs", $P2068
.annotate 'line', 902
find_lex $P2069, "@attrs"
unless_null $P2069, vivify_770
$P2069 = root_new ['parrot';'ResizablePMCArray']
vivify_770:
.annotate 'line', 904
find_lex $P2071, "self"
find_lex $P2072, "$?CLASS"
getattribute $P2073, $P2071, $P2072, "%!attributes"
unless_null $P2073, vivify_771
$P2073 = root_new ['parrot';'Hash']
vivify_771:
defined $I2074, $P2073
unless $I2074, for_undef_772
iter $P2070, $P2073
new $P2084, 'ExceptionHandler'
set_label $P2084, loop2083_handler
$P2084."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P2084
loop2083_test:
unless $P2070, loop2083_done
shift $P2075, $P2070
loop2083_redo:
.const 'Sub' $P2077 = "129_1307988395.99251"
capture_lex $P2077
$P2077($P2075)
loop2083_next:
goto loop2083_test
loop2083_handler:
.local pmc exception
.get_results (exception)
getattribute $P2085, exception, 'type'
eq $P2085, .CONTROL_LOOP_NEXT, loop2083_next
eq $P2085, .CONTROL_LOOP_REDO, loop2083_redo
loop2083_done:
pop_eh
for_undef_772:
find_lex $P2086, "@attrs"
unless_null $P2086, vivify_775
$P2086 = root_new ['parrot';'ResizablePMCArray']
vivify_775:
.annotate 'line', 902
.return ($P2086)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "_block2076" :anon :subid("129_1307988395.99251") :outer("128_1307988395.99251")
.param pmc param_2078
.annotate 'line', 904
.lex "$_", param_2078
.annotate 'line', 905
find_lex $P2079, "@attrs"
unless_null $P2079, vivify_773
$P2079 = root_new ['parrot';'ResizablePMCArray']
vivify_773:
find_lex $P2080, "$_"
unless_null $P2080, vivify_774
new $P2080, "Undef"
vivify_774:
$P2081 = $P2080."value"()
$P2082 = $P2079."push"($P2081)
.annotate 'line', 904
.return ($P2082)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "parrot_vtable_mappings" :anon :subid("130_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_2088
.param pmc param_2089
.param pmc param_2090 :named("local")
.annotate 'line', 910
.lex "self", param_2088
.lex "$obj", param_2089
.lex "$local", param_2090
find_lex $P2091, "self"
find_lex $P2092, "$?CLASS"
getattribute $P2093, $P2091, $P2092, "%!parrot_vtable_mapping"
unless_null $P2093, vivify_776
$P2093 = root_new ['parrot';'Hash']
vivify_776:
.return ($P2093)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.sub "parrot_vtable_handler_mappings" :anon :subid("131_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_2095
.param pmc param_2096
.param pmc param_2097 :named("local")
.annotate 'line', 914
.lex "self", param_2095
.lex "$obj", param_2096
.lex "$local", param_2097
find_lex $P2098, "self"
find_lex $P2099, "$?CLASS"
getattribute $P2100, $P2098, $P2099, "%!parrot_vtable_handler_mapping"
unless_null $P2100, vivify_777
$P2100 = root_new ['parrot';'Hash']
vivify_777:
.return ($P2100)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "isa" :anon :subid("132_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_2104
.param pmc param_2105
.param pmc param_2106
.annotate 'line', 922
new $P2103, ['ExceptionHandler'], .CONTROL_RETURN
set_label $P2103, control_2102
push_eh $P2103
.lex "self", param_2104
.lex "$obj", param_2105
.lex "$check", param_2106
.annotate 'line', 923
new $P2107, "Undef"
set $P2108, $P2107
.lex "$check-class", $P2108
.annotate 'line', 924
new $P2109, "Undef"
set $P2110, $P2109
.lex "$i", $P2110
.annotate 'line', 923
find_lex $P2111, "$check"
unless_null $P2111, vivify_778
new $P2111, "Undef"
vivify_778:
get_what $P2112, $P2111
store_lex "$check-class", $P2112
.annotate 'line', 924
find_lex $P2113, "self"
find_lex $P2114, "$?CLASS"
getattribute $P2115, $P2113, $P2114, "@!mro"
unless_null $P2115, vivify_779
$P2115 = root_new ['parrot';'ResizablePMCArray']
vivify_779:
set $N2116, $P2115
new $P2117, 'Float'
set $P2117, $N2116
store_lex "$i", $P2117
.annotate 'line', 925
new $P2135, 'ExceptionHandler'
set_label $P2135, loop2134_handler
$P2135."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P2135
loop2134_test:
find_lex $P2118, "$i"
unless_null $P2118, vivify_780
new $P2118, "Undef"
vivify_780:
set $N2119, $P2118
isgt $I2120, $N2119, 0.0
unless $I2120, loop2134_done
loop2134_redo:
.annotate 'line', 926
find_lex $P2121, "$i"
unless_null $P2121, vivify_781
new $P2121, "Undef"
vivify_781:
sub $P2122, $P2121, 1
store_lex "$i", $P2122
.annotate 'line', 927
find_lex $P2124, "$i"
unless_null $P2124, vivify_782
new $P2124, "Undef"
vivify_782:
set $I2125, $P2124
find_lex $P2126, "self"
find_lex $P2127, "$?CLASS"
getattribute $P2128, $P2126, $P2127, "@!mro"
unless_null $P2128, vivify_783
$P2128 = root_new ['parrot';'ResizablePMCArray']
vivify_783:
set $P2129, $P2128[$I2125]
unless_null $P2129, vivify_784
new $P2129, "Undef"
vivify_784:
find_lex $P2130, "$check-class"
unless_null $P2130, vivify_785
new $P2130, "Undef"
vivify_785:
issame $I2131, $P2129, $P2130
unless $I2131, if_2123_end
.annotate 'line', 928
new $P2132, "Exception"
set $P2132['type'], .CONTROL_RETURN
new $P2133, "Integer"
assign $P2133, 1
setattribute $P2132, 'payload', $P2133
throw $P2132
if_2123_end:
loop2134_next:
.annotate 'line', 925
goto loop2134_test
loop2134_handler:
.local pmc exception
.get_results (exception)
getattribute $P2136, exception, 'type'
eq $P2136, .CONTROL_LOOP_NEXT, loop2134_next
eq $P2136, .CONTROL_LOOP_REDO, loop2134_redo
loop2134_done:
pop_eh
.annotate 'line', 931
new $P2137, "Exception"
set $P2137['type'], .CONTROL_RETURN
new $P2138, "Integer"
assign $P2138, 0
setattribute $P2137, 'payload', $P2138
throw $P2137
.annotate 'line', 922
.return ()
control_2102:
.local pmc exception
.get_results (exception)
getattribute $P2139, exception, "payload"
.return ($P2139)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "does" :anon :subid("133_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_2143
.param pmc param_2144
.param pmc param_2145
.annotate 'line', 934
new $P2142, ['ExceptionHandler'], .CONTROL_RETURN
set_label $P2142, control_2141
push_eh $P2142
.lex "self", param_2143
.lex "$obj", param_2144
.lex "$check", param_2145
.annotate 'line', 935
new $P2146, "Undef"
set $P2147, $P2146
.lex "$i", $P2147
find_lex $P2148, "self"
find_lex $P2149, "$?CLASS"
getattribute $P2150, $P2148, $P2149, "@!done"
unless_null $P2150, vivify_786
$P2150 = root_new ['parrot';'ResizablePMCArray']
vivify_786:
set $N2151, $P2150
new $P2152, 'Float'
set $P2152, $N2151
store_lex "$i", $P2152
.annotate 'line', 936
new $P2170, 'ExceptionHandler'
set_label $P2170, loop2169_handler
$P2170."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P2170
loop2169_test:
find_lex $P2153, "$i"
unless_null $P2153, vivify_787
new $P2153, "Undef"
vivify_787:
set $N2154, $P2153
isgt $I2155, $N2154, 0.0
unless $I2155, loop2169_done
loop2169_redo:
.annotate 'line', 937
find_lex $P2156, "$i"
unless_null $P2156, vivify_788
new $P2156, "Undef"
vivify_788:
sub $P2157, $P2156, 1
store_lex "$i", $P2157
.annotate 'line', 938
find_lex $P2159, "$i"
unless_null $P2159, vivify_789
new $P2159, "Undef"
vivify_789:
set $I2160, $P2159
find_lex $P2161, "self"
find_lex $P2162, "$?CLASS"
getattribute $P2163, $P2161, $P2162, "@!done"
unless_null $P2163, vivify_790
$P2163 = root_new ['parrot';'ResizablePMCArray']
vivify_790:
set $P2164, $P2163[$I2160]
unless_null $P2164, vivify_791
new $P2164, "Undef"
vivify_791:
find_lex $P2165, "$check"
unless_null $P2165, vivify_792
new $P2165, "Undef"
vivify_792:
issame $I2166, $P2164, $P2165
unless $I2166, if_2158_end
.annotate 'line', 939
new $P2167, "Exception"
set $P2167['type'], .CONTROL_RETURN
new $P2168, "Integer"
assign $P2168, 1
setattribute $P2167, 'payload', $P2168
throw $P2167
if_2158_end:
loop2169_next:
.annotate 'line', 936
goto loop2169_test
loop2169_handler:
.local pmc exception
.get_results (exception)
getattribute $P2171, exception, 'type'
eq $P2171, .CONTROL_LOOP_NEXT, loop2169_next
eq $P2171, .CONTROL_LOOP_REDO, loop2169_redo
loop2169_done:
pop_eh
.annotate 'line', 942
new $P2172, "Exception"
set $P2172['type'], .CONTROL_RETURN
new $P2173, "Integer"
assign $P2173, 0
setattribute $P2172, 'payload', $P2173
throw $P2172
.annotate 'line', 934
.return ()
control_2141:
.local pmc exception
.get_results (exception)
getattribute $P2174, exception, "payload"
.return ($P2174)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "can" :anon :subid("134_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_2178
.param pmc param_2179
.param pmc param_2180
.annotate 'line', 945
.const 'Sub' $P2188 = "135_1307988395.99251"
capture_lex $P2188
new $P2177, ['ExceptionHandler'], .CONTROL_RETURN
set_label $P2177, control_2176
push_eh $P2177
.lex "self", param_2178
.lex "$obj", param_2179
.lex "$name", param_2180
.annotate 'line', 946
find_lex $P2182, "self"
find_lex $P2183, "$?CLASS"
getattribute $P2184, $P2182, $P2183, "@!mro"
unless_null $P2184, vivify_793
$P2184 = root_new ['parrot';'ResizablePMCArray']
vivify_793:
defined $I2185, $P2184
unless $I2185, for_undef_794
iter $P2181, $P2184
new $P2208, 'ExceptionHandler'
set_label $P2208, loop2207_handler
$P2208."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P2208
loop2207_test:
unless $P2181, loop2207_done
shift $P2186, $P2181
loop2207_redo:
.const 'Sub' $P2188 = "135_1307988395.99251"
capture_lex $P2188
$P2188($P2186)
loop2207_next:
goto loop2207_test
loop2207_handler:
.local pmc exception
.get_results (exception)
getattribute $P2209, exception, 'type'
eq $P2209, .CONTROL_LOOP_NEXT, loop2207_next
eq $P2209, .CONTROL_LOOP_REDO, loop2207_redo
loop2207_done:
pop_eh
for_undef_794:
.annotate 'line', 953
new $P2210, "Exception"
set $P2210['type'], .CONTROL_RETURN
new $P2211, "Integer"
assign $P2211, 0
setattribute $P2210, 'payload', $P2211
throw $P2210
.annotate 'line', 945
.return ()
control_2176:
.local pmc exception
.get_results (exception)
getattribute $P2212, exception, "payload"
.return ($P2212)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "_block2187" :anon :subid("135_1307988395.99251") :outer("134_1307988395.99251")
.param pmc param_2193
.annotate 'line', 947
$P2189 = root_new ['parrot';'Hash']
set $P2190, $P2189
.lex "%meths", $P2190
.annotate 'line', 948
new $P2191, "Undef"
set $P2192, $P2191
.lex "$can", $P2192
.lex "$_", param_2193
.annotate 'line', 947
find_lex $P2194, "$_"
unless_null $P2194, vivify_795
new $P2194, "Undef"
vivify_795:
get_how $P2195, $P2194
find_lex $P2196, "$obj"
unless_null $P2196, vivify_796
new $P2196, "Undef"
vivify_796:
$P2197 = $P2195."method_table"($P2196)
store_lex "%meths", $P2197
.annotate 'line', 948
find_lex $P2198, "$name"
unless_null $P2198, vivify_797
new $P2198, "Undef"
vivify_797:
find_lex $P2199, "%meths"
unless_null $P2199, vivify_798
$P2199 = root_new ['parrot';'Hash']
vivify_798:
set $P2200, $P2199[$P2198]
unless_null $P2200, vivify_799
new $P2200, "Undef"
vivify_799:
store_lex "$can", $P2200
.annotate 'line', 949
find_lex $P2203, "$can"
unless_null $P2203, vivify_800
new $P2203, "Undef"
vivify_800:
defined $I2204, $P2203
if $I2204, if_2202
new $P2201, 'Integer'
set $P2201, $I2204
goto if_2202_end
if_2202:
.annotate 'line', 950
new $P2205, "Exception"
set $P2205['type'], .CONTROL_RETURN
find_lex $P2206, "$can"
unless_null $P2206, vivify_801
new $P2206, "Undef"
vivify_801:
setattribute $P2205, 'payload', $P2206
throw $P2205
if_2202_end:
.annotate 'line', 946
.return ($P2201)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "find_method" :anon :subid("136_1307988395.99251") :outer("77_1307988395.99251")
.param pmc param_2216
.param pmc param_2217
.param pmc param_2218
.annotate 'line', 959
.const 'Sub' $P2226 = "137_1307988395.99251"
capture_lex $P2226
new $P2215, ['ExceptionHandler'], .CONTROL_RETURN
set_label $P2215, control_2214
push_eh $P2215
.lex "self", param_2216
.lex "$obj", param_2217
.lex "$name", param_2218
.annotate 'line', 960
find_lex $P2220, "self"
find_lex $P2221, "$?CLASS"
getattribute $P2222, $P2220, $P2221, "@!mro"
unless_null $P2222, vivify_802
$P2222 = root_new ['parrot';'ResizablePMCArray']
vivify_802:
defined $I2223, $P2222
unless $I2223, for_undef_803
iter $P2219, $P2222
new $P2246, 'ExceptionHandler'
set_label $P2246, loop2245_handler
$P2246."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P2246
loop2245_test:
unless $P2219, loop2245_done
shift $P2224, $P2219
loop2245_redo:
.const 'Sub' $P2226 = "137_1307988395.99251"
capture_lex $P2226
$P2226($P2224)
loop2245_next:
goto loop2245_test
loop2245_handler:
.local pmc exception
.get_results (exception)
getattribute $P2247, exception, 'type'
eq $P2247, .CONTROL_LOOP_NEXT, loop2245_next
eq $P2247, .CONTROL_LOOP_REDO, loop2245_redo
loop2245_done:
pop_eh
for_undef_803:
.annotate 'line', 967
null $P2248
.annotate 'line', 959
.return ($P2248)
control_2214:
.local pmc exception
.get_results (exception)
getattribute $P2249, exception, "payload"
.return ($P2249)
.end
.HLL "nqp"
.namespace ["NQPClassHOW"]
.include "except_types.pasm"
.sub "_block2225" :anon :subid("137_1307988395.99251") :outer("136_1307988395.99251")
.param pmc param_2231
.annotate 'line', 961
$P2227 = root_new ['parrot';'Hash']
set $P2228, $P2227
.lex "%meths", $P2228
.annotate 'line', 962
new $P2229, "Undef"
set $P2230, $P2229
.lex "$found", $P2230
.lex "$_", param_2231
.annotate 'line', 961
find_lex $P2232, "$_"
unless_null $P2232, vivify_804
new $P2232, "Undef"
vivify_804:
get_how $P2233, $P2232
find_lex $P2234, "$obj"
unless_null $P2234, vivify_805
new $P2234, "Undef"
vivify_805:
$P2235 = $P2233."method_table"($P2234)
store_lex "%meths", $P2235
.annotate 'line', 962
find_lex $P2236, "$name"
unless_null $P2236, vivify_806
new $P2236, "Undef"
vivify_806:
find_lex $P2237, "%meths"
unless_null $P2237, vivify_807
$P2237 = root_new ['parrot';'Hash']
vivify_807:
set $P2238, $P2237[$P2236]
unless_null $P2238, vivify_808
new $P2238, "Undef"
vivify_808:
store_lex "$found", $P2238
.annotate 'line', 963
find_lex $P2241, "$found"
unless_null $P2241, vivify_809
new $P2241, "Undef"
vivify_809:
defined $I2242, $P2241
if $I2242, if_2240
new $P2239, 'Integer'
set $P2239, $I2242
goto if_2240_end
if_2240:
.annotate 'line', 964
new $P2243, "Exception"
set $P2243['type'], .CONTROL_RETURN
find_lex $P2244, "$found"
unless_null $P2244, vivify_810
new $P2244, "Undef"
vivify_810:
setattribute $P2243, 'payload', $P2244
throw $P2243
if_2240_end:
.annotate 'line', 960
.return ($P2239)
.end
.HLL "nqp"
.namespace ["NQPNativeHOW"]
.sub "_block2251" :subid("138_1307988395.99251") :outer("10_1307988395.99251")
.annotate 'line', 972
.const 'Sub' $P2310 = "146_1307988395.99251"
capture_lex $P2310
.const 'Sub' $P2304 = "145_1307988395.99251"
capture_lex $P2304
.const 'Sub' $P2300 = "144_1307988395.99251"
capture_lex $P2300
.const 'Sub' $P2295 = "143_1307988395.99251"
capture_lex $P2295
.const 'Sub' $P2290 = "142_1307988395.99251"
capture_lex $P2290
.const 'Sub' $P2275 = "141_1307988395.99251"
capture_lex $P2275
.const 'Sub' $P2268 = "140_1307988395.99251"
capture_lex $P2268
.const 'Sub' $P2257 = "139_1307988395.99251"
capture_lex $P2257
set $P2254, $P2253
.lex "$?PACKAGE", $P2254
set $P2256, $P2255
.lex "$?CLASS", $P2256
.annotate 'line', 1012
.const 'Sub' $P2310 = "146_1307988395.99251"
newclosure $P2316, $P2310
.annotate 'line', 972
.return ($P2316)
.end
.HLL "nqp"
.namespace ["NQPNativeHOW"]
.sub "new" :anon :subid("139_1307988395.99251") :outer("138_1307988395.99251")
.param pmc param_2258
.param pmc param_2259 :optional :named("name")
.param int has_param_2259 :opt_flag
.annotate 'line', 976
.lex "self", param_2258
if has_param_2259, optparam_811
new $P2260, "Undef"
set param_2259, $P2260
optparam_811:
.lex "$name", param_2259
.annotate 'line', 977
new $P2261, "Undef"
set $P2262, $P2261
.lex "$obj", $P2262
find_lex $P2263, "self"
repr_instance_of $P2264, $P2263
store_lex "$obj", $P2264
.annotate 'line', 978
find_lex $P2265, "$obj"
unless_null $P2265, vivify_812
new $P2265, "Undef"
vivify_812:
find_lex $P2266, "$name"
unless_null $P2266, vivify_813
new $P2266, "Undef"
vivify_813:
$P2265."BUILD"($P2266 :named("name"))
find_lex $P2267, "$obj"
unless_null $P2267, vivify_814
new $P2267, "Undef"
vivify_814:
.annotate 'line', 976
.return ($P2267)
.end
.HLL "nqp"
.namespace ["NQPNativeHOW"]
.sub "BUILD" :anon :subid("140_1307988395.99251") :outer("138_1307988395.99251")
.param pmc param_2269
.param pmc param_2270 :optional :named("name")
.param int has_param_2270 :opt_flag
.annotate 'line', 982
.lex "self", param_2269
if has_param_2270, optparam_815
new $P2271, "Undef"
set param_2270, $P2271
optparam_815:
.lex "$name", param_2270
.annotate 'line', 983
find_lex $P2272, "$name"
unless_null $P2272, vivify_816
new $P2272, "Undef"
vivify_816:
find_lex $P2273, "self"
find_lex $P2274, "$?CLASS"
setattribute $P2273, $P2274, "$!name", $P2272
.annotate 'line', 982
.return ($P2272)
.end
.HLL "nqp"
.namespace ["NQPNativeHOW"]
.sub "new_type" :anon :subid("141_1307988395.99251") :outer("138_1307988395.99251")
.param pmc param_2276
.param pmc param_2279 :named("repr")
.param pmc param_2277 :optional :named("name")
.param int has_param_2277 :opt_flag
.annotate 'line', 989
.lex "self", param_2276
if has_param_2277, optparam_817
new $P2278, "String"
assign $P2278, "<anon>"
set param_2277, $P2278
optparam_817:
.lex "$name", param_2277
.lex "$repr", param_2279
.annotate 'line', 990
new $P2280, "Undef"
set $P2281, $P2280
.lex "$metaclass", $P2281
find_lex $P2282, "self"
find_lex $P2283, "$name"
unless_null $P2283, vivify_818
new $P2283, "Undef"
vivify_818:
$P2284 = $P2282."new"($P2283 :named("name"))
store_lex "$metaclass", $P2284
.annotate 'line', 992
find_lex $P2285, "$metaclass"
unless_null $P2285, vivify_819
new $P2285, "Undef"
vivify_819:
find_lex $P2286, "$repr"
unless_null $P2286, vivify_820
new $P2286, "Undef"
vivify_820:
set $S2287, $P2286
repr_type_object_for $P2288, $P2285, $S2287
$P2289 = root_new ['parrot';'Hash']
set_who $P2288, $P2289
.annotate 'line', 989
.return ($P2288)
.end
.HLL "nqp"
.namespace ["NQPNativeHOW"]
.sub "add_method" :anon :subid("142_1307988395.99251") :outer("138_1307988395.99251")
.param pmc param_2291
.param pmc param_2292
.param pmc param_2293
.param pmc param_2294
.annotate 'line', 996
.lex "self", param_2291
.lex "$obj", param_2292
.lex "$name", param_2293
.lex "$code_obj", param_2294
.annotate 'line', 997
die "Native types may not have methods (must be boxed to call method)"
.annotate 'line', 996
.return ()
.end
.HLL "nqp"
.namespace ["NQPNativeHOW"]
.sub "add_multi_method" :anon :subid("143_1307988395.99251") :outer("138_1307988395.99251")
.param pmc param_2296
.param pmc param_2297
.param pmc param_2298
.param pmc param_2299
.annotate 'line', 1000
.lex "self", param_2296
.lex "$obj", param_2297
.lex "$name", param_2298
.lex "$code_obj", param_2299
.annotate 'line', 1001
die "Native types may not have methods (must be boxed to call method)"
.annotate 'line', 1000
.return ()
.end
.HLL "nqp"
.namespace ["NQPNativeHOW"]
.sub "add_attribute" :anon :subid("144_1307988395.99251") :outer("138_1307988395.99251")
.param pmc param_2301
.param pmc param_2302
.param pmc param_2303
.annotate 'line', 1004
.lex "self", param_2301
.lex "$obj", param_2302
.lex "$meta_attr", param_2303
.annotate 'line', 1005
die "Native types may not have attributes"
.annotate 'line', 1004
.return ()
.end
.HLL "nqp"
.namespace ["NQPNativeHOW"]
.sub "compose" :anon :subid("145_1307988395.99251") :outer("138_1307988395.99251")
.param pmc param_2305
.param pmc param_2306
.annotate 'line', 1008
.lex "self", param_2305
.lex "$obj", param_2306
.annotate 'line', 1009
new $P2307, "Integer"
assign $P2307, 1
find_lex $P2308, "self"
find_lex $P2309, "$?CLASS"
setattribute $P2308, $P2309, "$!composed", $P2307
.annotate 'line', 1008
.return ($P2307)
.end
.HLL "nqp"
.namespace ["NQPNativeHOW"]
.sub "name" :anon :subid("146_1307988395.99251") :outer("138_1307988395.99251")
.param pmc param_2311
.param pmc param_2312
.annotate 'line', 1012
.lex "self", param_2311
.lex "$obj", param_2312
find_lex $P2313, "self"
find_lex $P2314, "$?CLASS"
getattribute $P2315, $P2313, $P2314, "$!name"
unless_null $P2315, vivify_821
new $P2315, "Undef"
vivify_821:
.return ($P2315)
.end
.HLL "nqp"
.namespace ["NQPAttribute"]
.sub "_block2317" :subid("147_1307988395.99251") :outer("10_1307988395.99251")
.annotate 'line', 1018
.const 'Sub' $P2500 = "160_1307988395.99251"
capture_lex $P2500
.const 'Sub' $P2416 = "155_1307988395.99251"
capture_lex $P2416
.const 'Sub' $P2407 = "154_1307988395.99251"
capture_lex $P2407
.const 'Sub' $P2398 = "153_1307988395.99251"
capture_lex $P2398
.const 'Sub' $P2393 = "152_1307988395.99251"
capture_lex $P2393
.const 'Sub' $P2376 = "151_1307988395.99251"
capture_lex $P2376
.const 'Sub' $P2360 = "150_1307988395.99251"
capture_lex $P2360
.const 'Sub' $P2319 = "148_1307988395.99251"
capture_lex $P2319
.annotate 'line', 1078
.const 'Sub' $P2319 = "148_1307988395.99251"
newclosure $P2354, $P2319
set $P2355, $P2354
.lex "has_method", $P2355
.annotate 'line', 1018
set $P2357, $P2356
.lex "$?PACKAGE", $P2357
set $P2359, $P2358
.lex "$?CLASS", $P2359
.annotate 'line', 1074
find_lex $P2508, "has_method"
.annotate 'line', 1018
.return ($P2508)
.end
.HLL "nqp"
.namespace ["NQPAttribute"]
.include "except_types.pasm"
.sub "has_method" :subid("148_1307988395.99251") :outer("147_1307988395.99251")
.param pmc param_2322
.param pmc param_2323
.param pmc param_2324
.annotate 'line', 1078
.const 'Sub' $P2337 = "149_1307988395.99251"
capture_lex $P2337
new $P2321, ['ExceptionHandler'], .CONTROL_RETURN
set_label $P2321, control_2320
push_eh $P2321
.lex "$target", param_2322
.lex "$name", param_2323
.lex "$local", param_2324
.annotate 'line', 1079
$P2325 = root_new ['parrot';'ResizablePMCArray']
set $P2326, $P2325
.lex "@methods", $P2326
find_lex $P2327, "$target"
unless_null $P2327, vivify_822
new $P2327, "Undef"
vivify_822:
get_how $P2328, $P2327
find_lex $P2329, "$target"
unless_null $P2329, vivify_823
new $P2329, "Undef"
vivify_823:
find_lex $P2330, "$local"
unless_null $P2330, vivify_824
new $P2330, "Undef"
vivify_824:
$P2331 = $P2328."methods"($P2329, $P2330 :named("local"))
store_lex "@methods", $P2331
.annotate 'line', 1080
find_lex $P2333, "@methods"
unless_null $P2333, vivify_825
$P2333 = root_new ['parrot';'ResizablePMCArray']
vivify_825:
defined $I2334, $P2333
unless $I2334, for_undef_826
iter $P2332, $P2333
new $P2349, 'ExceptionHandler'
set_label $P2349, loop2348_handler
$P2349."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P2349
loop2348_test:
unless $P2332, loop2348_done
shift $P2335, $P2332
loop2348_redo:
.const 'Sub' $P2337 = "149_1307988395.99251"
capture_lex $P2337
$P2337($P2335)
loop2348_next:
goto loop2348_test
loop2348_handler:
.local pmc exception
.get_results (exception)
getattribute $P2350, exception, 'type'
eq $P2350, .CONTROL_LOOP_NEXT, loop2348_next
eq $P2350, .CONTROL_LOOP_REDO, loop2348_redo
loop2348_done:
pop_eh
for_undef_826:
.annotate 'line', 1083
new $P2351, "Exception"
set $P2351['type'], .CONTROL_RETURN
new $P2352, "Integer"
assign $P2352, 0
setattribute $P2351, 'payload', $P2352
throw $P2351
.annotate 'line', 1078
.return ()
control_2320:
.local pmc exception
.get_results (exception)
getattribute $P2353, exception, "payload"
.return ($P2353)
.end
.HLL "nqp"
.namespace ["NQPAttribute"]
.include "except_types.pasm"
.sub "_block2336" :anon :subid("149_1307988395.99251") :outer("148_1307988395.99251")
.param pmc param_2338
.annotate 'line', 1080
.lex "$_", param_2338
.annotate 'line', 1081
find_lex $P2341, "$_"
unless_null $P2341, vivify_827
new $P2341, "Undef"
vivify_827:
set $S2342, $P2341
find_lex $P2343, "$name"
unless_null $P2343, vivify_828
new $P2343, "Undef"
vivify_828:
set $S2344, $P2343
iseq $I2345, $S2342, $S2344
if $I2345, if_2340
new $P2339, 'Integer'
set $P2339, $I2345
goto if_2340_end
if_2340:
new $P2346, "Exception"
set $P2346['type'], .CONTROL_RETURN
new $P2347, "Integer"
assign $P2347, 1
setattribute $P2346, 'payload', $P2347
throw $P2346
if_2340_end:
.annotate 'line', 1080
.return ($P2339)
.end
.HLL "nqp"
.namespace ["NQPAttribute"]
.sub "new" :anon :subid("150_1307988395.99251") :outer("147_1307988395.99251")
.param pmc param_2361
.param pmc param_2362 :named("name")
.param pmc param_2363 :optional :named("type")
.param int has_param_2363 :opt_flag
.param pmc param_2365 :optional :named("box_target")
.param int has_param_2365 :opt_flag
.annotate 'line', 1023
.lex "self", param_2361
.lex "$name", param_2362
if has_param_2363, optparam_829
new $P2364, "Undef"
set param_2363, $P2364
optparam_829:
.lex "$type", param_2363
if has_param_2365, optparam_830
new $P2366, "Undef"
set param_2365, $P2366
optparam_830:
.lex "$box_target", param_2365
.annotate 'line', 1024
new $P2367, "Undef"
set $P2368, $P2367
.lex "$attr", $P2368
find_lex $P2369, "self"
repr_instance_of $P2370, $P2369
store_lex "$attr", $P2370
.annotate 'line', 1025
find_lex $P2371, "$attr"
unless_null $P2371, vivify_831
new $P2371, "Undef"
vivify_831:
find_lex $P2372, "$name"
unless_null $P2372, vivify_832
new $P2372, "Undef"
vivify_832:
find_lex $P2373, "$type"
unless_null $P2373, vivify_833
new $P2373, "Undef"
vivify_833:
find_lex $P2374, "$box_target"
unless_null $P2374, vivify_834
new $P2374, "Undef"
vivify_834:
$P2371."BUILD"($P2372 :named("name"), $P2373 :named("type"), $P2374 :named("box_target"))
find_lex $P2375, "$attr"
unless_null $P2375, vivify_835
new $P2375, "Undef"
vivify_835:
.annotate 'line', 1023
.return ($P2375)
.end
.HLL "nqp"
.namespace ["NQPAttribute"]
.sub "BUILD" :anon :subid("151_1307988395.99251") :outer("147_1307988395.99251")
.param pmc param_2377
.param pmc param_2378 :optional :named("name")
.param int has_param_2378 :opt_flag
.param pmc param_2380 :optional :named("type")
.param int has_param_2380 :opt_flag
.param pmc param_2382 :optional :named("box_target")
.param int has_param_2382 :opt_flag
.annotate 'line', 1029
.lex "self", param_2377
if has_param_2378, optparam_836
new $P2379, "Undef"
set param_2378, $P2379
optparam_836:
.lex "$name", param_2378
if has_param_2380, optparam_837
new $P2381, "Undef"
set param_2380, $P2381
optparam_837:
.lex "$type", param_2380
if has_param_2382, optparam_838
new $P2383, "Undef"
set param_2382, $P2383
optparam_838:
.lex "$box_target", param_2382
.annotate 'line', 1030
find_lex $P2384, "$name"
unless_null $P2384, vivify_839
new $P2384, "Undef"
vivify_839:
find_lex $P2385, "self"
find_lex $P2386, "$?CLASS"
setattribute $P2385, $P2386, "$!name", $P2384
.annotate 'line', 1031
find_lex $P2387, "$type"
unless_null $P2387, vivify_840
new $P2387, "Undef"
vivify_840:
find_lex $P2388, "self"
find_lex $P2389, "$?CLASS"
setattribute $P2388, $P2389, "$!type", $P2387
.annotate 'line', 1032
find_lex $P2390, "$box_target"
unless_null $P2390, vivify_841
new $P2390, "Undef"
vivify_841:
find_lex $P2391, "self"
find_lex $P2392, "$?CLASS"
setattribute $P2391, $P2392, "$!box_target", $P2390
.annotate 'line', 1029
.return ($P2390)
.end
.HLL "nqp"
.namespace ["NQPAttribute"]
.sub "name" :anon :subid("152_1307988395.99251") :outer("147_1307988395.99251")
.param pmc param_2394
.annotate 'line', 1035
.lex "self", param_2394
find_lex $P2395, "self"
find_lex $P2396, "$?CLASS"
getattribute $P2397, $P2395, $P2396, "$!name"
unless_null $P2397, vivify_842
new $P2397, "Undef"
vivify_842:
.return ($P2397)
.end
.HLL "nqp"
.namespace ["NQPAttribute"]
.sub "type" :anon :subid("153_1307988395.99251") :outer("147_1307988395.99251")
.param pmc param_2399
.annotate 'line', 1039
.lex "self", param_2399
.annotate 'line', 1040
find_lex $P2401, "self"
find_lex $P2402, "$?CLASS"
getattribute $P2403, $P2401, $P2402, "$!type"
unless_null $P2403, vivify_843
new $P2403, "Undef"
vivify_843:
set $P2400, $P2403
defined $I2405, $P2400
if $I2405, default_2404
null $P2406
set $P2400, $P2406
default_2404:
.annotate 'line', 1039
.return ($P2400)
.end
.HLL "nqp"
.namespace ["NQPAttribute"]
.sub "box_target" :anon :subid("154_1307988395.99251") :outer("147_1307988395.99251")
.param pmc param_2408
.annotate 'line', 1043
.lex "self", param_2408
.annotate 'line', 1044
find_lex $P2411, "self"
find_lex $P2412, "$?CLASS"
getattribute $P2413, $P2411, $P2412, "$!box_target"
unless_null $P2413, vivify_844
new $P2413, "Undef"
vivify_844:
if $P2413, if_2410
new $P2415, "Integer"
assign $P2415, 0
set $P2409, $P2415
goto if_2410_end
if_2410:
new $P2414, "Integer"
assign $P2414, 1
set $P2409, $P2414
if_2410_end:
.annotate 'line', 1043
.return ($P2409)
.end
.HLL "nqp"
.namespace ["NQPAttribute"]
.sub "compose" :anon :subid("155_1307988395.99251") :outer("147_1307988395.99251")
.param pmc param_2417
.param pmc param_2418
.annotate 'line', 1047
.const 'Sub' $P2472 = "158_1307988395.99251"
capture_lex $P2472
.const 'Sub' $P2431 = "156_1307988395.99251"
capture_lex $P2431
.lex "self", param_2417
.lex "$obj", param_2418
.annotate 'line', 1048
new $P2419, "Undef"
set $P2420, $P2419
.lex "$long_name", $P2420
find_lex $P2421, "self"
find_lex $P2422, "$?CLASS"
getattribute $P2423, $P2421, $P2422, "$!name"
unless_null $P2423, vivify_845
new $P2423, "Undef"
vivify_845:
set $S2424, $P2423
new $P2425, 'String'
set $P2425, $S2424
store_lex "$long_name", $P2425
.annotate 'line', 1049
find_lex $P2428, "self"
$P2429 = $P2428."has_mutator"()
if $P2429, if_2427
.annotate 'line', 1061
.const 'Sub' $P2472 = "158_1307988395.99251"
capture_lex $P2472
$P2499 = $P2472()
set $P2426, $P2499
.annotate 'line', 1049
goto if_2427_end
if_2427:
.const 'Sub' $P2431 = "156_1307988395.99251"
capture_lex $P2431
$P2470 = $P2431()
set $P2426, $P2470
if_2427_end:
.annotate 'line', 1047
.return ($P2426)
.end
.HLL "nqp"
.namespace ["NQPAttribute"]
.sub "_block2471" :anon :subid("158_1307988395.99251") :outer("155_1307988395.99251")
.annotate 'line', 1061
.const 'Sub' $P2489 = "159_1307988395.99251"
capture_lex $P2489
.annotate 'line', 1062
new $P2473, "Undef"
set $P2474, $P2473
.lex "$method", $P2474
find_lex $P2475, "$long_name"
unless_null $P2475, vivify_846
new $P2475, "Undef"
vivify_846:
set $S2476, $P2475
substr $S2477, $S2476, 2
new $P2478, 'String'
set $P2478, $S2477
store_lex "$method", $P2478
.annotate 'line', 1063
find_lex $P2481, "$obj"
unless_null $P2481, vivify_847
new $P2481, "Undef"
vivify_847:
find_lex $P2482, "$method"
unless_null $P2482, vivify_848
new $P2482, "Undef"
vivify_848:
$P2483 = "has_method"($P2481, $P2482, 0)
unless $P2483, unless_2480
set $P2479, $P2483
goto unless_2480_end
unless_2480:
.annotate 'line', 1064
find_lex $P2484, "$obj"
unless_null $P2484, vivify_849
new $P2484, "Undef"
vivify_849:
get_how $P2485, $P2484
find_lex $P2486, "$obj"
unless_null $P2486, vivify_850
new $P2486, "Undef"
vivify_850:
find_lex $P2487, "$method"
unless_null $P2487, vivify_851
new $P2487, "Undef"
vivify_851:
.annotate 'line', 1065
.const 'Sub' $P2489 = "159_1307988395.99251"
newclosure $P2497, $P2489
$P2498 = $P2485."add_method"($P2486, $P2487, $P2497)
.annotate 'line', 1063
set $P2479, $P2498
unless_2480_end:
.annotate 'line', 1061
.return ($P2479)
.end
.HLL "nqp"
.namespace ["NQPAttribute"]
.sub "_block2488" :anon :subid("159_1307988395.99251") :outer("158_1307988395.99251")
.param pmc param_2490
.annotate 'line', 1065
.lex "self", param_2490
.annotate 'line', 1066
find_lex $P2491, "self"
find_lex $P2492, "$obj"
unless_null $P2492, vivify_852
new $P2492, "Undef"
vivify_852:
get_what $P2493, $P2492
find_lex $P2494, "$long_name"
unless_null $P2494, vivify_853
new $P2494, "Undef"
vivify_853:
set $S2495, $P2494
getattribute $P2496, $P2491, $P2493, $S2495
.annotate 'line', 1065
.return ($P2496)
.end
.HLL "nqp"
.namespace ["NQPAttribute"]
.sub "_block2430" :anon :subid("156_1307988395.99251") :outer("155_1307988395.99251")
.annotate 'line', 1049
.const 'Sub' $P2449 = "157_1307988395.99251"
capture_lex $P2449
.annotate 'line', 1050
new $P2432, "Undef"
set $P2433, $P2432
.lex "$method", $P2433
find_lex $P2434, "$long_name"
unless_null $P2434, vivify_854
new $P2434, "Undef"
vivify_854:
set $S2435, $P2434
substr $S2436, $S2435, 1
new $P2437, 'String'
set $P2437, $S2436
store_lex "$method", $P2437
.annotate 'line', 1051
find_lex $P2440, "$obj"
unless_null $P2440, vivify_855
new $P2440, "Undef"
vivify_855:
find_lex $P2441, "$method"
unless_null $P2441, vivify_856
new $P2441, "Undef"
vivify_856:
$P2442 = "has_method"($P2440, $P2441, 0)
unless $P2442, unless_2439
set $P2438, $P2442
goto unless_2439_end
unless_2439:
.annotate 'line', 1052
find_lex $P2443, "$obj"
unless_null $P2443, vivify_857
new $P2443, "Undef"
vivify_857:
get_how $P2444, $P2443
find_lex $P2445, "$obj"
unless_null $P2445, vivify_858
new $P2445, "Undef"
vivify_858:
get_what $P2446, $P2445
find_lex $P2447, "$method"
unless_null $P2447, vivify_859
new $P2447, "Undef"
vivify_859:
.const 'Sub' $P2449 = "157_1307988395.99251"
newclosure $P2468, $P2449
$P2469 = $P2444."add_method"($P2446, $P2447, $P2468)
.annotate 'line', 1051
set $P2438, $P2469
unless_2439_end:
.annotate 'line', 1049
.return ($P2438)
.end
.HLL "nqp"
.namespace ["NQPAttribute"]
.sub "_block2448" :anon :subid("157_1307988395.99251") :outer("156_1307988395.99251")
.param pmc param_2450
.param pmc param_2451 :optional
.param int has_param_2451 :opt_flag
.annotate 'line', 1052
.lex "self", param_2450
if has_param_2451, optparam_860
new $P2452, "Undef"
set param_2451, $P2452
optparam_860:
.lex "$value", param_2451
.annotate 'line', 1054
find_lex $P2454, "$value"
unless_null $P2454, vivify_861
new $P2454, "Undef"
vivify_861:
defined $I2455, $P2454
unless $I2455, if_2453_end
.annotate 'line', 1053
find_lex $P2456, "self"
find_lex $P2457, "$obj"
unless_null $P2457, vivify_862
new $P2457, "Undef"
vivify_862:
get_what $P2458, $P2457
find_lex $P2459, "$long_name"
unless_null $P2459, vivify_863
new $P2459, "Undef"
vivify_863:
set $S2460, $P2459
find_lex $P2461, "$value"
unless_null $P2461, vivify_864
new $P2461, "Undef"
vivify_864:
setattribute $P2456, $P2458, $S2460, $P2461
if_2453_end:
.annotate 'line', 1056
find_lex $P2462, "self"
find_lex $P2463, "$obj"
unless_null $P2463, vivify_865
new $P2463, "Undef"
vivify_865:
get_what $P2464, $P2463
find_lex $P2465, "$long_name"
unless_null $P2465, vivify_866
new $P2465, "Undef"
vivify_866:
set $S2466, $P2465
getattribute $P2467, $P2462, $P2464, $S2466
.annotate 'line', 1052
.return ($P2467)
.end
.HLL "nqp"
.namespace ["NQPAttribute"]
.sub "has_mutator" :anon :subid("160_1307988395.99251") :outer("147_1307988395.99251")
.param pmc param_2501
.annotate 'line', 1074
.lex "self", param_2501
.annotate 'line', 1075
find_lex $P2502, "self"
find_lex $P2503, "$?CLASS"
getattribute $P2504, $P2502, $P2503, "$!name"
unless_null $P2504, vivify_867
new $P2504, "Undef"
vivify_867:
set $S2505, $P2504
substr $S2506, $S2505, 1, 1
isne $I2507, $S2506, "!"
.annotate 'line', 1074
.return ($I2507)
.end
.HLL "nqp"
.namespace ["NQPModuleHOW"]
.sub "_block2509" :subid("161_1307988395.99251") :outer("10_1307988395.99251")
.annotate 'line', 1089
.const 'Sub' $P2569 = "169_1307988395.99251"
capture_lex $P2569
.const 'Sub' $P2563 = "168_1307988395.99251"
capture_lex $P2563
.const 'Sub' $P2559 = "167_1307988395.99251"
capture_lex $P2559
.const 'Sub' $P2554 = "166_1307988395.99251"
capture_lex $P2554
.const 'Sub' $P2549 = "165_1307988395.99251"
capture_lex $P2549
.const 'Sub' $P2533 = "164_1307988395.99251"
capture_lex $P2533
.const 'Sub' $P2526 = "163_1307988395.99251"
capture_lex $P2526
.const 'Sub' $P2515 = "162_1307988395.99251"
capture_lex $P2515
set $P2512, $P2511
.lex "$?PACKAGE", $P2512
set $P2514, $P2513
.lex "$?CLASS", $P2514
.annotate 'line', 1130
.const 'Sub' $P2569 = "169_1307988395.99251"
newclosure $P2575, $P2569
.annotate 'line', 1089
.return ($P2575)
.end
.HLL "nqp"
.namespace ["NQPModuleHOW"]
.sub "new" :anon :subid("162_1307988395.99251") :outer("161_1307988395.99251")
.param pmc param_2516
.param pmc param_2517 :optional :named("name")
.param int has_param_2517 :opt_flag
.annotate 'line', 1093
.lex "self", param_2516
if has_param_2517, optparam_868
new $P2518, "Undef"
set param_2517, $P2518
optparam_868:
.lex "$name", param_2517
.annotate 'line', 1094
new $P2519, "Undef"
set $P2520, $P2519
.lex "$obj", $P2520
find_lex $P2521, "self"
repr_instance_of $P2522, $P2521
store_lex "$obj", $P2522
.annotate 'line', 1095
find_lex $P2523, "$obj"
unless_null $P2523, vivify_869
new $P2523, "Undef"
vivify_869:
find_lex $P2524, "$name"
unless_null $P2524, vivify_870
new $P2524, "Undef"
vivify_870:
$P2523."BUILD"($P2524 :named("name"))
find_lex $P2525, "$obj"
unless_null $P2525, vivify_871
new $P2525, "Undef"
vivify_871:
.annotate 'line', 1093
.return ($P2525)
.end
.HLL "nqp"
.namespace ["NQPModuleHOW"]
.sub "BUILD" :anon :subid("163_1307988395.99251") :outer("161_1307988395.99251")
.param pmc param_2527
.param pmc param_2528 :optional :named("name")
.param int has_param_2528 :opt_flag
.annotate 'line', 1099
.lex "self", param_2527
if has_param_2528, optparam_872
new $P2529, "Undef"
set param_2528, $P2529
optparam_872:
.lex "$name", param_2528
.annotate 'line', 1100
find_lex $P2530, "$name"
unless_null $P2530, vivify_873
new $P2530, "Undef"
vivify_873:
find_lex $P2531, "self"
find_lex $P2532, "$?CLASS"
setattribute $P2531, $P2532, "$!name", $P2530
.annotate 'line', 1099
.return ($P2530)
.end
.HLL "nqp"
.namespace ["NQPModuleHOW"]
.sub "new_type" :anon :subid("164_1307988395.99251") :outer("161_1307988395.99251")
.param pmc param_2534
.param pmc param_2535 :optional :named("name")
.param int has_param_2535 :opt_flag
.param pmc param_2537 :optional :named("repr")
.param int has_param_2537 :opt_flag
.annotate 'line', 1105
.lex "self", param_2534
if has_param_2535, optparam_874
new $P2536, "String"
assign $P2536, "<anon>"
set param_2535, $P2536
optparam_874:
.lex "$name", param_2535
if has_param_2537, optparam_875
new $P2538, "String"
assign $P2538, "P6opaque"
set param_2537, $P2538
optparam_875:
.lex "$repr", param_2537
.annotate 'line', 1106
new $P2539, "Undef"
set $P2540, $P2539
.lex "$metaclass", $P2540
find_lex $P2541, "self"
find_lex $P2542, "$name"
unless_null $P2542, vivify_876
new $P2542, "Undef"
vivify_876:
$P2543 = $P2541."new"($P2542 :named("name"))
store_lex "$metaclass", $P2543
.annotate 'line', 1108
find_lex $P2544, "$metaclass"
unless_null $P2544, vivify_877
new $P2544, "Undef"
vivify_877:
find_lex $P2545, "$repr"
unless_null $P2545, vivify_878
new $P2545, "Undef"
vivify_878:
set $S2546, $P2545
repr_type_object_for $P2547, $P2544, $S2546
$P2548 = root_new ['parrot';'Hash']
set_who $P2547, $P2548
.annotate 'line', 1105
.return ($P2547)
.end
.HLL "nqp"
.namespace ["NQPModuleHOW"]
.sub "add_method" :anon :subid("165_1307988395.99251") :outer("161_1307988395.99251")
.param pmc param_2550
.param pmc param_2551
.param pmc param_2552
.param pmc param_2553
.annotate 'line', 1112
.lex "self", param_2550
.lex "$obj", param_2551
.lex "$name", param_2552
.lex "$code_obj", param_2553
.return ()
.end
.HLL "nqp"
.namespace ["NQPModuleHOW"]
.sub "add_multi_method" :anon :subid("166_1307988395.99251") :outer("161_1307988395.99251")
.param pmc param_2555
.param pmc param_2556
.param pmc param_2557
.param pmc param_2558
.annotate 'line', 1118
.lex "self", param_2555
.lex "$obj", param_2556
.lex "$name", param_2557
.lex "$code_obj", param_2558
.annotate 'line', 1119
die "Modules may not have methods"
.annotate 'line', 1118
.return ()
.end
.HLL "nqp"
.namespace ["NQPModuleHOW"]
.sub "add_attribute" :anon :subid("167_1307988395.99251") :outer("161_1307988395.99251")
.param pmc param_2560
.param pmc param_2561
.param pmc param_2562
.annotate 'line', 1122
.lex "self", param_2560
.lex "$obj", param_2561
.lex "$meta_attr", param_2562
.annotate 'line', 1123
die "Modules may not have attributes"
.annotate 'line', 1122
.return ()
.end
.HLL "nqp"
.namespace ["NQPModuleHOW"]
.sub "compose" :anon :subid("168_1307988395.99251") :outer("161_1307988395.99251")
.param pmc param_2564
.param pmc param_2565
.annotate 'line', 1126
.lex "self", param_2564
.lex "$obj", param_2565
.annotate 'line', 1127
new $P2566, "Integer"
assign $P2566, 1
find_lex $P2567, "self"
find_lex $P2568, "$?CLASS"
setattribute $P2567, $P2568, "$!composed", $P2566
.annotate 'line', 1126
.return ($P2566)
.end
.HLL "nqp"
.namespace ["NQPModuleHOW"]
.sub "name" :anon :subid("169_1307988395.99251") :outer("161_1307988395.99251")
.param pmc param_2570
.param pmc param_2571
.annotate 'line', 1130
.lex "self", param_2570
.lex "$obj", param_2571
find_lex $P2572, "self"
find_lex $P2573, "$?CLASS"
getattribute $P2574, $P2572, $P2573, "$!name"
unless_null $P2574, vivify_879
new $P2574, "Undef"
vivify_879:
.return ($P2574)
.end
.HLL "nqp"
.namespace []
.sub "_block2576" :anon :subid("170_1307988395.99251") :outer("10_1307988395.99251")
.annotate 'line', 1138
set $P2579, $P2578
.lex "$?PACKAGE", $P2579
set $P2581, $P2580
.lex "$?CLASS", $P2581
.annotate 'line', 1139
find_lex $P2582, "NQPModuleHOW"
find_lex $P2583, "$?PACKAGE"
unless_null $P2583, vivify_880
new $P2583, "Undef"
store_lex "$?PACKAGE", $P2583
vivify_880:
get_who $P2584, $P2583
set $P2584["module"], $P2582
.annotate 'line', 1140
find_lex $P2585, "NQPClassHOW"
find_lex $P2586, "$?PACKAGE"
unless_null $P2586, vivify_881
new $P2586, "Undef"
store_lex "$?PACKAGE", $P2586
vivify_881:
get_who $P2587, $P2586
set $P2587["class"], $P2585
.annotate 'line', 1141
find_lex $P2588, "NQPAttribute"
find_lex $P2589, "$?PACKAGE"
unless_null $P2589, vivify_882
new $P2589, "Undef"
store_lex "$?PACKAGE", $P2589
vivify_882:
get_who $P2590, $P2589
set $P2590["class-attr"], $P2588
.annotate 'line', 1142
find_lex $P2591, "NQPClassHOW"
find_lex $P2592, "$?PACKAGE"
unless_null $P2592, vivify_883
new $P2592, "Undef"
store_lex "$?PACKAGE", $P2592
vivify_883:
get_who $P2593, $P2592
set $P2593["grammar"], $P2591
.annotate 'line', 1143
find_lex $P2594, "NQPAttribute"
find_lex $P2595, "$?PACKAGE"
unless_null $P2595, vivify_884
new $P2595, "Undef"
store_lex "$?PACKAGE", $P2595
vivify_884:
get_who $P2596, $P2595
set $P2596["grammar-attr"], $P2594
.annotate 'line', 1144
find_lex $P2597, "NQPParametricRoleHOW"
find_lex $P2598, "$?PACKAGE"
unless_null $P2598, vivify_885
new $P2598, "Undef"
store_lex "$?PACKAGE", $P2598
vivify_885:
get_who $P2599, $P2598
set $P2599["role"], $P2597
.annotate 'line', 1145
find_lex $P2600, "NQPAttribute"
find_lex $P2601, "$?PACKAGE"
unless_null $P2601, vivify_886
new $P2601, "Undef"
store_lex "$?PACKAGE", $P2601
vivify_886:
get_who $P2602, $P2601
set $P2602["role-attr"], $P2600
.annotate 'line', 1146
find_lex $P2603, "NQPNativeHOW"
find_lex $P2604, "$?PACKAGE"
unless_null $P2604, vivify_887
new $P2604, "Undef"
store_lex "$?PACKAGE", $P2604
vivify_887:
get_who $P2605, $P2604
set $P2605["native"], $P2603
.annotate 'line', 1138
.return ($P2603)
.end
.HLL "nqp"
.namespace []
.sub "_block2613" :load :anon :subid("171_1307988395.99251")
.annotate 'line', 1
.const 'Sub' $P2615 = "10_1307988395.99251"
$P2616 = $P2615()
.return ($P2616)
.end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment