From 225d2f9669f3b1d9e1d2ae668ba430691e664dad Mon Sep 17 00:00:00 2001 From: Elizabeth Mattijsen Date: Tue, 8 Jan 2019 14:56:35 +0100 Subject: [PATCH] Streamline Map/Hash.gist a bit more --- src/core/Hash.pm6 | 16 ++++++---------- src/core/Map.pm6 | 8 +++++--- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/core/Hash.pm6 b/src/core/Hash.pm6 index 7a288e2d4a6..110e5016c35 100644 --- a/src/core/Hash.pm6 +++ b/src/core/Hash.pm6 @@ -195,16 +195,12 @@ my class Hash { # declared in BOOTSTRAP } multi method gist(Hash:D:) { - self.gistseen(self.^name, { - '{' ~ - self.sort.map({ - state $i = 0; - ++$i == 101 ?? '...' - !! $i == 102 ?? last() - !! .gist - }).join(', ') - ~ '}' - }) + self.gistseen: self.^name, { + '{' + ~ self.sort.head(100).map(*.gist).join(', ') + ~ (', ...' if self.elems > 100) + ~ '}' + } } multi method DUMP(Hash:D: :$indent-step = 4, :%ctx) { diff --git a/src/core/Map.pm6 b/src/core/Map.pm6 index 62421476505..eb06e51d855 100644 --- a/src/core/Map.pm6 +++ b/src/core/Map.pm6 @@ -213,9 +213,11 @@ my class Map does Iterable does Associative { # declared in BOOTSTRAP } multi method gist(Map:D: --> Str:D) { - my @pairs = self.sort.head(100).map: *.gist; - @pairs.push("...") if self.elems > 100; - self.^name ~ '.new((' ~ @pairs.join(', ') ~ '))' + self.^name + ~ '.new((' + ~ self.sort.head(100).map(*.gist).join(', ') + ~ (', ...' if self.elems > 100) + ~ '))' } multi method perl(Map:D \SELF: --> Str:D) {