aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBen Burdette <bburdette@gmail.com>2020-04-07 14:36:32 -0600
committerBen Burdette <bburdette@gmail.com>2020-04-07 14:36:32 -0600
commit00c507cc52ceb0d879c43e88e70de0028ff47fc6 (patch)
tree170344ac04798bb87c06ae767b52365e914c4451 /src
parent55c96b64e4de2b7e3443124bb0aa17ecc9188940 (diff)
columnRange -> column
Diffstat (limited to 'src')
-rw-r--r--src/libutil/error.cc14
-rw-r--r--src/libutil/error.hh13
2 files changed, 9 insertions, 18 deletions
diff --git a/src/libutil/error.cc b/src/libutil/error.cc
index 41fabbbcf..db8821a5c 100644
--- a/src/libutil/error.cc
+++ b/src/libutil/error.cc
@@ -46,8 +46,8 @@ ErrorInfo ErrorInfo::ProgramEI(ErrLevel level,
string showErrLine(const ErrLine &errLine)
{
- if (errLine.columnRange.has_value()) {
- return (format("(%1%:%2%)") % errLine.lineNumber % errLine.columnRange->start).str();
+ if (errLine.column > 0) {
+ return (format("(%1%:%2%)") % errLine.lineNumber % errLine.column).str();
} else {
return (format("(%1%)") % errLine.lineNumber).str();
};
@@ -74,18 +74,14 @@ void printCodeLines(const string &prefix, const NixCode &nixCode)
<< std::endl;
// error arrows for the column range.
- if (nixCode.errLine->columnRange.has_value()) {
- int start = nixCode.errLine->columnRange->start;
+ if (nixCode.errLine->column > 0) {
+ int start = nixCode.errLine->column;
std::string spaces;
for (int i = 0; i < start; ++i) {
spaces.append(" ");
}
- int len = nixCode.errLine->columnRange->len;
- std::string arrows;
- for (int i = 0; i < len; ++i) {
- arrows.append("^");
- }
+ std::string arrows("^");
std::cout << format("%1% |%2%" ANSI_RED "%3%" ANSI_NORMAL) % prefix % spaces % arrows << std::endl;
}
diff --git a/src/libutil/error.hh b/src/libutil/error.hh
index a8a1afbca..e3bb2c1dd 100644
--- a/src/libutil/error.hh
+++ b/src/libutil/error.hh
@@ -17,20 +17,13 @@ typedef enum {
elError
} ErrLevel;
-class ColumnRange
-{
-public:
- unsigned int start;
- unsigned int len;
-};
-
class ErrorInfo;
class ErrLine
{
public:
int lineNumber;
- std::optional<ColumnRange> columnRange;
+ int column;
std::optional<string> prevLineOfCode;
string errLineOfCode;
std::optional<string> nextLineOfCode;
@@ -107,6 +100,8 @@ public:
static std::optional<string> programName;
+ ErrorInfo& set_name(const string &name) { this->name = name; return *this; }
+
static ErrorInfo ProgramError(const string &name,
const string &description,
const std::optional<hintformat> &hf);
@@ -165,7 +160,7 @@ private:
ErrLine errline;
errline.lineNumber = pos.line;
- errline.columnRange = { .start = pos.column, .len = 1 };
+ errline.column = pos.column;
errline.prevLineOfCode = prevloc;
errline.errLineOfCode = loc;
errline.nextLineOfCode = nextloc;