Skip to content

Commit

Permalink
Merge pull request #3369 from kalkin/sub-and-method-return-type
Browse files Browse the repository at this point in the history
Fix #2371 - Pod::To::Text display sub & method return type
  • Loading branch information
lizmat committed Feb 9, 2020
2 parents ca912be + 0b0a1aa commit a152997
Showing 1 changed file with 17 additions and 6 deletions.
23 changes: 17 additions & 6 deletions lib/Pod/To/Text.rakumod
Expand Up @@ -88,10 +88,10 @@ sub declarator2text($pod) {
when Method {
my @params=$_.signature.params[1..*];
@params.pop if @params.tail.name eq '%_';
'method ' ~ $_.name ~ signature2text(@params)
'method ' ~ $_.name ~ signature2text(@params, $_.returns)
}
when Sub {
'sub ' ~ $_.name ~ signature2text($_.signature.params)
'sub ' ~ $_.name ~ signature2text($_.signature.params, $_.returns)
}
when .HOW ~~ Metamodel::EnumHOW {
"enum $_.raku() { signature2text $_.enums.pairs } \n"
Expand All @@ -115,11 +115,22 @@ sub declarator2text($pod) {
"$what\n{$pod.WHEREFORE.WHY.contents}"
}

sub signature2text($params) {
$params.elems ??
"(\n\t" ~ $params.map(&param2text).join("\n\t") ~ "\n)"
!! "()";
sub signature2text($params, Mu $returns?) {
my $result = '(';

if $params.elems {
$result ~= "\n\t" ~ $params.map(&param2text).join("\n\t")
}
unless $returns<> =:= Mu {
$result ~= "\n\t--> " ~ $returns.raku
}
if $result.chars > 1 {
$result ~= "\n";
}
$result ~= ')';
return $result;
}

sub param2text($p) {
$p.raku ~ ',' ~ ( $p.WHY ?? ' # ' ~ $p.WHY !! ' ')
}
Expand Down

0 comments on commit a152997

Please sign in to comment.