diff --git a/toolchain/lexer/tokenized_buffer.cpp b/toolchain/lexer/tokenized_buffer.cpp index d427b2e34cb5..8b082090269d 100644 --- a/toolchain/lexer/tokenized_buffer.cpp +++ b/toolchain/lexer/tokenized_buffer.cpp @@ -828,7 +828,9 @@ auto TokenizedBuffer::PrintToken(llvm::raw_ostream& output_stream, Token token, output_stream << ", identifier: " << GetIdentifier(token).index_; break; case TokenKind::IntegerLiteral(): - output_stream << ", value: `" << GetIntegerLiteral(token) << "`"; + output_stream << ", value: `"; + GetIntegerLiteral(token).print(output_stream, /*isSigned=*/false); + output_stream << "`"; break; case TokenKind::RealLiteral(): output_stream << ", value: `" << GetRealLiteral(token) << "`"; diff --git a/toolchain/lexer/tokenized_buffer_test.cpp b/toolchain/lexer/tokenized_buffer_test.cpp index d8131f29a9f9..26ea70afd883 100644 --- a/toolchain/lexer/tokenized_buffer_test.cpp +++ b/toolchain/lexer/tokenized_buffer_test.cpp @@ -1175,5 +1175,18 @@ TEST_F(LexerTest, PrintingAsYaml) { {"spelling", ""}}}})); } +TEST_F(LexerTest, PrintToken) { + auto buffer = Lex("0x9"); + ASSERT_FALSE(buffer.has_errors()); + std::string print_output; + llvm::raw_string_ostream print_stream(print_output); + buffer.Print(print_stream); + llvm::StringRef print = print_stream.str(); + EXPECT_THAT(GetAndDropLine(print), + StrEq("token: { index: 0, kind: 'IntegerLiteral', line: 1, " + "column: 1, indent: 1, spelling: '0x9', value: `9`, " + "has_trailing_space: true }")); +} + } // namespace } // namespace Carbon::Testing