aboutsummaryrefslogtreecommitdiff
path: root/src/error-demo
diff options
context:
space:
mode:
authorBen Burdette <bburdette@gmail.com>2020-04-06 20:14:48 -0600
committerBen Burdette <bburdette@gmail.com>2020-04-06 20:14:48 -0600
commit55c96b64e4de2b7e3443124bb0aa17ecc9188940 (patch)
tree78362ae200573bbee714298b6aaa9cf4b214da90 /src/error-demo
parentec449c845056dad43eeec4d6ff983002f038cf69 (diff)
comment cleanup
Diffstat (limited to 'src/error-demo')
-rw-r--r--src/error-demo/error-demo.cc86
1 files changed, 24 insertions, 62 deletions
diff --git a/src/error-demo/error-demo.cc b/src/error-demo/error-demo.cc
index fdb574b25..ef8b56308 100644
--- a/src/error-demo/error-demo.cc
+++ b/src/error-demo/error-demo.cc
@@ -11,15 +11,10 @@ int main()
// In each program where errors occur, this has to be set.
ErrorInfo::programName = std::optional("error-demo");
- // There are currently four error types:
+ // There are currently four constructor functions:
//
// ProgramError, ProgramWarning, NixLangError, NixLangWarning.
//
- // Each error type is created with a specific sequence of builder functions.
- // Unlike with a constructor, each parameter is clearly named.
- // If the sequence of function calls isn't followed, then there's a type
- // error. This should make for a consistent look in the code when errors are
- // created.
// ProgramError takes name, description, and an optional hint.
printErrorInfo(
@@ -33,68 +28,35 @@ int main()
printErrorInfo(
ErrorInfo::ProgramWarning("name",
"warning description",
- std::optional(hintfmt("there was a %1%", "warning"))));
-
- // printErrorInfo( ProgramWarning()
- // .name("warning name")
- // .description("warning description")
- // // the templated value, 'warning', is automatically colored yellow.
- // .hint(hintfmt("there was a %1%", "warning"))
- // );
-
- /*
- // some invalid errors:
-
- // type error: no hint function.
- ProgramError()
- .name("name")
- .description("error description");
-
- // type error: description before name.
- ProgramError()
- .description("error description")
- .name("name")
- .nohint();
-
- // type error: hint function with regular boost format, not special
- hintfmt. ProgramError() .description("error description") .name("name")
- .hint(format("there was a %1%") % "warning");
- */
+ std::optional(
+ hintfmt("there was a %1%", "warning"))));
// NixLangWarning adds nix file, line number, column range, and the lines of
// code where a warning occurred.
-
SymbolTable testTable;
auto problem_symbol = testTable.create("problem");
- printErrorInfo(ErrorInfo::NixLangWarning(
- "warning name",
- "warning description",
- Pos(problem_symbol, 40, 13),
- std::nullopt,
- "this is the problem line of code",
- std::nullopt,
- hintfmt("this hint has %1% templated %2%!!", "yellow", "values")));
-
- // // NixLangError is just the same as NixLangWarning, except for the Error
- // // flag.
- // printErrorInfo(NixLangError()
- // .name("error name")
- // .description("error description")
- // .pos(Pos(problem_symbol, 40, 13))
- // .linesOfCode(std::optional("previous line of code"),
- // "this is the problem line of code",
- // std::optional("next line of code"))
- // .hint(hintfmt("this hint has %1% templated %2%!!", "yellow", "values")));
- printErrorInfo(ErrorInfo::NixLangError(
- "error name",
- "error description",
- Pos(problem_symbol, 40, 13),
- std::optional("previous line of code"),
- "this is the problem line of code",
- std::optional("next line of code"),
- hintfmt("this hint has %1% templated %2%!!", "yellow", "values")));
-
+ printErrorInfo(
+ ErrorInfo::NixLangWarning(
+ "warning name",
+ "warning description",
+ Pos(problem_symbol, 40, 13),
+ std::nullopt,
+ "this is the problem line of code",
+ std::nullopt,
+ hintfmt("this hint has %1% templated %2%!!", "yellow", "values")));
+
+ // NixLangError is just the same as NixLangWarning, except for the Error
+ // flag.
+ printErrorInfo(
+ ErrorInfo::NixLangError(
+ "error name",
+ "error description",
+ Pos(problem_symbol, 40, 13),
+ std::optional("previous line of code"),
+ "this is the problem line of code",
+ std::optional("next line of code"),
+ hintfmt("this hint has %1% templated %2%!!", "yellow", "values")));
return 0;
}