Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

7603 lines (7603 sloc) 272.001 kb
.include 'cclass.pasm'
.include 'except_severity.pasm'
.include 'except_types.pasm'
.include 'iglobals.pasm'
.include 'interpinfo.pasm'
.include 'iterator.pasm'
.include 'sysinfo.pasm'
.include 'stat.pasm'
.include 'datatypes.pasm'
.loadlib "nqp_group"
.loadlib "nqp_ops"
.loadlib "nqp_bigint_ops"
.loadlib "trans_ops"
.loadlib "io_ops"
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_1_1351276797.164") :anon :lex
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.param pmc _lex_param_0 :slurpy
.const 'Sub' $P5031 = 'cuid_12_1351276797.164'
capture_lex $P5031
.const 'Sub' $P5031 = 'cuid_14_1351276797.164'
capture_lex $P5031
.const 'Sub' $P5031 = 'cuid_34_1351276797.164'
capture_lex $P5031
.const 'Sub' $P5031 = 'cuid_36_1351276797.164'
capture_lex $P5031
.const 'Sub' $P5031 = 'cuid_44_1351276797.164'
capture_lex $P5031
.const 'Sub' $P5031 = 'cuid_64_1351276797.164'
capture_lex $P5031
.const 'Sub' $P5031 = 'cuid_107_1351276797.164'
capture_lex $P5031
.const 'Sub' $P5031 = 'cuid_117_1351276797.164'
capture_lex $P5031
.const 'Sub' $P5031 = 'cuid_128_1351276797.164'
capture_lex $P5031
.const 'Sub' $P5031 = 'cuid_139_1351276797.164'
capture_lex $P5031
.const 'Sub' $P5031 = 'cuid_140_1351276797.164'
capture_lex $P5031
.lex "GLOBALish", $P101
.lex "$?PACKAGE", $P102
.lex "Archetypes", $P103
.lex "RoleToRoleApplier", $P104
.lex "NQPConcreteRoleHOW", $P105
.lex "RoleToClassApplier", $P106
.lex "NQPCurriedRoleHOW", $P107
.lex "NQPParametricRoleHOW", $P108
.lex "NQPClassHOW", $P109
.lex "NQPNativeHOW", $P110
.lex "NQPAttribute", $P111
.lex "NQPModuleHOW", $P112
.lex "EXPORTHOW", $P113
.lex "@ARGS", _lex_param_0
.local pmc ctxsave
find_dynamic_lex $P5001, "$*CTXSAVE"
set ctxsave, $P5001
isnull $I5001, ctxsave
if $I5001 goto unless10_end11
can $I5002, ctxsave, "ctxsave"
box $P5004, $I5002
set $P5003, $P5004
unless $I5002 goto if11_end13
$P5002 = ctxsave."ctxsave"()
set $P5003, $P5002
if11_end13:
unless10_end11:
.annotate 'line', 1
.const 'Sub' $P5005 = 'cuid_12_1351276797.164'
capture_lex $P5005
$P5006 = $P5005()
.const 'Sub' $P5007 = 'cuid_14_1351276797.164'
capture_lex $P5007
$P5008 = $P5007()
.const 'Sub' $P5009 = 'cuid_34_1351276797.164'
capture_lex $P5009
$P5010 = $P5009()
.const 'Sub' $P5011 = 'cuid_36_1351276797.164'
capture_lex $P5011
$P5012 = $P5011()
.const 'Sub' $P5013 = 'cuid_44_1351276797.164'
capture_lex $P5013
$P5014 = $P5013()
.const 'Sub' $P5015 = 'cuid_64_1351276797.164'
capture_lex $P5015
$P5016 = $P5015()
.const 'Sub' $P5017 = 'cuid_107_1351276797.164'
capture_lex $P5017
$P5018 = $P5017()
.const 'Sub' $P5019 = 'cuid_117_1351276797.164'
capture_lex $P5019
$P5020 = $P5019()
.const 'Sub' $P5021 = 'cuid_128_1351276797.164'
capture_lex $P5021
$P5022 = $P5021()
.const 'Sub' $P5023 = 'cuid_139_1351276797.164'
capture_lex $P5023
$P5024 = $P5023()
.const 'Sub' $P5025 = 'cuid_140_1351276797.164'
capture_lex $P5025
$P5026 = $P5025()
unless _lex_param_0 goto if114_end480
load_bytecode "ModuleLoader.pbc"
get_hll_global $P5027, "ModuleLoader"
getinterp $P5029
set $P5028, $P5029["context"]
$P5030 = $P5027."set_mainline_module"($P5028)
if114_end480:
.return ()
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_12_1351276797.164") :anon :lex :outer("cuid_1_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 9
.const 'Sub' $P5011 = 'cuid_2_1351276797.164'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_3_1351276797.164'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_4_1351276797.164'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_5_1351276797.164'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_6_1351276797.164'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_7_1351276797.164'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_8_1351276797.164'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_9_1351276797.164'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_10_1351276797.164'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_11_1351276797.164'
capture_lex $P5011
.lex "$?PACKAGE", $P101
.lex "$?CLASS", $P102
.const 'Sub' $P5001 = 'cuid_2_1351276797.164'
capture_lex $P5001
.const 'Sub' $P5002 = 'cuid_3_1351276797.164'
capture_lex $P5002
.const 'Sub' $P5003 = 'cuid_4_1351276797.164'
capture_lex $P5003
.const 'Sub' $P5004 = 'cuid_5_1351276797.164'
capture_lex $P5004
.const 'Sub' $P5005 = 'cuid_6_1351276797.164'
capture_lex $P5005
.const 'Sub' $P5006 = 'cuid_7_1351276797.164'
capture_lex $P5006
.const 'Sub' $P5007 = 'cuid_8_1351276797.164'
capture_lex $P5007
.const 'Sub' $P5008 = 'cuid_9_1351276797.164'
capture_lex $P5008
.const 'Sub' $P5009 = 'cuid_10_1351276797.164'
capture_lex $P5009
.const 'Sub' $P5010 = 'cuid_11_1351276797.164'
capture_lex $P5010
.return ($P5010)
.end
.HLL "nqp"
.namespace []
.sub "new" :subid("cuid_2_1351276797.164") :anon :lex :outer("cuid_12_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 47
.param pmc _lex_param_0
.param pmc _lex_param_1 :named("nominal") :optional
.param int haz_param_1 :opt_flag
.param pmc _lex_param_2 :named("inheritable") :optional
.param int haz_param_2 :opt_flag
.param pmc _lex_param_3 :named("composable") :optional
.param int haz_param_3 :opt_flag
.param pmc _lex_param_4 :named("parametric") :optional
.param int haz_param_4 :opt_flag
if haz_param_1, default14
null $P5004
set _lex_param_1, $P5004
default14:
if haz_param_2, default15
null $P5005
set _lex_param_2, $P5005
default15:
if haz_param_3, default16
null $P5006
set _lex_param_3, $P5006
default16:
if haz_param_4, default17
null $P5007
set _lex_param_4, $P5007
default17:
.lex "$arch", $P101
.lex "self", _lex_param_0
.lex "$nominal", _lex_param_1
.lex "$inheritable", _lex_param_2
.lex "$composable", _lex_param_3
.lex "$parametric", _lex_param_4
null $P5001
set $P101, $P5001
nqp_decontainerize $P5003, _lex_param_0
repr_instance_of $P5002, $P5003
set $P101, $P5002
.annotate 'line', 49
$P101."BUILD"(_lex_param_1 :named("nominal"), _lex_param_2 :named("inheritable"), _lex_param_3 :named("composable"), _lex_param_4 :named("parametric"))
.return ($P101)
.end
.HLL "nqp"
.namespace []
.sub "BUILD" :subid("cuid_3_1351276797.164") :anon :lex :outer("cuid_12_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 54
.param pmc _lex_param_0
.param pmc _lex_param_1 :named("nominal") :optional
.param int haz_param_5 :opt_flag
.param pmc _lex_param_2 :named("inheritable") :optional
.param int haz_param_6 :opt_flag
.param pmc _lex_param_3 :named("composable") :optional
.param int haz_param_7 :opt_flag
.param pmc _lex_param_4 :named("parametric") :optional
.param int haz_param_8 :opt_flag
if haz_param_5, default18
null $P5009
set _lex_param_1, $P5009
default18:
if haz_param_6, default19
null $P5010
set _lex_param_2, $P5010
default19:
if haz_param_7, default20
null $P5011
set _lex_param_3, $P5011
default20:
if haz_param_8, default21
null $P5012
set _lex_param_4, $P5012
default21:
.lex "self", _lex_param_0
.lex "$nominal", _lex_param_1
.lex "$inheritable", _lex_param_2
.lex "$composable", _lex_param_3
.lex "$parametric", _lex_param_4
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 1
repr_bind_attr_obj $P5001, $P5002, "$!nominal", _lex_param_1
nqp_decontainerize $P5003, _lex_param_0
nqp_get_sc_object $P5004, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 1
repr_bind_attr_obj $P5003, $P5004, "$!inheritable", _lex_param_2
nqp_decontainerize $P5005, _lex_param_0
nqp_get_sc_object $P5006, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 1
repr_bind_attr_obj $P5005, $P5006, "$!composable", _lex_param_3
nqp_decontainerize $P5007, _lex_param_0
nqp_get_sc_object $P5008, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 1
repr_bind_attr_obj $P5007, $P5008, "$!parametric", _lex_param_4
.return (_lex_param_4)
.end
.HLL "nqp"
.namespace []
.sub "nominal" :subid("cuid_4_1351276797.164") :anon :lex :outer("cuid_12_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 61
.param pmc _lex_param_0
.lex "self", _lex_param_0
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 1
repr_get_attr_obj $P5003, $P5001, $P5002, "$!nominal"
unless_null $P5003, vivi_1222
box $P5004, 0
set $P5003, $P5004
vivi_1222:
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "nominalizable" :subid("cuid_5_1351276797.164") :anon :lex :outer("cuid_12_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 62
.param pmc _lex_param_0
.lex "self", _lex_param_0
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 1
repr_get_attr_obj $P5003, $P5001, $P5002, "$!nominalizable"
unless_null $P5003, vivi_1323
box $P5004, 0
set $P5003, $P5004
vivi_1323:
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "inheritable" :subid("cuid_6_1351276797.164") :anon :lex :outer("cuid_12_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 63
.param pmc _lex_param_0
.lex "self", _lex_param_0
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 1
repr_get_attr_obj $P5003, $P5001, $P5002, "$!inheritable"
unless_null $P5003, vivi_1424
box $P5004, 0
set $P5003, $P5004
vivi_1424:
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "inheritalizable" :subid("cuid_7_1351276797.164") :anon :lex :outer("cuid_12_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 64
.param pmc _lex_param_0
.lex "self", _lex_param_0
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 1
repr_get_attr_obj $P5003, $P5001, $P5002, "$!inheritalizable"
unless_null $P5003, vivi_1525
box $P5004, 0
set $P5003, $P5004
vivi_1525:
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "composable" :subid("cuid_8_1351276797.164") :anon :lex :outer("cuid_12_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 65
.param pmc _lex_param_0
.lex "self", _lex_param_0
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 1
repr_get_attr_obj $P5003, $P5001, $P5002, "$!composable"
unless_null $P5003, vivi_1626
box $P5004, 0
set $P5003, $P5004
vivi_1626:
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "composalizable" :subid("cuid_9_1351276797.164") :anon :lex :outer("cuid_12_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 66
.param pmc _lex_param_0
.lex "self", _lex_param_0
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 1
repr_get_attr_obj $P5003, $P5001, $P5002, "$!composalizable"
unless_null $P5003, vivi_1727
box $P5004, 0
set $P5003, $P5004
vivi_1727:
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "generic" :subid("cuid_10_1351276797.164") :anon :lex :outer("cuid_12_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 67
.param pmc _lex_param_0
.lex "self", _lex_param_0
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 1
repr_get_attr_obj $P5003, $P5001, $P5002, "$!generic"
unless_null $P5003, vivi_1828
box $P5004, 0
set $P5003, $P5004
vivi_1828:
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "parametric" :subid("cuid_11_1351276797.164") :anon :lex :outer("cuid_12_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 68
.param pmc _lex_param_0
.lex "self", _lex_param_0
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 1
repr_get_attr_obj $P5003, $P5001, $P5002, "$!parametric"
unless_null $P5003, vivi_1929
box $P5004, 0
set $P5003, $P5004
vivi_1929:
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_14_1351276797.164") :anon :lex :outer("cuid_1_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 72
.const 'Sub' $P5002 = 'cuid_13_1351276797.164'
capture_lex $P5002
.lex "$?PACKAGE", $P101
.lex "$?CLASS", $P102
.const 'Sub' $P5001 = 'cuid_13_1351276797.164'
capture_lex $P5001
.return ($P5001)
.end
.HLL "nqp"
.namespace []
.sub "apply" :subid("cuid_13_1351276797.164") :anon :lex :outer("cuid_14_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 73
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2
.const 'Sub' $P5029 = 'cuid_143_1351276797.164'
capture_lex $P5029
.const 'Sub' $P5029 = 'cuid_144_1351276797.164'
capture_lex $P5029
.const 'Sub' $P5029 = 'cuid_145_1351276797.164'
capture_lex $P5029
.const 'Sub' $P5029 = 'cuid_148_1351276797.164'
capture_lex $P5029
.lex "%meth_info", $P101
.lex "%target_meth_info", $P102
.lex "@target_meths", $P103
.lex "@all_roles", $P104
.lex "self", _lex_param_0
.lex "$target", _lex_param_1
.lex "@roles", _lex_param_2
new $P5001, 'Hash'
set $P101, $P5001
new $P5002, 'Hash'
set $P102, $P5002
new $P5003, 'ResizablePMCArray'
set $P103, $P5003
new $P5004, 'ResizablePMCArray'
set $P104, $P5004
root_new $P105, ['parrot';'Continuation']
set_label $P105, lexotic_30
.lex "RETURN", $P105
set $P5005, _lex_param_2
iter $P5007, _lex_param_2
for_next46:
unless $P5007, for_done48
shift $P5009, $P5007
for_redo47:
.const 'Sub' $P5008 = 'cuid_143_1351276797.164'
capture_lex $P5008
$P5005 = $P5008($P5009)
goto for_next46
for_done48:
.annotate 'line', 102
get_how $P5010, _lex_param_1
$P5011 = $P5010."methods"(_lex_param_1)
set $P103, $P5011
set $P5012, $P103
iter $P5014, $P103
for_next49:
unless $P5014, for_done51
shift $P5016, $P5014
for_redo50:
.const 'Sub' $P5015 = 'cuid_144_1351276797.164'
capture_lex $P5015
$P5012 = $P5015($P5016)
goto for_next49
for_done51:
set $P5017, $P101
iter $P5019, $P101
for_next59:
unless $P5019, for_done61
shift $P5021, $P5019
for_redo60:
.const 'Sub' $P5020 = 'cuid_145_1351276797.164'
capture_lex $P5020
$P5017 = $P5020($P5021)
goto for_next59
for_done61:
set $P5022, _lex_param_2
iter $P5024, _lex_param_2
for_next74:
unless $P5024, for_done76
shift $P5026, $P5024
for_redo75:
.const 'Sub' $P5025 = 'cuid_148_1351276797.164'
capture_lex $P5025
$P5022 = $P5025($P5026)
goto for_next74
for_done76:
find_lex $P5027, "RETURN"
$P5028 = $P5027($P104)
goto lexotic_31
lexotic_30:
.get_results ($P5028)
lexotic_31:
.return ($P5028)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_143_1351276797.164") :anon :lex :outer("cuid_13_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 76
.param pmc _lex_param_0
.const 'Sub' $P5009 = 'cuid_142_1351276797.164'
capture_lex $P5009
.lex "@methods", $P101
.lex "$_", _lex_param_0
new $P5001, 'ResizablePMCArray'
set $P101, $P5001
.annotate 'line', 77
get_how $P5002, _lex_param_0
$P5003 = $P5002."methods"(_lex_param_0)
set $P101, $P5003
set $P5004, $P101
iter $P5006, $P101
for_next43:
unless $P5006, for_done45
shift $P5008, $P5006
for_redo44:
.const 'Sub' $P5007 = 'cuid_142_1351276797.164'
capture_lex $P5007
$P5004 = $P5007($P5008)
goto for_next43
for_done45:
.return ($P5004)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_142_1351276797.164") :anon :lex :outer("cuid_143_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 78
.param pmc _lex_param_0
.const 'Sub' $P5021 = 'cuid_141_1351276797.164'
capture_lex $P5021
.lex "$name", $P101
.lex "$meth", $P102
.lex "@meth_list", $P103
.lex "$found", $P104
.lex "$_", _lex_param_0
null $P5001
set $P101, $P5001
null $P5002
set $P102, $P5002
new $P5003, 'ResizablePMCArray'
set $P103, $P5003
null $P5004
set $P104, $P5004
set $S5001, _lex_param_0
box $P5005, $S5001
set $P101, $P5005
set $P102, _lex_param_0
find_lex $P5007, "%meth_info"
set $S5002, $P101
set $P5006, $P5007[$S5002]
unless_null $P5006, fallback34
null $P5008
set $P5006, $P5008
fallback34:
defined $I5001, $P5006
unless $I5001 goto if20_else32
.annotate 'line', 82
find_lex $P5010, "%meth_info"
set $S5003, $P101
set $P5009, $P5010[$S5003]
unless_null $P5009, fallback35
null $P5011
set $P5009, $P5011
fallback35:
set $P103, $P5009
goto if20_end33
if20_else32:
.annotate 'line', 85
find_lex $P5012, "%meth_info"
set $S5004, $P101
set $P5012[$S5004], $P103
if20_end33:
box $P5013, 0
set $P104, $P5013
set $P5014, $P103
iter $P5016, $P103
for_next38:
unless $P5016, for_done40
shift $P5018, $P5016
for_redo39:
.const 'Sub' $P5017 = 'cuid_141_1351276797.164'
capture_lex $P5017
$P5014 = $P5017($P5018)
goto for_next38
for_done40:
set $P5020, $P104
if $P104 goto unless22_end42
.annotate 'line', 94
.annotate 'line', 95
$P5019 = $P103."push"($P102)
set $P5020, $P5019
unless22_end42:
.return ($P5020)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_141_1351276797.164") :anon :lex :outer("cuid_142_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 89
.param pmc _lex_param_0
.lex "$_", _lex_param_0
find_lex $P5001, "$meth"
get_id $I5002, $P5001
get_id $I5003, _lex_param_0
iseq $I5001, $I5002, $I5003
box $P5004, $I5001
set $P5003, $P5004
unless $I5001 goto if21_end37
.annotate 'line', 90
box $P5002, 1
store_lex "$found", $P5002
set $P5003, $P5002
if21_end37:
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_144_1351276797.164") :anon :lex :outer("cuid_13_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 103
.param pmc _lex_param_0
.lex "$_", _lex_param_0
find_lex $P5001, "%target_meth_info"
set $S5001, _lex_param_0
set $P5001[$S5001], _lex_param_0
.return (_lex_param_0)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_145_1351276797.164") :anon :lex :outer("cuid_13_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 108
.param pmc _lex_param_0
.lex "$name", $P101
.lex "@add_meths", $P102
.lex "$_", _lex_param_0
null $P5001
set $P101, $P5001
new $P5002, 'ResizablePMCArray'
set $P102, $P5002
set $S5001, _lex_param_0
box $P5003, $S5001
set $P101, $P5003
find_lex $P5005, "%meth_info"
set $S5002, $P101
set $P5004, $P5005[$S5002]
unless_null $P5004, fallback52
null $P5006
set $P5004, $P5006
fallback52:
set $P102, $P5004
find_lex $P5008, "%target_meth_info"
set $S5003, $P101
set $P5007, $P5008[$S5003]
unless_null $P5007, fallback55
null $P5009
set $P5007, $P5009
fallback55:
defined $I5001, $P5007
box $P5022, $I5001
set $P5021, $P5022
if $I5001 goto unless23_end54
.annotate 'line', 114
set $N5001, $P102
set $N5002, 1
iseq $I5002, $N5001, $N5002
unless $I5002 goto if24_else56
.annotate 'line', 116
.annotate 'line', 117
find_lex $P5011, "$target"
get_how $P5010, $P5011
find_lex $P5012, "$target"
set $P5013, $P102[0]
unless_null $P5013, fallback58
null $P5014
set $P5013, $P5014
fallback58:
$P5015 = $P5010."add_method"($P5012, $P101, $P5013)
set $P5020, $P5015
goto if24_end57
if24_else56:
.annotate 'line', 119
.annotate 'line', 121
find_lex $P5017, "$target"
get_how $P5016, $P5017
find_lex $P5018, "$target"
$P5019 = $P5016."add_collision"($P5018, $P101)
set $P5020, $P5019
if24_end57:
set $P5021, $P5020
unless23_end54:
.return ($P5021)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_148_1351276797.164") :anon :lex :outer("cuid_13_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 128
.param pmc _lex_param_0
.const 'Sub' $P5012 = 'cuid_147_1351276797.164'
capture_lex $P5012
.lex "$how", $P101
.lex "@attributes", $P102
.lex "$_", _lex_param_0
null $P5001
set $P101, $P5001
new $P5002, 'ResizablePMCArray'
set $P102, $P5002
get_how $P5003, _lex_param_0
set $P101, $P5003
.annotate 'line', 132
$P5004 = $P101."attributes"(_lex_param_0)
set $P102, $P5004
set $P5005, $P102
iter $P5007, $P102
for_next71:
unless $P5007, for_done73
shift $P5009, $P5007
for_redo72:
.const 'Sub' $P5008 = 'cuid_147_1351276797.164'
capture_lex $P5008
$P5005 = $P5008($P5009)
goto for_next71
for_done73:
.annotate 'line', 154
find_lex $P5010, "@all_roles"
$P5011 = $P5010."push"(_lex_param_0)
.return ($P5011)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_147_1351276797.164") :anon :lex :outer("cuid_148_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 133
.param pmc _lex_param_0
.const 'Sub' $P5019 = 'cuid_146_1351276797.164'
capture_lex $P5019
.lex "$add_attr", $P101
.lex "$skip", $P102
.lex "@cur_attrs", $P103
.lex "$_", _lex_param_0
null $P5001
set $P101, $P5001
null $P5002
set $P102, $P5002
new $P5003, 'ResizablePMCArray'
set $P103, $P5003
set $P101, _lex_param_0
box $P5004, 0
set $P102, $P5004
.annotate 'line', 136
find_lex $P5006, "$target"
get_how $P5005, $P5006
find_lex $P5007, "$target"
$P5008 = $P5005."attributes"($P5007)
set $P103, $P5008
set $P5009, $P103
iter $P5011, $P103
for_next66:
unless $P5011, for_done68
shift $P5013, $P5011
for_redo67:
.const 'Sub' $P5012 = 'cuid_146_1351276797.164'
capture_lex $P5012
$P5009 = $P5012($P5013)
goto for_next66
for_done68:
set $P5018, $P102
if $P102 goto unless27_end70
.annotate 'line', 147
.annotate 'line', 148
find_lex $P5015, "$target"
get_how $P5014, $P5015
find_lex $P5016, "$target"
$P5017 = $P5014."add_attribute"($P5016, $P101)
set $P5018, $P5017
unless27_end70:
.return ($P5018)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_146_1351276797.164") :anon :lex :outer("cuid_147_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 137
.param pmc _lex_param_0
.lex "$_", _lex_param_0
get_id $I5002, _lex_param_0
find_lex $P5001, "$add_attr"
get_id $I5003, $P5001
iseq $I5001, $I5002, $I5003
unless $I5001 goto if25_else62
.annotate 'line', 138
box $P5002, 1
store_lex "$skip", $P5002
set $P5010, $P5002
goto if25_end63
if25_else62:
.annotate 'line', 141
.annotate 'line', 142
$P5003 = _lex_param_0."name"()
set $S5001, $P5003
find_lex $P5004, "$add_attr"
$P5005 = $P5004."name"()
set $S5002, $P5005
iseq $I5004, $S5001, $S5002
box $P5009, $I5004
set $P5008, $P5009
unless $I5004 goto if26_end65
.annotate 'line', 143
$P5006 = _lex_param_0."name"()
set $S5005, $P5006
concat $S5004, "Attribute '", $S5005
concat $S5003, $S5004, "' conflicts in role composition"
box $P5007, $S5003
die $P5007
set $P5008, $P5007
if26_end65:
set $P5010, $P5008
if25_end63:
.return ($P5010)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_34_1351276797.164") :anon :lex :outer("cuid_1_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 164
.const 'Sub' $P5023 = 'cuid_15_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_16_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_17_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_18_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_19_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_20_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_21_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_22_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_23_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_24_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_25_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_26_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_27_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_28_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_29_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_30_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_31_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_32_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_33_1351276797.164'
capture_lex $P5023
.lex "$archetypes", $P101
.lex "$?PACKAGE", $P102
.lex "$?CLASS", $P103
null $P5001
set $P101, $P5001
.annotate 'line', 190
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 1
$P5003 = $P5002."new"(1 :named("nominal"), 1 :named("composable"))
set $P101, $P5003
.const 'Sub' $P5004 = 'cuid_15_1351276797.164'
capture_lex $P5004
.const 'Sub' $P5005 = 'cuid_16_1351276797.164'
capture_lex $P5005
.const 'Sub' $P5006 = 'cuid_17_1351276797.164'
capture_lex $P5006
.const 'Sub' $P5007 = 'cuid_18_1351276797.164'
capture_lex $P5007
.const 'Sub' $P5008 = 'cuid_19_1351276797.164'
capture_lex $P5008
.const 'Sub' $P5009 = 'cuid_20_1351276797.164'
capture_lex $P5009
.const 'Sub' $P5010 = 'cuid_21_1351276797.164'
capture_lex $P5010
.const 'Sub' $P5011 = 'cuid_22_1351276797.164'
capture_lex $P5011
.const 'Sub' $P5012 = 'cuid_23_1351276797.164'
capture_lex $P5012
.const 'Sub' $P5013 = 'cuid_24_1351276797.164'
capture_lex $P5013
.const 'Sub' $P5014 = 'cuid_25_1351276797.164'
capture_lex $P5014
.const 'Sub' $P5015 = 'cuid_26_1351276797.164'
capture_lex $P5015
.const 'Sub' $P5016 = 'cuid_27_1351276797.164'
capture_lex $P5016
.const 'Sub' $P5017 = 'cuid_28_1351276797.164'
capture_lex $P5017
.const 'Sub' $P5018 = 'cuid_29_1351276797.164'
capture_lex $P5018
.const 'Sub' $P5019 = 'cuid_30_1351276797.164'
capture_lex $P5019
.const 'Sub' $P5020 = 'cuid_31_1351276797.164'
capture_lex $P5020
.const 'Sub' $P5021 = 'cuid_32_1351276797.164'
capture_lex $P5021
.const 'Sub' $P5022 = 'cuid_33_1351276797.164'
capture_lex $P5022
.return ($P5022)
.end
.HLL "nqp"
.namespace []
.sub "archetypes" :subid("cuid_15_1351276797.164") :anon :lex :outer("cuid_34_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 191
.param pmc _lex_param_0
.lex "self", _lex_param_0
find_lex $P5001, "$archetypes"
.return ($P5001)
.end
.HLL "nqp"
.namespace []
.sub "new" :subid("cuid_16_1351276797.164") :anon :lex :outer("cuid_34_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 200
.param pmc _lex_param_0
.param pmc _lex_param_1 :named("name")
.param pmc _lex_param_2 :named("instance_of")
.lex "$obj", $P101
.lex "self", _lex_param_0
.lex "$name", _lex_param_1
.lex "$instance_of", _lex_param_2
null $P5001
set $P101, $P5001
nqp_decontainerize $P5003, _lex_param_0
repr_instance_of $P5002, $P5003
set $P101, $P5002
.annotate 'line', 202
$P101."BUILD"(_lex_param_1 :named("name"), _lex_param_2 :named("instance_of"))
.return ($P101)
.end
.HLL "nqp"
.namespace []
.sub "BUILD" :subid("cuid_17_1351276797.164") :anon :lex :outer("cuid_34_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 206
.param pmc _lex_param_0
.param pmc _lex_param_1 :named("name")
.param pmc _lex_param_2 :named("instance_of")
.lex "self", _lex_param_0
.lex "$name", _lex_param_1
.lex "$instance_of", _lex_param_2
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_bind_attr_obj $P5001, $P5002, "$!name", _lex_param_1
nqp_decontainerize $P5003, _lex_param_0
nqp_get_sc_object $P5004, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_bind_attr_obj $P5003, $P5004, "$!instance_of", _lex_param_2
nqp_decontainerize $P5005, _lex_param_0
nqp_get_sc_object $P5006, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
new $P5007, 'Hash'
repr_bind_attr_obj $P5005, $P5006, "%!attributes", $P5007
nqp_decontainerize $P5008, _lex_param_0
nqp_get_sc_object $P5009, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
new $P5010, 'Hash'
repr_bind_attr_obj $P5008, $P5009, "%!methods", $P5010
nqp_decontainerize $P5011, _lex_param_0
nqp_get_sc_object $P5012, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
new $P5013, 'ResizablePMCArray'
repr_bind_attr_obj $P5011, $P5012, "@!multi_methods_to_incorporate", $P5013
nqp_decontainerize $P5014, _lex_param_0
nqp_get_sc_object $P5015, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
new $P5016, 'ResizablePMCArray'
repr_bind_attr_obj $P5014, $P5015, "@!collisions", $P5016
nqp_decontainerize $P5017, _lex_param_0
nqp_get_sc_object $P5018, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
new $P5019, 'ResizablePMCArray'
repr_bind_attr_obj $P5017, $P5018, "@!roles", $P5019
nqp_decontainerize $P5020, _lex_param_0
nqp_get_sc_object $P5021, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
new $P5022, 'ResizablePMCArray'
repr_bind_attr_obj $P5020, $P5021, "@!role_typecheck_list", $P5022
nqp_decontainerize $P5023, _lex_param_0
nqp_get_sc_object $P5024, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
box $P5025, 0
repr_bind_attr_obj $P5023, $P5024, "$!composed", $P5025
.return ($P5025)
.end
.HLL "nqp"
.namespace []
.sub "new_type" :subid("cuid_18_1351276797.164") :anon :lex :outer("cuid_34_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 220
.param pmc _lex_param_0
.param pmc _lex_param_1 :named("name") :optional
.param int haz_param_9 :opt_flag
.param pmc _lex_param_2 :named("instance_of")
if haz_param_9, default77
box $P5005, "<anon>"
set _lex_param_1, $P5005
default77:
.lex "$metarole", $P101
.lex "self", _lex_param_0
.lex "$name", _lex_param_1
.lex "$instance_of", _lex_param_2
null $P5001
set $P101, $P5001
.annotate 'line', 221
nqp_decontainerize $P5002, _lex_param_0
$P5003 = $P5002."new"(_lex_param_1 :named("name"), _lex_param_2 :named("instance_of"))
set $P101, $P5003
repr_type_object_for $P5004, $P101, "Uninstantiable"
.return ($P5004)
.end
.HLL "nqp"
.namespace []
.sub "add_method" :subid("cuid_19_1351276797.164") :anon :lex :outer("cuid_34_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 225
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2
.param pmc _lex_param_3
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.lex "$name", _lex_param_2
.lex "$code_obj", _lex_param_3
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5003, $P5001, $P5002, "%!methods"
set $S5001, _lex_param_2
exists $I5001, $P5003[$S5001]
unless $I5001 goto if28_end79
.annotate 'line', 226
set $S5003, _lex_param_2
concat $S5002, "This role already has a method named ", $S5003
box $P5004, $S5002
die $P5004
if28_end79:
nqp_decontainerize $P5005, _lex_param_0
nqp_get_sc_object $P5006, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5007, $P5005, $P5006, "%!methods"
set $S5004, _lex_param_2
set $P5007[$S5004], _lex_param_3
.return (_lex_param_3)
.end
.HLL "nqp"
.namespace []
.sub "add_multi_method" :subid("cuid_20_1351276797.164") :anon :lex :outer("cuid_34_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 232
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2
.param pmc _lex_param_3
.lex "%todo", $P101
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.lex "$name", _lex_param_2
.lex "$code_obj", _lex_param_3
new $P5001, 'Hash'
set $P101, $P5001
set $P101["name"], _lex_param_2
set $P101["code"], _lex_param_3
nqp_decontainerize $P5002, _lex_param_0
nqp_get_sc_object $P5003, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5004, $P5002, $P5003, "@!multi_methods_to_incorporate"
nqp_decontainerize $P5005, _lex_param_0
nqp_get_sc_object $P5006, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5007, $P5005, $P5006, "@!multi_methods_to_incorporate"
set $N5001, $P5007
set $I5001, $N5001
set $P5004[$I5001], $P101
.return (_lex_param_3)
.end
.HLL "nqp"
.namespace []
.sub "add_attribute" :subid("cuid_21_1351276797.164") :anon :lex :outer("cuid_34_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 240
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2
.lex "$name", $P101
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.lex "$meta_attr", _lex_param_2
null $P5001
set $P101, $P5001
.annotate 'line', 241
$P5002 = _lex_param_2."name"()
set $P101, $P5002
nqp_decontainerize $P5003, _lex_param_0
nqp_get_sc_object $P5004, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5005, $P5003, $P5004, "%!attributes"
set $S5001, $P101
exists $I5001, $P5005[$S5001]
unless $I5001 goto if29_end81
.annotate 'line', 242
set $S5003, $P101
concat $S5002, "This role already has an attribute named ", $S5003
box $P5006, $S5002
die $P5006
if29_end81:
nqp_decontainerize $P5007, _lex_param_0
nqp_get_sc_object $P5008, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5009, $P5007, $P5008, "%!attributes"
set $S5004, $P101
set $P5009[$S5004], _lex_param_2
.return (_lex_param_2)
.end
.HLL "nqp"
.namespace []
.sub "add_parent" :subid("cuid_22_1351276797.164") :anon :lex :outer("cuid_34_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 248
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.lex "$parent", _lex_param_2
box $P5001, "A role cannot inherit from a class in NQP"
die $P5001
.return ($P5001)
.end
.HLL "nqp"
.namespace []
.sub "add_role" :subid("cuid_23_1351276797.164") :anon :lex :outer("cuid_34_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 252
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.lex "$role", _lex_param_2
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5003, $P5001, $P5002, "@!roles"
nqp_decontainerize $P5004, _lex_param_0
nqp_get_sc_object $P5005, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5006, $P5004, $P5005, "@!roles"
set $N5001, $P5006
set $I5001, $N5001
set $P5003[$I5001], _lex_param_2
.return (_lex_param_2)
.end
.HLL "nqp"
.namespace []
.sub "add_collision" :subid("cuid_24_1351276797.164") :anon :lex :outer("cuid_34_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 256
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.lex "$colliding_name", _lex_param_2
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5003, $P5001, $P5002, "@!collisions"
nqp_decontainerize $P5004, _lex_param_0
nqp_get_sc_object $P5005, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5006, $P5004, $P5005, "@!collisions"
set $N5001, $P5006
set $I5001, $N5001
set $P5003[$I5001], _lex_param_2
.return (_lex_param_2)
.end
.HLL "nqp"
.namespace []
.sub "compose" :subid("cuid_25_1351276797.164") :anon :lex :outer("cuid_34_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 261
.param pmc _lex_param_0
.param pmc _lex_param_1
.const 'Sub' $P5020 = 'cuid_149_1351276797.164'
capture_lex $P5020
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5003, $P5001, $P5002, "@!roles"
unless $P5003 goto if30_end83
.annotate 'line', 264
nqp_decontainerize $P5007, _lex_param_0
nqp_get_sc_object $P5008, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5009, $P5007, $P5008, "@!roles"
set $P5004, $P5009
iter $P5006, $P5009
for_next84:
unless $P5006, for_done86
shift $P5011, $P5006
for_redo85:
.const 'Sub' $P5010 = 'cuid_149_1351276797.164'
capture_lex $P5010
$P5004 = $P5010($P5011)
goto for_next84
for_done86:
.annotate 'line', 269
nqp_get_sc_object $P5012, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 2
nqp_decontainerize $P5013, _lex_param_0
nqp_get_sc_object $P5014, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5015, $P5013, $P5014, "@!roles"
$P5016 = $P5012."apply"(_lex_param_1, $P5015)
if30_end83:
nqp_decontainerize $P5017, _lex_param_0
nqp_get_sc_object $P5018, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
box $P5019, 1
repr_bind_attr_obj $P5017, $P5018, "$!composed", $P5019
.return (_lex_param_1)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_149_1351276797.164") :anon :lex :outer("cuid_25_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 265
.param pmc _lex_param_0
.lex "$_", _lex_param_0
find_lex $P5002, "self"
nqp_decontainerize $P5001, $P5002
nqp_get_sc_object $P5003, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5004, $P5001, $P5003, "@!role_typecheck_list"
find_lex $P5006, "self"
nqp_decontainerize $P5005, $P5006
nqp_get_sc_object $P5007, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5008, $P5005, $P5007, "@!role_typecheck_list"
set $N5001, $P5008
set $I5001, $N5001
set $P5004[$I5001], _lex_param_0
find_lex $P5010, "self"
nqp_decontainerize $P5009, $P5010
nqp_get_sc_object $P5011, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5012, $P5009, $P5011, "@!role_typecheck_list"
find_lex $P5014, "self"
nqp_decontainerize $P5013, $P5014
nqp_get_sc_object $P5015, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5016, $P5013, $P5015, "@!role_typecheck_list"
set $N5002, $P5016
set $I5002, $N5002
.annotate 'line', 267
get_how $P5017, _lex_param_0
$P5018 = $P5017."instance_of"(_lex_param_0)
set $P5012[$I5002], $P5018
.return ($P5018)
.end
.HLL "nqp"
.namespace []
.sub "methods" :subid("cuid_26_1351276797.164") :anon :lex :outer("cuid_34_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 282
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2 :named("local") :optional
.param int haz_param_10 :opt_flag
.const 'Sub' $P5011 = 'cuid_150_1351276797.164'
capture_lex $P5011
if haz_param_10, default90
null $P5010
set _lex_param_2, $P5010
default90:
.lex "@meths", $P101
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.lex "$local", _lex_param_2
new $P5001, 'ResizablePMCArray'
set $P101, $P5001
nqp_decontainerize $P5005, _lex_param_0
nqp_get_sc_object $P5006, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5007, $P5005, $P5006, "%!methods"
set $P5002, $P5007
iter $P5004, $P5007
for_next87:
unless $P5004, for_done89
shift $P5009, $P5004
for_redo88:
.const 'Sub' $P5008 = 'cuid_150_1351276797.164'
capture_lex $P5008
$P5002 = $P5008($P5009)
goto for_next87
for_done89:
.return ($P101)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_150_1351276797.164") :anon :lex :outer("cuid_26_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 284
.param pmc _lex_param_0
.lex "$_", _lex_param_0
.annotate 'line', 285
find_lex $P5001, "@meths"
$P5002 = _lex_param_0."value"()
$P5003 = $P5001."push"($P5002)
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "method_table" :subid("cuid_27_1351276797.164") :anon :lex :outer("cuid_34_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 290
.param pmc _lex_param_0
.param pmc _lex_param_1
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5003, $P5001, $P5002, "%!methods"
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "collisions" :subid("cuid_28_1351276797.164") :anon :lex :outer("cuid_34_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 294
.param pmc _lex_param_0
.param pmc _lex_param_1
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5003, $P5001, $P5002, "@!collisions"
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "name" :subid("cuid_29_1351276797.164") :anon :lex :outer("cuid_34_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 298
.param pmc _lex_param_0
.param pmc _lex_param_1
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5003, $P5001, $P5002, "$!name"
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "attributes" :subid("cuid_30_1351276797.164") :anon :lex :outer("cuid_34_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 302
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2 :named("local") :optional
.param int haz_param_11 :opt_flag
.const 'Sub' $P5011 = 'cuid_151_1351276797.164'
capture_lex $P5011
if haz_param_11, default94
null $P5010
set _lex_param_2, $P5010
default94:
.lex "@attrs", $P101
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.lex "$local", _lex_param_2
new $P5001, 'ResizablePMCArray'
set $P101, $P5001
nqp_decontainerize $P5005, _lex_param_0
nqp_get_sc_object $P5006, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5007, $P5005, $P5006, "%!attributes"
set $P5002, $P5007
iter $P5004, $P5007
for_next91:
unless $P5004, for_done93
shift $P5009, $P5004
for_redo92:
.const 'Sub' $P5008 = 'cuid_151_1351276797.164'
capture_lex $P5008
$P5002 = $P5008($P5009)
goto for_next91
for_done93:
.return ($P101)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_151_1351276797.164") :anon :lex :outer("cuid_30_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 304
.param pmc _lex_param_0
.lex "$_", _lex_param_0
.annotate 'line', 305
find_lex $P5001, "@attrs"
$P5002 = _lex_param_0."value"()
$P5003 = $P5001."push"($P5002)
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "roles" :subid("cuid_31_1351276797.164") :anon :lex :outer("cuid_34_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 310
.param pmc _lex_param_0
.param pmc _lex_param_1
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5003, $P5001, $P5002, "@!roles"
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "role_typecheck_list" :subid("cuid_32_1351276797.164") :anon :lex :outer("cuid_34_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 314
.param pmc _lex_param_0
.param pmc _lex_param_1
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5003, $P5001, $P5002, "@!role_typecheck_list"
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "instance_of" :subid("cuid_33_1351276797.164") :anon :lex :outer("cuid_34_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 318
.param pmc _lex_param_0
.param pmc _lex_param_1
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
repr_get_attr_obj $P5003, $P5001, $P5002, "$!instance_of"
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_36_1351276797.164") :anon :lex :outer("cuid_1_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 324
.const 'Sub' $P5004 = 'cuid_152_1351276797.164'
capture_lex $P5004
.const 'Sub' $P5004 = 'cuid_154_1351276797.164'
capture_lex $P5004
.const 'Sub' $P5004 = 'cuid_35_1351276797.164'
capture_lex $P5004
.lex "&has_method", $P101
.lex "&has_attribute", $P102
.lex "$?PACKAGE", $P103
.lex "$?CLASS", $P104
.const 'Sub' $P5001 = 'cuid_152_1351276797.164'
capture_lex $P5001
set $P101, $P5001
.const 'Sub' $P5002 = 'cuid_154_1351276797.164'
capture_lex $P5002
set $P102, $P5002
.const 'Sub' $P5003 = 'cuid_35_1351276797.164'
capture_lex $P5003
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "has_method" :subid("cuid_152_1351276797.164") :anon :lex :outer("cuid_36_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 326
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2
.lex "%mt", $P101
.lex "$target", _lex_param_0
.lex "$name", _lex_param_1
.lex "$local", _lex_param_2
new $P5001, 'Hash'
set $P101, $P5001
.annotate 'line', 327
get_how $P5002, _lex_param_0
$P5003 = $P5002."method_table"(_lex_param_0)
set $P101, $P5003
set $S5001, _lex_param_1
exists $I5001, $P101[$S5001]
.return ($I5001)
.end
.HLL "nqp"
.namespace []
.sub "has_attribute" :subid("cuid_154_1351276797.164") :anon :lex :outer("cuid_36_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 331
.param pmc _lex_param_0
.param pmc _lex_param_1
.const 'Sub' $P5011 = 'cuid_153_1351276797.164'
capture_lex $P5011
.lex "@attributes", $P101
.lex "$target", _lex_param_0
.lex "$name", _lex_param_1
new $P5001, 'ResizablePMCArray'
set $P101, $P5001
root_new $P102, ['parrot';'Continuation']
set_label $P102, lexotic_95
.lex "RETURN", $P102
.annotate 'line', 332
get_how $P5002, _lex_param_0
$P5003 = $P5002."attributes"(_lex_param_0, 1 :named("local"))
set $P101, $P5003
set $P5004, $P101
iter $P5006, $P101
for_next99:
unless $P5006, for_done101
shift $P5008, $P5006
for_redo100:
.const 'Sub' $P5007 = 'cuid_153_1351276797.164'
capture_lex $P5007
$P5004 = $P5007($P5008)
goto for_next99
for_done101:
find_lex $P5009, "RETURN"
$P5010 = $P5009(0)
goto lexotic_96
lexotic_95:
.get_results ($P5010)
lexotic_96:
.return ($P5010)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_153_1351276797.164") :anon :lex :outer("cuid_154_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 333
.param pmc _lex_param_0
.lex "$_", _lex_param_0
.annotate 'line', 334
$P5001 = _lex_param_0."name"()
set $S5001, $P5001
find_lex $P5002, "$name"
set $S5002, $P5002
iseq $I5001, $S5001, $S5002
box $P5006, $I5001
set $P5005, $P5006
unless $I5001 goto if31_end98
find_lex $P5003, "RETURN"
$P5004 = $P5003(1)
set $P5005, $P5004
if31_end98:
.return ($P5005)
.end
.HLL "nqp"
.namespace []
.sub "apply" :subid("cuid_35_1351276797.164") :anon :lex :outer("cuid_36_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 339
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2
.const 'Sub' $P5044 = 'cuid_155_1351276797.164'
capture_lex $P5044
.const 'Sub' $P5044 = 'cuid_156_1351276797.164'
capture_lex $P5044
.const 'Sub' $P5044 = 'cuid_157_1351276797.164'
capture_lex $P5044
.const 'Sub' $P5044 = 'cuid_158_1351276797.164'
capture_lex $P5044
.lex "$to_compose", $P101
.lex "$to_compose_meta", $P102
.lex "@collisions", $P103
.lex "@methods", $P104
.lex "@attributes", $P105
.lex "@done", $P106
.lex "self", _lex_param_0
.lex "$target", _lex_param_1
.lex "@roles", _lex_param_2
null $P5001
set $P101, $P5001
null $P5002
set $P102, $P5002
new $P5003, 'ResizablePMCArray'
set $P103, $P5003
new $P5004, 'ResizablePMCArray'
set $P104, $P5004
new $P5005, 'ResizablePMCArray'
set $P105, $P5005
new $P5006, 'ResizablePMCArray'
set $P106, $P5006
set $N5001, _lex_param_2
set $N5002, 1
iseq $I5001, $N5001, $N5002
unless $I5001 goto if32_else102
.annotate 'line', 344
set $P5007, _lex_param_2[0]
unless_null $P5007, fallback104
null $P5008
set $P5007, $P5008
fallback104:
set $P101, $P5007
get_how $P5009, $P101
set $P102, $P5009
goto if32_end103
if32_else102:
.annotate 'line', 348
.annotate 'line', 349
nqp_get_sc_object $P5010, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
find_lex $P5013, "$?PACKAGE"
get_who $P5012, $P5013
set $P5011, $P5012["NQPMu"]
unless_null $P5011, fallback105
nqp_get_sc_object $P5016, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 0
get_who $P5015, $P5016
set $P5014, $P5015["NQPMu"]
unless_null $P5014, vivi_33106
null $P5017
set $P5014, $P5017
vivi_33106:
set $P5011, $P5014
fallback105:
$P5018 = $P5010."new_type"($P5011 :named("instance_of"))
set $P101, $P5018
get_how $P5019, $P101
set $P102, $P5019
set $P5020, _lex_param_2
iter $P5022, _lex_param_2
for_next107:
unless $P5022, for_done109
shift $P5024, $P5022
for_redo108:
.const 'Sub' $P5023 = 'cuid_155_1351276797.164'
capture_lex $P5023
$P5020 = $P5023($P5024)
goto for_next107
for_done109:
.annotate 'line', 354
$P5025 = $P102."compose"($P101)
set $P101, $P5025
if32_end103:
.annotate 'line', 358
$P5026 = $P102."collisions"($P101)
set $P103, $P5026
set $P5027, $P103
iter $P5029, $P103
for_next112:
unless $P5029, for_done114
shift $P5031, $P5029
for_redo113:
.const 'Sub' $P5030 = 'cuid_156_1351276797.164'
capture_lex $P5030
$P5027 = $P5030($P5031)
goto for_next112
for_done114:
.annotate 'line', 367
$P5032 = $P102."methods"($P101)
set $P104, $P5032
set $P5033, $P104
iter $P5035, $P104
for_next117:
unless $P5035, for_done119
shift $P5037, $P5035
for_redo118:
.const 'Sub' $P5036 = 'cuid_157_1351276797.164'
capture_lex $P5036
$P5033 = $P5036($P5037)
goto for_next117
for_done119:
.annotate 'line', 375
$P5038 = $P102."attributes"($P101)
set $P105, $P5038
set $P5039, $P105
iter $P5041, $P105
for_next122:
unless $P5041, for_done124
shift $P5043, $P5041
for_redo123:
.const 'Sub' $P5042 = 'cuid_158_1351276797.164'
capture_lex $P5042
$P5039 = $P5042($P5043)
goto for_next122
for_done124:
set $P106[0], $P101
.return ($P101)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_155_1351276797.164") :anon :lex :outer("cuid_35_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 351
.param pmc _lex_param_0
.lex "$_", _lex_param_0
.annotate 'line', 352
find_lex $P5001, "$to_compose_meta"
find_lex $P5002, "$to_compose"
$P5003 = $P5001."add_role"($P5002, _lex_param_0)
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_156_1351276797.164") :anon :lex :outer("cuid_35_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 359
.param pmc _lex_param_0
.lex "$_", _lex_param_0
.annotate 'line', 360
find_lex $P5001, "$target"
set $S5001, _lex_param_0
$P5002 = "&has_method"($P5001, $S5001, 1)
set $P5008, $P5002
if $P5002 goto unless34_end111
set $S5006, _lex_param_0
concat $S5005, "Method '", $S5006
concat $S5004, $S5005, "' collides and a resolution must be provided by the class '"
.annotate 'line', 362
find_lex $P5004, "$target"
get_how $P5003, $P5004
find_lex $P5005, "$target"
$P5006 = $P5003."name"($P5005)
set $S5007, $P5006
concat $S5003, $S5004, $S5007
concat $S5002, $S5003, "'"
box $P5007, $S5002
die $P5007
set $P5008, $P5007
unless34_end111:
.return ($P5008)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_157_1351276797.164") :anon :lex :outer("cuid_35_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 368
.param pmc _lex_param_0
.lex "$_", _lex_param_0
.annotate 'line', 369
find_lex $P5001, "$target"
set $S5001, _lex_param_0
$P5002 = "&has_method"($P5001, $S5001, 0)
set $P5007, $P5002
if $P5002 goto unless35_end116
.annotate 'line', 370
find_lex $P5004, "$target"
get_how $P5003, $P5004
find_lex $P5005, "$target"
set $S5002, _lex_param_0
$P5006 = $P5003."add_method"($P5005, $S5002, _lex_param_0)
set $P5007, $P5006
unless35_end116:
.return ($P5007)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_158_1351276797.164") :anon :lex :outer("cuid_35_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 376
.param pmc _lex_param_0
.lex "$_", _lex_param_0
.annotate 'line', 377
find_lex $P5001, "$target"
$P5002 = _lex_param_0."name"()
$P5003 = "&has_attribute"($P5001, $P5002)
unless $P5003 goto if36_end121
.annotate 'line', 378
$P5004 = _lex_param_0."name"()
set $S5005, $P5004
concat $S5004, "Attribute '", $S5005
concat $S5003, $S5004, "' already exists in the class '"
.annotate 'line', 379
find_lex $P5006, "$target"
get_how $P5005, $P5006
find_lex $P5007, "$target"
$P5008 = $P5005."name"($P5007)
set $S5006, $P5008
concat $S5002, $S5003, $S5006
concat $S5001, $S5002, "', but a role also wishes to compose it"
box $P5009, $S5001
die $P5009
if36_end121:
.annotate 'line', 381
find_lex $P5011, "$target"
get_how $P5010, $P5011
find_lex $P5012, "$target"
$P5013 = $P5010."add_attribute"($P5012, _lex_param_0)
.return ($P5013)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_44_1351276797.164") :anon :lex :outer("cuid_1_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 393
.const 'Sub' $P5011 = 'cuid_37_1351276797.164'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_38_1351276797.164'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_39_1351276797.164'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_40_1351276797.164'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_41_1351276797.164'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_42_1351276797.164'
capture_lex $P5011
.const 'Sub' $P5011 = 'cuid_43_1351276797.164'
capture_lex $P5011
.lex "$archetypes", $P101
.lex "$?PACKAGE", $P102
.lex "$?CLASS", $P103
null $P5001
set $P101, $P5001
.annotate 'line', 397
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 1
$P5003 = $P5002."new"(1 :named("nominal"), 1 :named("composable"), 1 :named("parametric"))
set $P101, $P5003
.const 'Sub' $P5004 = 'cuid_37_1351276797.164'
capture_lex $P5004
.const 'Sub' $P5005 = 'cuid_38_1351276797.164'
capture_lex $P5005
.const 'Sub' $P5006 = 'cuid_39_1351276797.164'
capture_lex $P5006
.const 'Sub' $P5007 = 'cuid_40_1351276797.164'
capture_lex $P5007
.const 'Sub' $P5008 = 'cuid_41_1351276797.164'
capture_lex $P5008
.const 'Sub' $P5009 = 'cuid_42_1351276797.164'
capture_lex $P5009
.const 'Sub' $P5010 = 'cuid_43_1351276797.164'
capture_lex $P5010
.return ($P5010)
.end
.HLL "nqp"
.namespace []
.sub "archetypes" :subid("cuid_37_1351276797.164") :anon :lex :outer("cuid_44_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 398
.param pmc _lex_param_0
.lex "self", _lex_param_0
find_lex $P5001, "$archetypes"
.return ($P5001)
.end
.HLL "nqp"
.namespace []
.sub "new" :subid("cuid_38_1351276797.164") :anon :lex :outer("cuid_44_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 402
.param pmc _lex_param_0
.param pmc _lex_param_1 :named("curried_role")
.param pmc _lex_param_2 :named("pos_args")
.lex "$obj", $P101
.lex "self", _lex_param_0
.lex "$curried_role", _lex_param_1
.lex "@pos_args", _lex_param_2
null $P5001
set $P101, $P5001
nqp_decontainerize $P5003, _lex_param_0
repr_instance_of $P5002, $P5003
set $P101, $P5002
.annotate 'line', 404
$P101."BUILD"(_lex_param_1 :named("curried_role"), _lex_param_2 :named("pos_args"))
.return ($P101)
.end
.HLL "nqp"
.namespace []
.sub "BUILD" :subid("cuid_39_1351276797.164") :anon :lex :outer("cuid_44_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 408
.param pmc _lex_param_0
.param pmc _lex_param_1 :named("curried_role")
.param pmc _lex_param_2 :named("pos_args")
.lex "self", _lex_param_0
.lex "$curried_role", _lex_param_1
.lex "@pos_args", _lex_param_2
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 5
repr_bind_attr_obj $P5001, $P5002, "$!curried_role", _lex_param_1
nqp_decontainerize $P5003, _lex_param_0
nqp_get_sc_object $P5004, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 5
repr_bind_attr_obj $P5003, $P5004, "@!pos_args", _lex_param_2
.return (_lex_param_2)
.end
.HLL "nqp"
.namespace []
.sub "new_type" :subid("cuid_40_1351276797.164") :anon :lex :outer("cuid_44_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 413
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2 :slurpy
.lex "$meta", $P101
.lex "self", _lex_param_0
.lex "$curried_role", _lex_param_1
.lex "@pos_args", _lex_param_2
null $P5001
set $P101, $P5001
.annotate 'line', 414
nqp_decontainerize $P5002, _lex_param_0
$P5003 = $P5002."new"(_lex_param_1 :named("curried_role"), _lex_param_2 :named("pos_args"))
set $P101, $P5003
set $S5001, "Uninstantiable"
repr_type_object_for $P5004, $P101, $S5001
.return ($P5004)
.end
.HLL "nqp"
.namespace []
.sub "specialize" :subid("cuid_41_1351276797.164") :anon :lex :outer("cuid_44_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 418
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.lex "$class_arg", _lex_param_2
.annotate 'line', 419
nqp_decontainerize $P5002, _lex_param_0
nqp_get_sc_object $P5003, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 5
repr_get_attr_obj $P5004, $P5002, $P5003, "$!curried_role"
get_how $P5001, $P5004
nqp_decontainerize $P5005, _lex_param_0
nqp_get_sc_object $P5006, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 5
repr_get_attr_obj $P5007, $P5005, $P5006, "$!curried_role"
nqp_decontainerize $P5008, _lex_param_0
nqp_get_sc_object $P5009, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 5
repr_get_attr_obj $P5010, $P5008, $P5009, "@!pos_args"
$P5011 = $P5001."specialize"($P5007, _lex_param_2, $P5010 :flat)
.return ($P5011)
.end
.HLL "nqp"
.namespace []
.sub "name" :subid("cuid_42_1351276797.164") :anon :lex :outer("cuid_44_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 422
.param pmc _lex_param_0
.param pmc _lex_param_1
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.annotate 'line', 423
nqp_decontainerize $P5002, _lex_param_0
nqp_get_sc_object $P5003, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 5
repr_get_attr_obj $P5004, $P5002, $P5003, "$!curried_role"
get_how $P5001, $P5004
nqp_decontainerize $P5005, _lex_param_0
nqp_get_sc_object $P5006, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 5
repr_get_attr_obj $P5007, $P5005, $P5006, "$!curried_role"
$P5008 = $P5001."name"($P5007)
.return ($P5008)
.end
.HLL "nqp"
.namespace []
.sub "curried_role" :subid("cuid_43_1351276797.164") :anon :lex :outer("cuid_44_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 426
.param pmc _lex_param_0
.param pmc _lex_param_1
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 5
repr_get_attr_obj $P5003, $P5001, $P5002, "$!curried_role"
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_64_1351276797.164") :anon :lex :outer("cuid_1_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 436
.const 'Sub' $P5023 = 'cuid_45_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_46_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_47_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_48_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_49_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_50_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_51_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_52_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_53_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_54_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_55_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_56_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_57_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_58_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_59_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_60_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_61_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_62_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5023 = 'cuid_63_1351276797.164'
capture_lex $P5023
.lex "$archetypes", $P101
.lex "$?PACKAGE", $P102
.lex "$?CLASS", $P103
null $P5001
set $P101, $P5001
.annotate 'line', 460
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 1
$P5003 = $P5002."new"(1 :named("nominal"), 1 :named("composable"), 1 :named("parametric"))
set $P101, $P5003
.const 'Sub' $P5004 = 'cuid_45_1351276797.164'
capture_lex $P5004
.const 'Sub' $P5005 = 'cuid_46_1351276797.164'
capture_lex $P5005
.const 'Sub' $P5006 = 'cuid_47_1351276797.164'
capture_lex $P5006
.const 'Sub' $P5007 = 'cuid_48_1351276797.164'
capture_lex $P5007
.const 'Sub' $P5008 = 'cuid_49_1351276797.164'
capture_lex $P5008
.const 'Sub' $P5009 = 'cuid_50_1351276797.164'
capture_lex $P5009
.const 'Sub' $P5010 = 'cuid_51_1351276797.164'
capture_lex $P5010
.const 'Sub' $P5011 = 'cuid_52_1351276797.164'
capture_lex $P5011
.const 'Sub' $P5012 = 'cuid_53_1351276797.164'
capture_lex $P5012
.const 'Sub' $P5013 = 'cuid_54_1351276797.164'
capture_lex $P5013
.const 'Sub' $P5014 = 'cuid_55_1351276797.164'
capture_lex $P5014
.const 'Sub' $P5015 = 'cuid_56_1351276797.164'
capture_lex $P5015
.const 'Sub' $P5016 = 'cuid_57_1351276797.164'
capture_lex $P5016
.const 'Sub' $P5017 = 'cuid_58_1351276797.164'
capture_lex $P5017
.const 'Sub' $P5018 = 'cuid_59_1351276797.164'
capture_lex $P5018
.const 'Sub' $P5019 = 'cuid_60_1351276797.164'
capture_lex $P5019
.const 'Sub' $P5020 = 'cuid_61_1351276797.164'
capture_lex $P5020
.const 'Sub' $P5021 = 'cuid_62_1351276797.164'
capture_lex $P5021
.const 'Sub' $P5022 = 'cuid_63_1351276797.164'
capture_lex $P5022
.return ($P5022)
.end
.HLL "nqp"
.namespace []
.sub "archetypes" :subid("cuid_45_1351276797.164") :anon :lex :outer("cuid_64_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 461
.param pmc _lex_param_0
.lex "self", _lex_param_0
find_lex $P5001, "$archetypes"
.return ($P5001)
.end
.HLL "nqp"
.namespace []
.sub "new" :subid("cuid_46_1351276797.164") :anon :lex :outer("cuid_64_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 470
.param pmc _lex_param_0
.param pmc _lex_param_1 :named("name")
.lex "$obj", $P101
.lex "self", _lex_param_0
.lex "$name", _lex_param_1
null $P5001
set $P101, $P5001
nqp_decontainerize $P5003, _lex_param_0
repr_instance_of $P5002, $P5003
set $P101, $P5002
.annotate 'line', 472
$P101."BUILD"(_lex_param_1 :named("name"))
.return ($P101)
.end
.HLL "nqp"
.namespace []
.sub "BUILD" :subid("cuid_47_1351276797.164") :anon :lex :outer("cuid_64_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 476
.param pmc _lex_param_0
.param pmc _lex_param_1 :named("name")
.lex "self", _lex_param_0
.lex "$name", _lex_param_1
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_bind_attr_obj $P5001, $P5002, "$!name", _lex_param_1
nqp_decontainerize $P5003, _lex_param_0
nqp_get_sc_object $P5004, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
new $P5005, 'Hash'
repr_bind_attr_obj $P5003, $P5004, "%!attributes", $P5005
nqp_decontainerize $P5006, _lex_param_0
nqp_get_sc_object $P5007, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
new $P5008, 'Hash'
repr_bind_attr_obj $P5006, $P5007, "%!methods", $P5008
nqp_decontainerize $P5009, _lex_param_0
nqp_get_sc_object $P5010, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
new $P5011, 'ResizablePMCArray'
repr_bind_attr_obj $P5009, $P5010, "@!multi_methods_to_incorporate", $P5011
nqp_decontainerize $P5012, _lex_param_0
nqp_get_sc_object $P5013, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
new $P5014, 'ResizablePMCArray'
repr_bind_attr_obj $P5012, $P5013, "@!roles", $P5014
nqp_decontainerize $P5015, _lex_param_0
nqp_get_sc_object $P5016, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
box $P5017, 0
repr_bind_attr_obj $P5015, $P5016, "$!composed", $P5017
.return ($P5017)
.end
.HLL "nqp"
.namespace []
.sub "new_type" :subid("cuid_48_1351276797.164") :anon :lex :outer("cuid_64_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 487
.param pmc _lex_param_0
.param pmc _lex_param_1 :named("name") :optional
.param int haz_param_12 :opt_flag
if haz_param_12, default125
box $P5006, "<anon>"
set _lex_param_1, $P5006
default125:
.lex "$metarole", $P101
.lex "self", _lex_param_0
.lex "$name", _lex_param_1
null $P5001
set $P101, $P5001
.annotate 'line', 488
nqp_decontainerize $P5002, _lex_param_0
$P5003 = $P5002."new"(_lex_param_1 :named("name"))
set $P101, $P5003
repr_type_object_for $P5004, $P101, "Uninstantiable"
new $P5005, 'Hash'
set_who $P5004, $P5005
.return ($P5004)
.end
.HLL "nqp"
.namespace []
.sub "set_body_block" :subid("cuid_49_1351276797.164") :anon :lex :outer("cuid_64_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 492
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.lex "$body_block", _lex_param_2
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_bind_attr_obj $P5001, $P5002, "$!body_block", _lex_param_2
.return (_lex_param_2)
.end
.HLL "nqp"
.namespace []
.sub "add_method" :subid("cuid_50_1351276797.164") :anon :lex :outer("cuid_64_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 496
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2
.param pmc _lex_param_3
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.lex "$name", _lex_param_2
.lex "$code_obj", _lex_param_3
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_get_attr_obj $P5003, $P5001, $P5002, "%!methods"
set $S5001, _lex_param_2
exists $I5001, $P5003[$S5001]
unless $I5001 goto if37_end127
.annotate 'line', 497
set $S5003, _lex_param_2
concat $S5002, "This role already has a method named ", $S5003
box $P5004, $S5002
die $P5004
if37_end127:
nqp_decontainerize $P5005, _lex_param_0
nqp_get_sc_object $P5006, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_get_attr_obj $P5007, $P5005, $P5006, "%!methods"
set $S5004, _lex_param_2
set $P5007[$S5004], _lex_param_3
.return (_lex_param_3)
.end
.HLL "nqp"
.namespace []
.sub "add_multi_method" :subid("cuid_51_1351276797.164") :anon :lex :outer("cuid_64_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 503
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2
.param pmc _lex_param_3
.lex "%todo", $P101
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.lex "$name", _lex_param_2
.lex "$code_obj", _lex_param_3
new $P5001, 'Hash'
set $P101, $P5001
set $P101["name"], _lex_param_2
set $P101["code"], _lex_param_3
nqp_decontainerize $P5002, _lex_param_0
nqp_get_sc_object $P5003, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_get_attr_obj $P5004, $P5002, $P5003, "@!multi_methods_to_incorporate"
nqp_decontainerize $P5005, _lex_param_0
nqp_get_sc_object $P5006, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_get_attr_obj $P5007, $P5005, $P5006, "@!multi_methods_to_incorporate"
set $N5001, $P5007
set $I5001, $N5001
set $P5004[$I5001], $P101
.return (_lex_param_3)
.end
.HLL "nqp"
.namespace []
.sub "add_attribute" :subid("cuid_52_1351276797.164") :anon :lex :outer("cuid_64_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 511
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2
.lex "$name", $P101
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.lex "$meta_attr", _lex_param_2
null $P5001
set $P101, $P5001
.annotate 'line', 512
$P5002 = _lex_param_2."name"()
set $P101, $P5002
nqp_decontainerize $P5003, _lex_param_0
nqp_get_sc_object $P5004, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_get_attr_obj $P5005, $P5003, $P5004, "%!attributes"
set $S5001, $P101
exists $I5001, $P5005[$S5001]
unless $I5001 goto if38_end129
.annotate 'line', 513
set $S5003, $P101
concat $S5002, "This role already has an attribute named ", $S5003
box $P5006, $S5002
die $P5006
if38_end129:
nqp_decontainerize $P5007, _lex_param_0
nqp_get_sc_object $P5008, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_get_attr_obj $P5009, $P5007, $P5008, "%!attributes"
set $S5004, $P101
set $P5009[$S5004], _lex_param_2
.return (_lex_param_2)
.end
.HLL "nqp"
.namespace []
.sub "add_parent" :subid("cuid_53_1351276797.164") :anon :lex :outer("cuid_64_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 519
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.lex "$parent", _lex_param_2
box $P5001, "A role cannot inherit from a class"
die $P5001
.return ($P5001)
.end
.HLL "nqp"
.namespace []
.sub "add_role" :subid("cuid_54_1351276797.164") :anon :lex :outer("cuid_64_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 523
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.lex "$role", _lex_param_2
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_get_attr_obj $P5003, $P5001, $P5002, "@!roles"
nqp_decontainerize $P5004, _lex_param_0
nqp_get_sc_object $P5005, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_get_attr_obj $P5006, $P5004, $P5005, "@!roles"
set $N5001, $P5006
set $I5001, $N5001
set $P5003[$I5001], _lex_param_2
.return (_lex_param_2)
.end
.HLL "nqp"
.namespace []
.sub "compose" :subid("cuid_55_1351276797.164") :anon :lex :outer("cuid_64_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 528
.param pmc _lex_param_0
.param pmc _lex_param_1
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
box $P5003, 1
repr_bind_attr_obj $P5001, $P5002, "$!composed", $P5003
.return (_lex_param_1)
.end
.HLL "nqp"
.namespace []
.sub "parametric" :subid("cuid_56_1351276797.164") :anon :lex :outer("cuid_64_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 539
.param pmc _lex_param_0
.param pmc _lex_param_1
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.return (1)
.end
.HLL "nqp"
.namespace []
.sub "curry" :subid("cuid_57_1351276797.164") :anon :lex :outer("cuid_64_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 544
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2 :slurpy
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.lex "@args", _lex_param_2
.annotate 'line', 545
nqp_get_sc_object $P5001, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 5
$P5002 = $P5001."new_type"(_lex_param_1, _lex_param_2 :flat)
.return ($P5002)
.end
.HLL "nqp"
.namespace []
.sub "specialize" :subid("cuid_58_1351276797.164") :anon :lex :outer("cuid_64_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 550
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2
.param pmc _lex_param_3 :slurpy
.const 'Sub' $P5047 = 'cuid_159_1351276797.164'
capture_lex $P5047
.const 'Sub' $P5047 = 'cuid_160_1351276797.164'
capture_lex $P5047
.const 'Sub' $P5047 = 'cuid_161_1351276797.164'
capture_lex $P5047
.const 'Sub' $P5047 = 'cuid_162_1351276797.164'
capture_lex $P5047
.lex "$pad", $P101
.lex "$irole", $P102
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.lex "$class_arg", _lex_param_2
.lex "@args", _lex_param_3
null $P5001
set $P101, $P5001
null $P5002
set $P102, $P5002
root_new $P103, ['parrot';'Continuation']
set_label $P103, lexotic_130
.lex "RETURN", $P103
.annotate 'line', 553
nqp_decontainerize $P5003, _lex_param_0
nqp_get_sc_object $P5004, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_get_attr_obj $P5005, $P5003, $P5004, "$!body_block"
$P5006 = $P5005(_lex_param_2, _lex_param_3 :flat)
set $P101, $P5006
.annotate 'line', 556
nqp_get_sc_object $P5007, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 3
nqp_decontainerize $P5008, _lex_param_0
nqp_get_sc_object $P5009, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_get_attr_obj $P5010, $P5008, $P5009, "$!name"
$P5011 = $P5007."new_type"($P5010 :named("name"), _lex_param_1 :named("instance_of"))
set $P102, $P5011
nqp_decontainerize $P5015, _lex_param_0
nqp_get_sc_object $P5016, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_get_attr_obj $P5017, $P5015, $P5016, "%!attributes"
set $P5012, $P5017
iter $P5014, $P5017
for_next132:
unless $P5014, for_done134
shift $P5019, $P5014
for_redo133:
.const 'Sub' $P5018 = 'cuid_159_1351276797.164'
capture_lex $P5018
$P5012 = $P5018($P5019)
goto for_next132
for_done134:
nqp_decontainerize $P5023, _lex_param_0
nqp_get_sc_object $P5024, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_get_attr_obj $P5025, $P5023, $P5024, "%!methods"
set $P5020, $P5025
iter $P5022, $P5025
for_next139:
unless $P5022, for_done141
shift $P5027, $P5022
for_redo140:
.const 'Sub' $P5026 = 'cuid_160_1351276797.164'
capture_lex $P5026
$P5020 = $P5026($P5027)
goto for_next139
for_done141:
nqp_decontainerize $P5031, _lex_param_0
nqp_get_sc_object $P5032, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_get_attr_obj $P5033, $P5031, $P5032, "@!multi_methods_to_incorporate"
set $P5028, $P5033
iter $P5030, $P5033
for_next144:
unless $P5030, for_done146
shift $P5035, $P5030
for_redo145:
.const 'Sub' $P5034 = 'cuid_161_1351276797.164'
capture_lex $P5034
$P5028 = $P5034($P5035)
goto for_next144
for_done146:
nqp_decontainerize $P5039, _lex_param_0
nqp_get_sc_object $P5040, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_get_attr_obj $P5041, $P5039, $P5040, "@!roles"
set $P5036, $P5041
iter $P5038, $P5041
for_next147:
unless $P5038, for_done149
shift $P5043, $P5038
for_redo148:
.const 'Sub' $P5042 = 'cuid_162_1351276797.164'
capture_lex $P5042
$P5036 = $P5042($P5043)
goto for_next147
for_done149:
.annotate 'line', 587
get_how $P5044, $P102
$P5044."compose"($P102)
find_lex $P5045, "RETURN"
$P5046 = $P5045($P102)
goto lexotic_131
lexotic_130:
.get_results ($P5046)
lexotic_131:
.return ($P5046)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_159_1351276797.164") :anon :lex :outer("cuid_58_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 560
.param pmc _lex_param_0
.lex "$_", _lex_param_0
.annotate 'line', 561
find_lex $P5002, "$irole"
get_how $P5001, $P5002
find_lex $P5003, "$irole"
$P5004 = _lex_param_0."value"()
$P5005 = $P5001."add_attribute"($P5003, $P5004)
.return ($P5005)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_160_1351276797.164") :anon :lex :outer("cuid_58_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 565
.param pmc _lex_param_0
.lex "$name", $P101
.lex "$meth", $P102
.lex "$_", _lex_param_0
null $P5001
set $P101, $P5001
null $P5002
set $P102, $P5002
.annotate 'line', 566
$P5003 = _lex_param_0."key"()
set $P101, $P5003
.annotate 'line', 567
$P5004 = _lex_param_0."value"()
can $I5001, $P5004, "instantiate_generic"
unless $I5001 goto if39_else135
.annotate 'line', 568
$P5005 = _lex_param_0."value"()
find_lex $P5006, "$pad"
$P5007 = $P5005."instantiate_generic"($P5006)
set $P5010, $P5007
goto if39_end136
if39_else135:
.annotate 'line', 569
$P5008 = _lex_param_0."value"()
$P5009 = $P5008."clone"()
set $P5010, $P5009
if39_end136:
set $P102, $P5010
set $S5002, $P101
substr $S5001, $S5002, 0, 12
iseq $I5002, $S5001, "!!LATENAME!!"
unless $I5002 goto if40_end138
.annotate 'line', 570
find_lex $P5012, "$pad"
set $S5004, $P101
substr $S5003, $S5004, 12
set $P5011, $P5012[$S5003]
set $P101, $P5011
.annotate 'line', 572
$P5013 = $P102."!set_name"($P101)
if40_end138:
.annotate 'line', 574
find_lex $P5015, "$irole"
get_how $P5014, $P5015
find_lex $P5016, "$irole"
$P5017 = $P5014."add_method"($P5016, $P101, $P102)
.return ($P5017)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_161_1351276797.164") :anon :lex :outer("cuid_58_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 576
.param pmc _lex_param_0
.lex "$_", _lex_param_0
.annotate 'line', 577
find_lex $P5002, "$irole"
get_how $P5001, $P5002
find_lex $P5003, "$irole"
set $P5004, _lex_param_0["name"]
unless_null $P5004, fallback142
null $P5005
set $P5004, $P5005
fallback142:
set $P5006, _lex_param_0["code"]
unless_null $P5006, fallback143
null $P5007
set $P5006, $P5007
fallback143:
$P5008 = "&reify_method"($P5006)
$P5009 = $P5001."add_multi_method"($P5003, $P5004, $P5008)
.return ($P5009)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_162_1351276797.164") :anon :lex :outer("cuid_58_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 581
.param pmc _lex_param_0
.lex "$specialized", $P101
.lex "$_", _lex_param_0
null $P5001
set $P101, $P5001
.annotate 'line', 582
find_lex $P5003, "$irole"
get_how $P5002, $P5003
find_lex $P5004, "$irole"
find_lex $P5005, "$class_arg"
$P5006 = $P5002."specialize"($P5004, $P5005)
set $P101, $P5006
.annotate 'line', 583
find_lex $P5008, "$irole"
get_how $P5007, $P5008
find_lex $P5009, "$irole"
$P5010 = $P5007."add_role"($P5009, $P101)
.return ($P5010)
.end
.HLL "nqp"
.namespace []
.sub "methods" :subid("cuid_59_1351276797.164") :anon :lex :outer("cuid_64_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 595
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2 :named("local") :optional
.param int haz_param_13 :opt_flag
.const 'Sub' $P5011 = 'cuid_163_1351276797.164'
capture_lex $P5011
if haz_param_13, default153
null $P5010
set _lex_param_2, $P5010
default153:
.lex "@meths", $P101
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.lex "$local", _lex_param_2
new $P5001, 'ResizablePMCArray'
set $P101, $P5001
nqp_decontainerize $P5005, _lex_param_0
nqp_get_sc_object $P5006, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_get_attr_obj $P5007, $P5005, $P5006, "%!methods"
set $P5002, $P5007
iter $P5004, $P5007
for_next150:
unless $P5004, for_done152
shift $P5009, $P5004
for_redo151:
.const 'Sub' $P5008 = 'cuid_163_1351276797.164'
capture_lex $P5008
$P5002 = $P5008($P5009)
goto for_next150
for_done152:
.return ($P101)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_163_1351276797.164") :anon :lex :outer("cuid_59_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 597
.param pmc _lex_param_0
.lex "$_", _lex_param_0
.annotate 'line', 598
find_lex $P5001, "@meths"
$P5002 = _lex_param_0."value"()
$P5003 = $P5001."push"($P5002)
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "method_table" :subid("cuid_60_1351276797.164") :anon :lex :outer("cuid_64_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 603
.param pmc _lex_param_0
.param pmc _lex_param_1
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_get_attr_obj $P5003, $P5001, $P5002, "%!methods"
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "name" :subid("cuid_61_1351276797.164") :anon :lex :outer("cuid_64_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 607
.param pmc _lex_param_0
.param pmc _lex_param_1
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_get_attr_obj $P5003, $P5001, $P5002, "$!name"
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "attributes" :subid("cuid_62_1351276797.164") :anon :lex :outer("cuid_64_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 611
.param pmc _lex_param_0
.param pmc _lex_param_1
.param pmc _lex_param_2 :named("local") :optional
.param int haz_param_14 :opt_flag
.const 'Sub' $P5011 = 'cuid_164_1351276797.164'
capture_lex $P5011
if haz_param_14, default157
null $P5010
set _lex_param_2, $P5010
default157:
.lex "@attrs", $P101
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
.lex "$local", _lex_param_2
new $P5001, 'ResizablePMCArray'
set $P101, $P5001
nqp_decontainerize $P5005, _lex_param_0
nqp_get_sc_object $P5006, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_get_attr_obj $P5007, $P5005, $P5006, "%!attributes"
set $P5002, $P5007
iter $P5004, $P5007
for_next154:
unless $P5004, for_done156
shift $P5009, $P5004
for_redo155:
.const 'Sub' $P5008 = 'cuid_164_1351276797.164'
capture_lex $P5008
$P5002 = $P5008($P5009)
goto for_next154
for_done156:
.return ($P101)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_164_1351276797.164") :anon :lex :outer("cuid_62_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 613
.param pmc _lex_param_0
.lex "$_", _lex_param_0
.annotate 'line', 614
find_lex $P5001, "@attrs"
$P5002 = _lex_param_0."value"()
$P5003 = $P5001."push"($P5002)
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "roles" :subid("cuid_63_1351276797.164") :anon :lex :outer("cuid_64_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 619
.param pmc _lex_param_0
.param pmc _lex_param_1
.lex "self", _lex_param_0
.lex "$obj", _lex_param_1
nqp_decontainerize $P5001, _lex_param_0
nqp_get_sc_object $P5002, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 6
repr_get_attr_obj $P5003, $P5001, $P5002, "@!roles"
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_107_1351276797.164") :anon :lex :outer("cuid_1_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 629
.const 'Sub' $P5048 = 'cuid_167_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_172_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_65_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_66_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_67_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_68_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_69_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_70_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_71_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_72_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_73_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_74_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_75_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_76_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_77_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_78_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_79_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_80_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_81_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_82_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_83_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_84_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_85_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_86_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_87_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_88_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_89_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_90_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_91_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_92_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_93_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_94_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_95_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_96_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_97_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_98_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_99_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_100_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_101_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_102_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_103_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_104_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_105_1351276797.164'
capture_lex $P5048
.const 'Sub' $P5048 = 'cuid_106_1351276797.164'
capture_lex $P5048
.lex "$archetypes", $P101
.lex "&compute_c3_mro", $P102
.lex "&c3_merge", $P103
.lex "$?PACKAGE", $P104
.lex "$?CLASS", $P105
null $P5001
set $P101, $P5001
.const 'Sub' $P5002 = 'cuid_167_1351276797.164'
capture_lex $P5002
set $P102, $P5002
.const 'Sub' $P5003 = 'cuid_172_1351276797.164'
capture_lex $P5003
set $P103, $P5003
.annotate 'line', 679
nqp_get_sc_object $P5004, "55513D3AD249F7C9BD852BE8C803DA6CC8E551F6-1351276797.189", 1
$P5005 = $P5004."new"(1 :named("nominal"), 1 :named("inheritable"))
set $P101, $P5005
.const 'Sub' $P5006 = 'cuid_65_1351276797.164'
capture_lex $P5006
.const 'Sub' $P5007 = 'cuid_66_1351276797.164'
capture_lex $P5007
.const 'Sub' $P5008 = 'cuid_67_1351276797.164'
capture_lex $P5008
.const 'Sub' $P5009 = 'cuid_68_1351276797.164'
capture_lex $P5009
.const 'Sub' $P5010 = 'cuid_69_1351276797.164'
capture_lex $P5010
.const 'Sub' $P5011 = 'cuid_70_1351276797.164'
capture_lex $P5011
.const 'Sub' $P5012 = 'cuid_71_1351276797.164'
capture_lex $P5012
.const 'Sub' $P5013 = 'cuid_72_1351276797.164'
capture_lex $P5013
.const 'Sub' $P5014 = 'cuid_73_1351276797.164'
capture_lex $P5014
.const 'Sub' $P5015 = 'cuid_74_1351276797.164'
capture_lex $P5015
.const 'Sub' $P5016 = 'cuid_75_1351276797.164'
capture_lex $P5016
.const 'Sub' $P5017 = 'cuid_76_1351276797.164'
capture_lex $P5017
.const 'Sub' $P5018 = 'cuid_77_1351276797.164'
capture_lex $P5018
.const 'Sub' $P5019 = 'cuid_78_1351276797.164'
capture_lex $P5019
.const 'Sub' $P5020 = 'cuid_79_1351276797.164'
capture_lex $P5020
.const 'Sub' $P5021 = 'cuid_80_1351276797.164'
capture_lex $P5021
.const 'Sub' $P5022 = 'cuid_81_1351276797.164'
capture_lex $P5022
.const 'Sub' $P5023 = 'cuid_82_1351276797.164'
capture_lex $P5023
.const 'Sub' $P5024 = 'cuid_83_1351276797.164'
capture_lex $P5024
.const 'Sub' $P5025 = 'cuid_84_1351276797.164'
capture_lex $P5025
.const 'Sub' $P5026 = 'cuid_85_1351276797.164'
capture_lex $P5026
.const 'Sub' $P5027 = 'cuid_86_1351276797.164'
capture_lex $P5027
.const 'Sub' $P5028 = 'cuid_87_1351276797.164'
capture_lex $P5028
.const 'Sub' $P5029 = 'cuid_88_1351276797.164'
capture_lex $P5029
.const 'Sub' $P5030 = 'cuid_89_1351276797.164'
capture_lex $P5030
.const 'Sub' $P5031 = 'cuid_90_1351276797.164'
capture_lex $P5031
.const 'Sub' $P5032 = 'cuid_91_1351276797.164'
capture_lex $P5032
.const 'Sub' $P5033 = 'cuid_92_1351276797.164'
capture_lex $P5033
.const 'Sub' $P5034 = 'cuid_93_1351276797.164'
capture_lex $P5034
.const 'Sub' $P5035 = 'cuid_94_1351276797.164'
capture_lex $P5035
.const 'Sub' $P5036 = 'cuid_95_1351276797.164'
capture_lex $P5036
.const 'Sub' $P5037 = 'cuid_96_1351276797.164'
capture_lex $P5037
.const 'Sub' $P5038 = 'cuid_97_1351276797.164'
capture_lex $P5038
.const 'Sub' $P5039 = 'cuid_98_1351276797.164'
capture_lex $P5039
.const 'Sub' $P5040 = 'cuid_99_1351276797.164'
capture_lex $P5040
.const 'Sub' $P5041 = 'cuid_100_1351276797.164'
capture_lex $P5041
.const 'Sub' $P5042 = 'cuid_101_1351276797.164'
capture_lex $P5042
.const 'Sub' $P5043 = 'cuid_102_1351276797.164'
capture_lex $P5043
.const 'Sub' $P5044 = 'cuid_103_1351276797.164'
capture_lex $P5044
.const 'Sub' $P5045 = 'cuid_104_1351276797.164'
capture_lex $P5045
.const 'Sub' $P5046 = 'cuid_105_1351276797.164'
capture_lex $P5046
.const 'Sub' $P5047 = 'cuid_106_1351276797.164'
capture_lex $P5047
.return ($P5047)
.end
.HLL "nqp"
.namespace []
.sub "compute_c3_mro" :subid("cuid_167_1351276797.164") :anon :lex :outer("cuid_107_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 930
.param pmc _lex_param_0
.const 'Sub' $P5013 = 'cuid_166_1351276797.164'
capture_lex $P5013
.lex "@immediate_parents", $P101
.lex "@result", $P102
.lex "$class", _lex_param_0
new $P5001, 'ResizablePMCArray'
set $P101, $P5001
new $P5002, 'ResizablePMCArray'
set $P102, $P5002
root_new $P103, ['parrot';'Continuation']
set_label $P103, lexotic_158
.lex "RETURN", $P103
.annotate 'line', 931
get_how $P5003, _lex_param_0
$P5004 = $P5003."parents"(_lex_param_0, 1 :named("local"))
set $P101, $P5004
set $N5001, $P101
unless $N5001 goto if41_end161
.annotate 'line', 935
set $N5002, $P101
set $N5003, 1
iseq $I5001, $N5002, $N5003
unless $I5001 goto if42_else162
.annotate 'line', 936
.annotate 'line', 937
set $P5005, $P101[0]
unless_null $P5005, fallback164
null $P5006
set $P5005, $P5006
fallback164:
$P5007 = "&compute_c3_mro"($P5005)
set $P102, $P5007
set $P5010, $P102
goto if42_end163
if42_else162:
.const 'Sub' $P5008 = 'cuid_166_1351276797.164'
capture_lex $P5008
$P5009 = $P5008()
set $P5010, $P5009
if42_end163:
if41_end161:
.annotate 'line', 951
$P102."unshift"(_lex_param_0)
find_lex $P5011, "RETURN"
$P5012 = $P5011($P102)
goto lexotic_159
lexotic_158:
.get_results ($P5012)
lexotic_159:
.return ($P5012)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_166_1351276797.164") :anon :lex :outer("cuid_167_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 938
.const 'Sub' $P5010 = 'cuid_165_1351276797.164'
capture_lex $P5010
.lex "@merge_list", $P101
new $P5001, 'ResizablePMCArray'
set $P101, $P5001
find_lex $P5005, "@immediate_parents"
set $P5002, $P5005
iter $P5004, $P5005
for_next165:
unless $P5004, for_done167
shift $P5007, $P5004
for_redo166:
.const 'Sub' $P5006 = 'cuid_165_1351276797.164'
capture_lex $P5006
$P5002 = $P5006($P5007)
goto for_next165
for_done167:
.annotate 'line', 945
find_lex $P5008, "@immediate_parents"
$P101."push"($P5008)
.annotate 'line', 946
$P5009 = "&c3_merge"($P101)
store_lex "@result", $P5009
.return ($P5009)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_165_1351276797.164") :anon :lex :outer("cuid_166_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 942
.param pmc _lex_param_0
.lex "$_", _lex_param_0
.annotate 'line', 943
find_lex $P5001, "@merge_list"
$P5002 = "&compute_c3_mro"(_lex_param_0)
$P5003 = $P5001."push"($P5002)
.return ($P5003)
.end
.HLL "nqp"
.namespace []
.sub "c3_merge" :subid("cuid_172_1351276797.164") :anon :lex :outer("cuid_107_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 956
.param pmc _lex_param_0
.const 'Sub' $P5025 = 'cuid_171_1351276797.164'
capture_lex $P5025
.const 'Sub' $P5025 = 'cuid_174_1351276797.164'
capture_lex $P5025
.lex "@result", $P101
.lex "$accepted", $P102
.lex "$something_accepted", $P103
.lex "$cand_count", $P104
.lex "$i", $P105
.lex "@merge_list", _lex_param_0
new $P5001, 'ResizablePMCArray'
set $P101, $P5001
null $P5002
set $P102, $P5002
null $P5003
set $P103, $P5003
null $P5004
set $P104, $P5004
null $P5005
set $P105, $P5005
root_new $P106, ['parrot';'Continuation']
set_label $P106, lexotic_168
.lex "RETURN", $P106
box $P5006, 0
set $P103, $P5006
box $P5007, 0
set $P104, $P5007
set $P5008, _lex_param_0
iter $P5010, _lex_param_0
new $P5012, 'ExceptionHandler', [.CONTROL_LOOP_NEXT;.CONTROL_LOOP_REDO;.CONTROL_LOOP_LAST]
set_label $P5012, for_handlers188
push_eh $P5012
for_next189:
unless $P5010, for_done191
shift $P5013, $P5010
for_redo190:
.const 'Sub' $P5011 = 'cuid_171_1351276797.164'
capture_lex $P5011
$P5008 = $P5011($P5013)
goto for_next189
for_handlers188:
.get_results ($P5012)
pop_upto_eh $P5012
getattribute $P5012, $P5012, 'type'
eq $P5012, .CONTROL_LOOP_NEXT, for_next189
eq $P5012, .CONTROL_LOOP_REDO, for_redo190
for_done191:
pop_eh
set $N5001, $P104
set $N5002, 0
iseq $I5001, $N5001, $N5002
unless $I5001 goto if48_end193
.annotate 'line', 993
find_lex $P5014, "RETURN"
$P5015 = $P5014($P101)
if48_end193:
if $P103 goto unless49_end195
.annotate 'line', 998
box $P5016, "Could not build C3 linearization: ambiguous hierarchy"
die $P5016
unless49_end195:
box $P5017, 0
set $P105, $P5017
while50_test196:
set $N5003, $P105
set $N5004, _lex_param_0
islt $I5002, $N5003, $N5004
box $P5021, $I5002
set $P5020, $P5021
unless $I5002 goto while50_done200
while50_redo198:
.const 'Sub' $P5018 = 'cuid_174_1351276797.164'
capture_lex $P5018
$P5019 = $P5018()
set $P5020, $P5019
goto while50_test196
while50_done200:
.annotate 'line', 1017
$P5022 = "&c3_merge"(_lex_param_0)
set $P101, $P5022
.annotate 'line', 1018
$P101."unshift"($P102)
find_lex $P5023, "RETURN"
$P5024 = $P5023($P101)
goto lexotic_169
lexotic_168:
.get_results ($P5024)
lexotic_169:
.return ($P5024)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_171_1351276797.164") :anon :lex :outer("cuid_172_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 963
.param pmc _lex_param_0
.const 'Sub' $P5006 = 'cuid_170_1351276797.164'
capture_lex $P5006
.lex "@cand_list", $P101
.lex "$_", _lex_param_0
new $P5001, 'ResizablePMCArray'
set $P101, $P5001
set $P101, _lex_param_0
set $N5001, $P101
box $P5005, $N5001
set $P5004, $P5005
unless $N5001 goto if43_end171
.const 'Sub' $P5002 = 'cuid_170_1351276797.164'
capture_lex $P5002
$P5003 = $P5002()
set $P5004, $P5003
if43_end171:
.return ($P5004)
.end
.HLL "nqp"
.namespace []
.sub "" :subid("cuid_170_1351276797.164") :anon :lex :outer("cuid_171_1351276797.164")
.annotate 'file', "src\\stage2\\gen\\nqp-mo.pm"
.annotate 'line', 965
.const 'Sub' $P5018 = 'cuid_169_1351276797.164'
capture_lex $P5018
.lex "$rejected", $P101
.lex "$cand_class", $P102
null $P5001
set $P101, $P5001
null $P5002
set $P102, $P5002
box $P5003, 0