mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-06 10:54:49 +01:00
Switch dump-sem-ir-start to dump-sem-ir-begin (#5378)
Simply about consistency with begin/end naming.
This commit is contained in:
@@ -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)
|
||||
|
||||
+11
-11
@@ -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<ssize_t>(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;
|
||||
}
|
||||
|
||||
+30
-30
@@ -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:
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,15 +85,15 @@ class TokenizedBuffer : public Printable<TokenizedBuffer> {
|
||||
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;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user