From c884b1668a1b5b643e439f1e3300c565e328b718 Mon Sep 17 00:00:00 2001 From: Elizabeth Mattijsen Date: Sun, 18 Jun 2023 20:49:07 +0200 Subject: [PATCH] RakuAST: allow constant terms to be used in rakudoc config By attempting to resolve RakuAST::Term::Name when literalizing, and use that value if successful. --- src/core.c/RakuAST/Literalize.pm6 | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/core.c/RakuAST/Literalize.pm6 b/src/core.c/RakuAST/Literalize.pm6 index a53093888f6..0f94265431b 100644 --- a/src/core.c/RakuAST/Literalize.pm6 +++ b/src/core.c/RakuAST/Literalize.pm6 @@ -183,11 +183,24 @@ augment class RakuAST::Node { multi method literalize(RakuAST::Term::Name:D:) { my str $name = self.name.canonicalize; - $name eq 'True' - ?? True - !! $name eq 'False' - ?? False - !! self.resolution.compile-time-value + if $name eq 'True' { + True + } + elsif $name eq 'False' { + False + } + else { + unless self.is-resolved { + self.resolve-with($_) with $*RESOLVER; + } + + with try self.resolution andthen .compile-time-value { + $_ + } + else { + CannotLiteralize.new.throw; + } + } } multi method literalize(RakuAST::Term::RadixNumber:D:) {