# New Ticket Created by "Carl Mäsak"
# Please include the string: [perl #88698]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=88698 >
Let's just say I don't think it should work like it does below. Even
if it *is* a syntax error, there are better ways to say that. File and
line number would be fine, but I'll consider this ticket fixed by just
having the very long imcc syntax error go away.
$ touch Foo.pm
$ perl6 -e '(use Foo)()'
error:imcc:syntax error, unexpected '(' ('(')
in file '.loadlib 'perl6_ops'
.HLL "perl6"
.namespace []
.sub "_block106" :anon :subid("76_1302947813.35435")
.param pmc param_128 :slurpy
.annotate 'line', 0
.const 'Sub' $P111 = "77_1302947813.35435"
capture_lex $P111
.annotate 'line', 1
.local pmc true
true = get_hll_global 'True'
.lex "__CANDIDATE_LIST__", $P108
get_hll_global $P109, "!UNIT_START"
.const 'Sub' $P111 = "77_1302947813.35435"
capture_lex $P111
.lex "@_", param_128
$P129 = $P109($P111, param_128)
.return ($P129)
.const 'Sub' $P134 = "79_1302947813.35435"
.return ($P134)
.end
.HLL "perl6"
.namespace []
.sub "_block110" :anon :subid("77_1302947813.35435")
:outer("76_1302947813.35435")
.param pmc param_120 :optional
.param int has_param_120 :opt_flag
.annotate 'line', 1
.local pmc true
true = get_hll_global 'True'
.lex "__CANDIDATE_LIST__", $P112
find_lex_skip_current $P113, "$_"
$P114 = new ['Perl6Scalar'], $P113
setprop $P114, "rw", true
.lex "$_", $P114
find_lex_skip_current $P115, "$/"
$P116 = new ['Perl6Scalar'], $P115
setprop $P116, "rw", true
.lex "$/", $P116
find_lex_skip_current $P117, "$!"
$P118 = new ['Perl6Scalar'], $P117
setprop $P118, "rw", true
.lex "$!", $P118
get_hll_global $P119, ["Perl6";"Module"], "Loader"
$P119."import"("Foo")
if has_param_120, optparam_81
new $P121, "Integer"
assign $P121, 0
set param_120, $P121
optparam_81:
.lex "$MAIN", param_120
$P0 = find_dynamic_lex "$*CTXSAVE"
if null $P0 goto ctxsave_done
$I0 = can $P0, "ctxsave"
unless $I0 goto ctxsave_done
$P0."ctxsave"()
ctxsave_done:
$P0 = get_hll_global "@!recapture"
recapture_loop:
unless $P0 goto recapture_loop_end
$P1 = shift $P0
fixup_outer_ctx $P1
goto recapture_loop
recapture_loop_end:
$P122 = ()
.return ($P122)
.end
.HLL "perl6"
.namespace []
.sub "" :load :init :subid("post80") :outer("77_1302947813.35435")
.annotate 'line', 1
.const 'Sub' $P111 = "77_1302947813.35435"
.local pmc block
set block, $P111
$P0 = find_name "!UNIT_OUTER"
unless null $P0 goto have_perl6
load_language "perl6"
have_perl6:
"!UNIT_OUTER"(block)
get_hll_global $P123, ["Perl6";"Module"], "Loader"
$P124 = "&infix:<,>"()
$P125 = "&circumfix:<{ }>"($P124)
set $S126, "$!storage"
getattribute $P127, $P125, $S126
$P123."need"("Foo", $P127)
.end
.HLL "perl6"
.namespace []
.sub "_block130" :load :init :anon :subid("78_1302947813.35435")
.annotate 'line', 1
$P132 = "!fire_phasers"("CHECK")
.return ($P132)
.end
.HLL "perl6"
.namespace []
.sub "_block133" :load :anon :subid("79_1302947813.35435")
.annotate 'line', 1
.const 'Sub' $P135 = "76_1302947813.35435"
$P136 = "!UNIT_START"($P135)
.return ($P136)
.end
' line 68
error:imcc:syntax error ... somewhere
in file '.loadlib 'perl6_ops'
.HLL "perl6"
.namespace []
.sub "_block106" :anon :subid("76_1302947813.35435")
.param pmc param_128 :slurpy
.annotate 'line', 0
.const 'Sub' $P111 = "77_1302947813.35435"
capture_lex $P111
.annotate 'line', 1
.local pmc true
true = get_hll_global 'True'
.lex "__CANDIDATE_LIST__", $P108
get_hll_global $P109, "!UNIT_START"
.const 'Sub' $P111 = "77_1302947813.35435"
capture_lex $P111
.lex "@_", param_128
$P129 = $P109($P111, param_128)
.return ($P129)
.const 'Sub' $P134 = "79_1302947813.35435"
.return ($P134)
.end
.HLL "perl6"
.namespace []
.sub "_block110" :anon :subid("77_1302947813.35435")
:outer("76_1302947813.35435")
.param pmc param_120 :optional
.param int has_param_120 :opt_flag
.annotate 'line', 1
.local pmc true
true = get_hll_global 'True'
.lex "__CANDIDATE_LIST__", $P112
find_lex_skip_current $P113, "$_"
$P114 = new ['Perl6Scalar'], $P113
setprop $P114, "rw", true
.lex "$_", $P114
find_lex_skip_current $P115, "$/"
$P116 = new ['Perl6Scalar'], $P115
setprop $P116, "rw", true
.lex "$/", $P116
find_lex_skip_current $P117, "$!"
$P118 = new ['Perl6Scalar'], $P117
setprop $P118, "rw", true
.lex "$!", $P118
get_hll_global $P119, ["Perl6";"Module"], "Loader"
$P119."import"("Foo")
if has_param_120, optparam_81
new $P121, "Integer"
assign $P121, 0
set param_120, $P121
optparam_81:
.lex "$MAIN", param_120
$P0 = find_dynamic_lex "$*CTXSAVE"
if null $P0 goto ctxsave_done
$I0 = can $P0, "ctxsave"
unless $I0 goto ctxsave_done
$P0."ctxsave"()
ctxsave_done:
$P0 = get_hll_global "@!recapture"
recapture_loop:
unless $P0 goto recapture_loop_end
$P1 = shift $P0
fixup_outer_ctx $P1
goto recapture_loop
recapture_loop_end:
$P122 = ()
.return ($P122)
.end
.HLL "perl6"
.namespace []
.sub "" :load :init :subid("post80") :outer("77_1302947813.35435")
.annotate 'line', 1
.const 'Sub' $P111 = "77_1302947813.35435"
.local pmc block
set block, $P111
$P0 = find_name "!UNIT_OUTER"
unless null $P0 goto have_perl6
load_language "perl6"
have_perl6:
"!UNIT_OUTER"(block)
get_hll_global $P123, ["Perl6";"Module"], "Loader"
$P124 = "&infix:<,>"()
$P125 = "&circumfix:<{ }>"($P124)
set $S126, "$!storage"
getattribute $P127, $P125, $S126
$P123."need"("Foo", $P127)
.end
.HLL "perl6"
.namespace []
.sub "_block130" :load :init :anon :subid("78_1302947813.35435")
.annotate 'line', 1
$P132 = "!fire_phasers"("CHECK")
.return ($P132)
.end
.HLL "perl6"
.namespace []
.sub "_block133" :load :anon :subid("79_1302947813.35435")
.annotate 'line', 1
.const 'Sub' $P135 = "76_1302947813.35435"
$P136 = "!UNIT_START"($P135)
.return ($P136)
.end
' line 112
===SORRY!===
syntax error ... somewhere
$