Ticket #1307 (closed bug: fixed)
NQP-rx doesn't handle comments correctly?
| Reported by: | Austin_Hastings | Owned by: | pmichaud |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | nqp | Version: | 1.8.0 |
| Severity: | medium | Keywords: | |
| Cc: | Language: | ||
| Patch status: | Platform: |
Description
The code below, compiled via "parrot-nqp bad.nqp", fails. Moving the line comment # Subs carry their name to a separate line causes the parse to succeed.
module Foo;
sub inject_symbol($object, :$namespace, :$as?, :$force?) {
# Injects a PMC C< $object > into a C< $namespace >, optionally C< $as > a certain name. For C< Sub > and
# C< MultiSub > PMCs, the name is not a requirement since they know their own names. For other PMC types,
# including injecting variable rather than functions, the C< $as > name must be provided by the caller. If
# C< $force > is specified, any pre-existing symbol is overwritten. Otherwise, if a name collision occurs
# FIXME: an exception should be thrown, but currently isn't.
unless Opcode::defined($as) { $as := ~ $object; } # Subs carry their name
if !Opcode::isa($namespace, 'NameSpace') {
$namespace := Opcode::get_hll_namespace($namespace);
}
# NB: find_var searches for *anything*, while find_sub requires isa(sub). In this case,
# any collision is bad.
if !$force && Opcode::defined($namespace.find_var($as)) {
return 0;
}
$namespace.add_var($as, $object);
}
Change History
Note: See
TracTickets for help on using
tickets.
