| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // Part of the Carbon Language project, under the Apache License v2.0 with LLVM
- // Exceptions. See /LICENSE for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- #ifndef EXECUTABLE_SEMANTICS_COMMON_ERROR_BUILDERS_H_
- #define EXECUTABLE_SEMANTICS_COMMON_ERROR_BUILDERS_H_
- #include "common/error.h"
- #include "executable_semantics/common/source_location.h"
- namespace Carbon {
- // Builds an Error instance with the specified message. This should be used for
- // non-recoverable errors with user input.
- //
- // For example:
- // return ProgramError(line_num) << "Line is bad!";
- // return ProgramError() << "Application is bad!";
- //
- // Where possible, try to identify the error as a compilation or runtime error.
- // Use CHECK/FATAL for internal errors. The generic program error option is
- // provided as a fallback for cases that don't fit those classifications.
- inline auto CompilationError(SourceLocation loc) -> ErrorBuilder {
- ErrorBuilder builder;
- (void)(builder << "COMPILATION ERROR: " << loc << ": ");
- return builder;
- }
- inline auto ProgramError(SourceLocation loc) -> ErrorBuilder {
- ErrorBuilder builder;
- (void)(builder << "PROGRAM ERROR: " << loc << ": ");
- return builder;
- }
- inline auto RuntimeError(SourceLocation loc) -> ErrorBuilder {
- ErrorBuilder builder;
- (void)(builder << "RUNTIME ERROR: " << loc << ": ");
- return builder;
- }
- } // namespace Carbon
- #endif // EXECUTABLE_SEMANTICS_COMMON_ERROR_BUILDERS_H_
|