From 9dbd3363f41d867be193a02e5f612c8e1bcd5b85 Mon Sep 17 00:00:00 2001 From: trizen Date: Tue, 8 Sep 2015 19:04:31 +0300 Subject: [PATCH] - Improved the deparsing of method calls. (happy 1000 commit) --- lib/Sidef/Deparse/Sidef.pm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/lib/Sidef/Deparse/Sidef.pm b/lib/Sidef/Deparse/Sidef.pm index 8d1b87cb0..8b1686c2f 100644 --- a/lib/Sidef/Deparse/Sidef.pm +++ b/lib/Sidef/Deparse/Sidef.pm @@ -424,6 +424,18 @@ package Sidef::Deparse::Sidef { foreach my $call (@{$expr->{call}}) { my $method = $call->{method}; + if (ref($method) ne '') { + $method = ( + '(' + . $self->deparse_expr( + ref($method) eq 'HASH' + ? $method + : {self => $method} + ) + . ')' + ); + } + if ($code eq 'Hash' and $method eq ':') { $method = 'new'; } @@ -434,10 +446,7 @@ package Sidef::Deparse::Sidef { $code = '(' . $code . ')'; } - if (ref($method) eq 'HASH') { - $code .= '.(' . $self->deparse_expr($method) . ')'; - } - elsif ($method =~ /^[[:alpha:]_]/) { + if ($method =~ /^[[:alpha:]_(]/) { $code .= '.' if $code ne ''; $code .= $method; }