From 828eccebbaf28674dc2043c216ba60efe738d817 Mon Sep 17 00:00:00 2001 From: Jon Ross-Perkins Date: Tue, 29 Apr 2025 13:06:58 -0700 Subject: [PATCH] Switch dump-sem-ir-start to dump-sem-ir-begin (#5378) Simply about consistency with begin/end naming. --- toolchain/diagnostics/diagnostic_kind.def | 2 +- toolchain/lex/lex.cpp | 22 +++---- .../lex/testdata/dump_sem_ir_range.carbon | 60 +++++++++---------- toolchain/lex/tokenized_buffer.cpp | 2 +- toolchain/lex/tokenized_buffer.h | 6 +- 5 files changed, 46 insertions(+), 46 deletions(-) diff --git a/toolchain/diagnostics/diagnostic_kind.def b/toolchain/diagnostics/diagnostic_kind.def index 53b5bb9bdac4..792132e1061e 100644 --- a/toolchain/diagnostics/diagnostic_kind.def +++ b/toolchain/diagnostics/diagnostic_kind.def @@ -47,7 +47,7 @@ CARBON_DIAGNOSTIC_KIND(BinaryRealLiteral) CARBON_DIAGNOSTIC_KIND(ContentBeforeStringTerminator) CARBON_DIAGNOSTIC_KIND(DecimalEscapeSequence) CARBON_DIAGNOSTIC_KIND(DumpSemIRRangeMissingEnd) -CARBON_DIAGNOSTIC_KIND(DumpSemIRRangeMissingStart) +CARBON_DIAGNOSTIC_KIND(DumpSemIRRangeMissingBegin) CARBON_DIAGNOSTIC_KIND(EmptyDigitSequence) CARBON_DIAGNOSTIC_KIND(HexadecimalEscapeMissingDigits) CARBON_DIAGNOSTIC_KIND(InvalidDigit) diff --git a/toolchain/lex/lex.cpp b/toolchain/lex/lex.cpp index 1915b05e88ca..1464dc84df67 100644 --- a/toolchain/lex/lex.cpp +++ b/toolchain/lex/lex.cpp @@ -219,8 +219,8 @@ class [[clang::internal_linkage]] Lexer { private: class ErrorRecoveryBuffer; - // Handles `//@dump-sem-ir-start` for a `DumpSemIRRange`. - auto StartDumpSemIRRange(const char* diag_loc) -> void; + // Handles `//@dump-sem-ir-begin` for a `DumpSemIRRange`. + auto BeginDumpSemIRRange(const char* diag_loc) -> void; // Handles `//@dump-sem-ir-end` for a `DumpSemIRRange`. auto EndDumpSemIRRange(const char* diag_loc) -> void; @@ -895,23 +895,23 @@ auto Lexer::LexCommentOrSlash(llvm::StringRef source_text, ssize_t& position) CARBON_CHECK(result, "Failed to form a token!"); } -auto Lexer::StartDumpSemIRRange(const char* diag_loc) -> void { +auto Lexer::BeginDumpSemIRRange(const char* diag_loc) -> void { EndDumpSemIRRangeIfIncomplete(diag_loc); - // The start here will be the next token, which may be FileEnd. The end will + // The begin here will be the next token, which may be FileEnd. The end will // be assigned by either AddDumpSemIREnd or, if invalid, // EndDumpSemIRRangeIfIncomplete. buffer_.dump_sem_ir_ranges_.push_back( - {.start = TokenIndex(buffer_.size()), .end = TokenIndex::None}); + {.begin = TokenIndex(buffer_.size()), .end = TokenIndex::None}); } auto Lexer::EndDumpSemIRRange(const char* diag_loc) -> void { if (buffer_.dump_sem_ir_ranges_.empty() || buffer_.dump_sem_ir_ranges_.back().end != TokenIndex::None) { CARBON_DIAGNOSTIC( - DumpSemIRRangeMissingStart, Error, - "missing `//@dump-sem-ir-start` to match `//@dump-sem-ir-end`"); - emitter_.Emit(diag_loc, DumpSemIRRangeMissingStart); + DumpSemIRRangeMissingBegin, Error, + "missing `//@dump-sem-ir-begin` to match `//@dump-sem-ir-end`"); + emitter_.Emit(diag_loc, DumpSemIRRangeMissingBegin); return; } @@ -929,7 +929,7 @@ auto Lexer::EndDumpSemIRRangeIfIncomplete(const char* diag_loc) -> void { // better. CARBON_DIAGNOSTIC( DumpSemIRRangeMissingEnd, Error, - "missing `//@dump-sem-ir-end` to match `//@dump-sem-ir-start`"); + "missing `//@dump-sem-ir-end` to match `//@dump-sem-ir-begin`"); emitter_.Emit(diag_loc, DumpSemIRRangeMissingEnd); EndDumpSemIRRange(diag_loc); @@ -961,8 +961,8 @@ auto Lexer::LexComment(llvm::StringRef source_text, ssize_t& position) -> void { if (position + 2 < static_cast(source_text.size()) && LLVM_UNLIKELY(!IsSpace(source_text[position + 2]))) { llvm::StringRef comment_text = source_text.substr(position); - if (comment_text.starts_with("//@dump-sem-ir-start\n")) { - StartDumpSemIRRange(comment_text.begin()); + if (comment_text.starts_with("//@dump-sem-ir-begin\n")) { + BeginDumpSemIRRange(comment_text.begin()); AdvanceToLine(source_text, position, line_index_ + 1); return; } diff --git a/toolchain/lex/testdata/dump_sem_ir_range.carbon b/toolchain/lex/testdata/dump_sem_ir_range.carbon index f38e82363858..1e99771da935 100644 --- a/toolchain/lex/testdata/dump_sem_ir_range.carbon +++ b/toolchain/lex/testdata/dump_sem_ir_range.carbon @@ -12,7 +12,7 @@ // CHECK:STDOUT: - filename: full_file.carbon // CHECK:STDOUT: tokens: -//@dump-sem-ir-start +//@dump-sem-ir-begin a // CHECK:STDOUT: - { index: 1, kind: "Identifier", line: {{ *}}[[@LINE-1]], column: 1, indent: 1, spelling: "a", identifier: 0, has_leading_space: true } b @@ -20,7 +20,7 @@ b c // CHECK:STDOUT: - { index: 3, kind: "Identifier", line: {{ *}}[[@LINE-1]], column: 1, indent: 1, spelling: "c", identifier: 2, has_leading_space: true } // CHECK:STDOUT: dump_sem_ir_ranges: -// CHECK:STDOUT: - {start: 1, end: 4} +// CHECK:STDOUT: - {begin: 1, end: 4} //@dump-sem-ir-end // --- multi_section.carbon @@ -29,34 +29,34 @@ c a // CHECK:STDOUT: - { index: 1, kind: "Identifier", line: {{ *}}[[@LINE-1]], column: 1, indent: 1, spelling: "a", identifier: 0, has_leading_space: true } -//@dump-sem-ir-start +//@dump-sem-ir-begin b // CHECK:STDOUT: - { index: 2, kind: "Identifier", line: {{ *}}[[@LINE-1]], column: 1, indent: 1, spelling: "b", identifier: 1, has_leading_space: true } //@dump-sem-ir-end c // CHECK:STDOUT: - { index: 3, kind: "Identifier", line: {{ *}}[[@LINE-1]], column: 1, indent: 1, spelling: "c", identifier: 2, has_leading_space: true } -//@dump-sem-ir-start +//@dump-sem-ir-begin d // CHECK:STDOUT: - { index: 4, kind: "Identifier", line: {{ *}}[[@LINE-1]], column: 1, indent: 1, spelling: "d", identifier: 3, has_leading_space: true } //@dump-sem-ir-end e // CHECK:STDOUT: - { index: 5, kind: "Identifier", line: {{ *}}[[@LINE-1]], column: 1, indent: 1, spelling: "e", identifier: 4, has_leading_space: true } // CHECK:STDOUT: dump_sem_ir_ranges: -// CHECK:STDOUT: - {start: 2, end: 3} -// CHECK:STDOUT: - {start: 4, end: 5} +// CHECK:STDOUT: - {begin: 2, end: 3} +// CHECK:STDOUT: - {begin: 4, end: 5} // --- compact.carbon // CHECK:STDOUT: - filename: compact.carbon // CHECK:STDOUT: tokens: // CHECK:STDOUT: dump_sem_ir_ranges: -// CHECK:STDOUT: - {start: 1, end: 1} -// CHECK:STDOUT: - {start: 1, end: 1} -// CHECK:STDOUT: - {start: 1, end: 1} -//@dump-sem-ir-start +// CHECK:STDOUT: - {begin: 1, end: 1} +// CHECK:STDOUT: - {begin: 1, end: 1} +// CHECK:STDOUT: - {begin: 1, end: 1} +//@dump-sem-ir-begin //@dump-sem-ir-end -//@dump-sem-ir-start +//@dump-sem-ir-begin //@dump-sem-ir-end -//@dump-sem-ir-start +//@dump-sem-ir-begin //@dump-sem-ir-end // --- fail_extra_text.carbon @@ -64,19 +64,19 @@ e // CHECK:STDOUT: tokens: // CHECK:STDERR: fail_extra_text.carbon:[[@LINE+4]]:3: error: whitespace is required after '//' [NoWhitespaceAfterCommentIntroducer] -// CHECK:STDERR: //@dump-sem-ir-start more text +// CHECK:STDERR: //@dump-sem-ir-begin more text // CHECK:STDERR: ^ // CHECK:STDERR: -//@dump-sem-ir-start more text +//@dump-sem-ir-begin more text // --- fail_start_only.carbon // CHECK:STDOUT: - filename: fail_start_only.carbon // CHECK:STDOUT: tokens: // CHECK:STDOUT: dump_sem_ir_ranges: -// CHECK:STDOUT: - {start: 1, end: 1} +// CHECK:STDOUT: - {begin: 1, end: 1} -//@dump-sem-ir-start -// CHECK:STDERR: fail_start_only.carbon:[[@LINE+4]]:1: error: missing `//@dump-sem-ir-end` to match `//@dump-sem-ir-start` [DumpSemIRRangeMissingEnd] +//@dump-sem-ir-begin +// CHECK:STDERR: fail_start_only.carbon:[[@LINE+4]]:1: error: missing `//@dump-sem-ir-end` to match `//@dump-sem-ir-begin` [DumpSemIRRangeMissingEnd] // CHECK:STDERR: // CHECK:STDERR: ^ // CHECK:STDERR: @@ -85,7 +85,7 @@ e // CHECK:STDOUT: - filename: fail_end_only.carbon // CHECK:STDOUT: tokens: -// CHECK:STDERR: fail_end_only.carbon:[[@LINE+4]]:1: error: missing `//@dump-sem-ir-start` to match `//@dump-sem-ir-end` [DumpSemIRRangeMissingStart] +// CHECK:STDERR: fail_end_only.carbon:[[@LINE+4]]:1: error: missing `//@dump-sem-ir-begin` to match `//@dump-sem-ir-end` [DumpSemIRRangeMissingBegin] // CHECK:STDERR: //@dump-sem-ir-end // CHECK:STDERR: ^ // CHECK:STDERR: @@ -97,20 +97,20 @@ e a // CHECK:STDOUT: - { index: 1, kind: "Identifier", line: {{ *}}[[@LINE-1]], column: 1, indent: 1, spelling: "a", identifier: 0, has_leading_space: true } -//@dump-sem-ir-start +//@dump-sem-ir-begin b // CHECK:STDOUT: - { index: 2, kind: "Identifier", line: {{ *}}[[@LINE-1]], column: 1, indent: 1, spelling: "b", identifier: 1, has_leading_space: true } -// CHECK:STDERR: fail_misordered.carbon:[[@LINE+4]]:1: error: missing `//@dump-sem-ir-end` to match `//@dump-sem-ir-start` [DumpSemIRRangeMissingEnd] -// CHECK:STDERR: //@dump-sem-ir-start +// CHECK:STDERR: fail_misordered.carbon:[[@LINE+4]]:1: error: missing `//@dump-sem-ir-end` to match `//@dump-sem-ir-begin` [DumpSemIRRangeMissingEnd] +// CHECK:STDERR: //@dump-sem-ir-begin // CHECK:STDERR: ^ // CHECK:STDERR: -//@dump-sem-ir-start +//@dump-sem-ir-begin c // CHECK:STDOUT: - { index: 3, kind: "Identifier", line: {{ *}}[[@LINE-1]], column: 1, indent: 1, spelling: "c", identifier: 2, has_leading_space: true } //@dump-sem-ir-end d // CHECK:STDOUT: - { index: 4, kind: "Identifier", line: {{ *}}[[@LINE-1]], column: 1, indent: 1, spelling: "d", identifier: 3, has_leading_space: true } -// CHECK:STDERR: fail_misordered.carbon:[[@LINE+4]]:1: error: missing `//@dump-sem-ir-start` to match `//@dump-sem-ir-end` [DumpSemIRRangeMissingStart] +// CHECK:STDERR: fail_misordered.carbon:[[@LINE+4]]:1: error: missing `//@dump-sem-ir-begin` to match `//@dump-sem-ir-end` [DumpSemIRRangeMissingBegin] // CHECK:STDERR: //@dump-sem-ir-end // CHECK:STDERR: ^ // CHECK:STDERR: @@ -118,8 +118,8 @@ d e // CHECK:STDOUT: - { index: 5, kind: "Identifier", line: {{ *}}[[@LINE-1]], column: 1, indent: 1, spelling: "e", identifier: 4, has_leading_space: true } // CHECK:STDOUT: dump_sem_ir_ranges: -// CHECK:STDOUT: - {start: 2, end: 3} -// CHECK:STDOUT: - {start: 3, end: 4} +// CHECK:STDOUT: - {begin: 2, end: 3} +// CHECK:STDOUT: - {begin: 3, end: 4} // --- fail_count_mismatch.carbon // CHECK:STDOUT: - filename: fail_count_mismatch.carbon @@ -127,20 +127,20 @@ e a // CHECK:STDOUT: - { index: 1, kind: "Identifier", line: {{ *}}[[@LINE-1]], column: 1, indent: 1, spelling: "a", identifier: 0, has_leading_space: true } -//@dump-sem-ir-start +//@dump-sem-ir-begin b // CHECK:STDOUT: - { index: 2, kind: "Identifier", line: {{ *}}[[@LINE-1]], column: 1, indent: 1, spelling: "b", identifier: 1, has_leading_space: true } //@dump-sem-ir-end c // CHECK:STDOUT: - { index: 3, kind: "Identifier", line: {{ *}}[[@LINE-1]], column: 1, indent: 1, spelling: "c", identifier: 2, has_leading_space: true } -//@dump-sem-ir-start +//@dump-sem-ir-begin d // CHECK:STDOUT: - { index: 4, kind: "Identifier", line: {{ *}}[[@LINE-1]], column: 1, indent: 1, spelling: "d", identifier: 3, has_leading_space: true } // CHECK:STDOUT: dump_sem_ir_ranges: -// CHECK:STDOUT: - {start: 2, end: 3} -// CHECK:STDOUT: - {start: 4, end: 5} +// CHECK:STDOUT: - {begin: 2, end: 3} +// CHECK:STDOUT: - {begin: 4, end: 5} -// CHECK:STDERR: fail_count_mismatch.carbon:[[@LINE+3]]:17: error: missing `//@dump-sem-ir-end` to match `//@dump-sem-ir-start` [DumpSemIRRangeMissingEnd] +// CHECK:STDERR: fail_count_mismatch.carbon:[[@LINE+3]]:17: error: missing `//@dump-sem-ir-end` to match `//@dump-sem-ir-begin` [DumpSemIRRangeMissingEnd] // CHECK:STDERR: // CHECK:STDERR: // CHECK:STDERR: ^ // CHECK:STDERR: diff --git a/toolchain/lex/tokenized_buffer.cpp b/toolchain/lex/tokenized_buffer.cpp index 428a55c8412b..fda1945bfa83 100644 --- a/toolchain/lex/tokenized_buffer.cpp +++ b/toolchain/lex/tokenized_buffer.cpp @@ -240,7 +240,7 @@ auto TokenizedBuffer::Print(llvm::raw_ostream& output_stream, if (!dump_sem_ir_ranges_.empty()) { output_stream << " dump_sem_ir_ranges:\n"; for (auto range : dump_sem_ir_ranges_) { - output_stream << " - {start: " << range.start.index + output_stream << " - {begin: " << range.begin.index << ", end: " << range.end.index << "}\n"; } } diff --git a/toolchain/lex/tokenized_buffer.h b/toolchain/lex/tokenized_buffer.h index 41dbd3b5df3d..d0fc59baf8e8 100644 --- a/toolchain/lex/tokenized_buffer.h +++ b/toolchain/lex/tokenized_buffer.h @@ -85,15 +85,15 @@ class TokenizedBuffer : public Printable { LineIndex start_line; }; - // A range of tokens marked by `//@dump-semir-[start|end]`. The end token is - // non-inclusive: [start, end). + // A range of tokens marked by `//@dump-semir-[begin|end]`. The end token is + // non-inclusive: [begin, end). // // The particular syntax was chosen because it can be lexed efficiently. It // only occurs in invalid comment strings, so shouldn't slow down lexing of // correct code. It's also comment-like because its presence won't affect // parse/check. struct DumpSemIRRange { - TokenIndex start; + TokenIndex begin; TokenIndex end; };