style: format the whole tree with cargo fmt (stock defaults, #35)
One-time, mechanical reformat — no functional changes. The tree was not rustfmt-clean (~1800 hunks across ~100 files); this brings it to stock `cargo fmt` defaults so a `cargo fmt --check` CI gate can follow. Behaviour-preserving: 2509 pass / 0 fail / 1 ignored (unchanged baseline), clippy clean. A .git-blame-ignore-revs entry follows so `git blame` skips this commit.
This commit is contained in:
@@ -54,10 +54,7 @@ fn error_lines_for(input: &str) -> Vec<String> {
|
||||
}
|
||||
|
||||
fn dump(input: &str, lines: &[String]) -> String {
|
||||
format!(
|
||||
"INPUT: {input:?}\nERROR LINES:\n{}",
|
||||
lines.join("\n"),
|
||||
)
|
||||
format!("INPUT: {input:?}\nERROR LINES:\n{}", lines.join("\n"),)
|
||||
}
|
||||
|
||||
/// The simple-mode near-miss matrix (ADR-0042 §1). Each row is a
|
||||
@@ -71,57 +68,228 @@ fn near_miss_matrix_simple_mode() {
|
||||
// app-lifecycle arg errors. The arg-less commands all reject
|
||||
// trailing junk with "expected end of input" + their usage
|
||||
// (audited 2026-06-05); locked here as regression insurance.
|
||||
("quit now", &["after `quit`, expected end of input", " quit"]),
|
||||
(
|
||||
"quit now",
|
||||
&["after `quit`, expected end of input", " quit"],
|
||||
),
|
||||
// `help` now takes an optional single-word topic (H3), so
|
||||
// `help foo` parses (topic lookup); only a *multi-word*
|
||||
// topic is the near-miss that rejects trailing junk.
|
||||
("help foo bar", &["after `help foo`, expected end of input", "help [<command>]"]),
|
||||
("rebuild now", &["after `rebuild`, expected end of input", " rebuild"]),
|
||||
(
|
||||
"help foo bar",
|
||||
&[
|
||||
"after `help foo`, expected end of input",
|
||||
"help [<command>]",
|
||||
],
|
||||
),
|
||||
(
|
||||
"rebuild now",
|
||||
&["after `rebuild`, expected end of input", " rebuild"],
|
||||
),
|
||||
("new foo", &["after `new`, expected end of input", " new"]),
|
||||
("load foo", &["after `load`, expected end of input", " load"]),
|
||||
("undo foo", &["after `undo`, expected end of input", " undo"]),
|
||||
("redo foo", &["after `redo`, expected end of input", " redo"]),
|
||||
("export foo bar", &["after `export foo`, expected end of input", "export [<path>]"]),
|
||||
("import a b c", &["after `import a`, expected end of input", "import <zip-path>"]),
|
||||
("save sideways", &["after `save`, expected end of input", "save | save as"]),
|
||||
("mode sideways", &["unknown mode 'sideways'", "mode simple | mode advanced"]),
|
||||
("messages louder", &["unknown messages mode 'louder'", "messages short"]),
|
||||
("copy everything", &["unknown copy target 'everything'", "copy all"]),
|
||||
(
|
||||
"load foo",
|
||||
&["after `load`, expected end of input", " load"],
|
||||
),
|
||||
(
|
||||
"undo foo",
|
||||
&["after `undo`, expected end of input", " undo"],
|
||||
),
|
||||
(
|
||||
"redo foo",
|
||||
&["after `redo`, expected end of input", " redo"],
|
||||
),
|
||||
(
|
||||
"export foo bar",
|
||||
&[
|
||||
"after `export foo`, expected end of input",
|
||||
"export [<path>]",
|
||||
],
|
||||
),
|
||||
(
|
||||
"import a b c",
|
||||
&[
|
||||
"after `import a`, expected end of input",
|
||||
"import <zip-path>",
|
||||
],
|
||||
),
|
||||
(
|
||||
"save sideways",
|
||||
&["after `save`, expected end of input", "save | save as"],
|
||||
),
|
||||
(
|
||||
"mode sideways",
|
||||
&["unknown mode 'sideways'", "mode simple | mode advanced"],
|
||||
),
|
||||
(
|
||||
"messages louder",
|
||||
&["unknown messages mode 'louder'", "messages short"],
|
||||
),
|
||||
(
|
||||
"copy everything",
|
||||
&["unknown copy target 'everything'", "copy all"],
|
||||
),
|
||||
// DDL bare + missing-slot
|
||||
("create", &["after `create`, expected `table`", "create table <Name> with pk"]),
|
||||
("create table", &["after `create table`, expected identifier", "create table <Name> with pk"]),
|
||||
("create table T", &["with pk", "create table <Name> with pk"]),
|
||||
(
|
||||
"create",
|
||||
&[
|
||||
"after `create`, expected `table`",
|
||||
"create table <Name> with pk",
|
||||
],
|
||||
),
|
||||
(
|
||||
"create table",
|
||||
&[
|
||||
"after `create table`, expected identifier",
|
||||
"create table <Name> with pk",
|
||||
],
|
||||
),
|
||||
(
|
||||
"create table T",
|
||||
&["with pk", "create table <Name> with pk"],
|
||||
),
|
||||
// G1: relationship cardinality reads as the named construct.
|
||||
("add", &["after `add`, expected `column`, `1:n relationship`", "add 1:n relationship"]),
|
||||
("drop table", &["after `drop table`, expected table name", "drop table <Name>"]),
|
||||
("add column", &["after `add column`, expected table name", "add column [to] [table]"]),
|
||||
("rename", &["after `rename`, expected `column`", "rename column [in] [table]"]),
|
||||
("rename column", &["after `rename column`, expected table name", "rename column [in] [table]"]),
|
||||
("change", &["after `change`, expected `column`", "change column [in] [table]"]),
|
||||
("change column", &["after `change column`, expected table name", "change column [in] [table]"]),
|
||||
(
|
||||
"add",
|
||||
&[
|
||||
"after `add`, expected `column`, `1:n relationship`",
|
||||
"add 1:n relationship",
|
||||
],
|
||||
),
|
||||
(
|
||||
"drop table",
|
||||
&[
|
||||
"after `drop table`, expected table name",
|
||||
"drop table <Name>",
|
||||
],
|
||||
),
|
||||
(
|
||||
"add column",
|
||||
&[
|
||||
"after `add column`, expected table name",
|
||||
"add column [to] [table]",
|
||||
],
|
||||
),
|
||||
(
|
||||
"rename",
|
||||
&[
|
||||
"after `rename`, expected `column`",
|
||||
"rename column [in] [table]",
|
||||
],
|
||||
),
|
||||
(
|
||||
"rename column",
|
||||
&[
|
||||
"after `rename column`, expected table name",
|
||||
"rename column [in] [table]",
|
||||
],
|
||||
),
|
||||
(
|
||||
"change",
|
||||
&[
|
||||
"after `change`, expected `column`",
|
||||
"change column [in] [table]",
|
||||
],
|
||||
),
|
||||
(
|
||||
"change column",
|
||||
&[
|
||||
"after `change column`, expected table name",
|
||||
"change column [in] [table]",
|
||||
],
|
||||
),
|
||||
// data bare + missing-clause
|
||||
("insert", &["after `insert`, expected `into`", "insert into <Table>"]),
|
||||
("insert into", &["after `insert into`, expected table name", "insert into <Table>"]),
|
||||
("insert into T", &["after `insert into T`, expected `values` or `(`", "insert into <Table>"]),
|
||||
("update", &["after `update`, expected table name", "update <Table> set"]),
|
||||
("update T", &["after `update T`, expected `set`", "update <Table> set"]),
|
||||
("update T set x=1", &["expected `where` or `--all-rows`", "update <Table> set"]),
|
||||
("delete", &["after `delete`, expected `from`", "delete from <Table>"]),
|
||||
("delete from", &["after `delete from`, expected table name", "delete from <Table>"]),
|
||||
("delete from T", &["expected `where` or `--all-rows`", "delete from <Table>"]),
|
||||
("seed", &["after `seed`, expected table name", "seed <Table> [count]"]),
|
||||
(
|
||||
"insert",
|
||||
&["after `insert`, expected `into`", "insert into <Table>"],
|
||||
),
|
||||
(
|
||||
"insert into",
|
||||
&[
|
||||
"after `insert into`, expected table name",
|
||||
"insert into <Table>",
|
||||
],
|
||||
),
|
||||
(
|
||||
"insert into T",
|
||||
&[
|
||||
"after `insert into T`, expected `values` or `(`",
|
||||
"insert into <Table>",
|
||||
],
|
||||
),
|
||||
(
|
||||
"update",
|
||||
&["after `update`, expected table name", "update <Table> set"],
|
||||
),
|
||||
(
|
||||
"update T",
|
||||
&["after `update T`, expected `set`", "update <Table> set"],
|
||||
),
|
||||
(
|
||||
"update T set x=1",
|
||||
&["expected `where` or `--all-rows`", "update <Table> set"],
|
||||
),
|
||||
(
|
||||
"delete",
|
||||
&["after `delete`, expected `from`", "delete from <Table>"],
|
||||
),
|
||||
(
|
||||
"delete from",
|
||||
&[
|
||||
"after `delete from`, expected table name",
|
||||
"delete from <Table>",
|
||||
],
|
||||
),
|
||||
(
|
||||
"delete from T",
|
||||
&["expected `where` or `--all-rows`", "delete from <Table>"],
|
||||
),
|
||||
(
|
||||
"seed",
|
||||
&["after `seed`, expected table name", "seed <Table> [count]"],
|
||||
),
|
||||
// Phase 2 (ADR-0048 D2/D1): malformed `set` clause + column-fill.
|
||||
("seed T set", &["after `seed T set`, expected column name", "seed <Table>.<col>"]),
|
||||
(
|
||||
"seed T set",
|
||||
&[
|
||||
"after `seed T set`, expected column name",
|
||||
"seed <Table>.<col>",
|
||||
],
|
||||
),
|
||||
(
|
||||
"seed T set role",
|
||||
&["after `seed T set role`, expected `=`, `in`, `between`, or `as`", "seed <Table>.<col>"],
|
||||
&[
|
||||
"after `seed T set role`, expected `=`, `in`, `between`, or `as`",
|
||||
"seed <Table>.<col>",
|
||||
],
|
||||
),
|
||||
(
|
||||
"seed T.",
|
||||
&[
|
||||
"after `seed T.`, expected column name",
|
||||
"seed <Table>.<col>",
|
||||
],
|
||||
),
|
||||
(
|
||||
"replay",
|
||||
&[
|
||||
"after `replay`, expected string literal or path",
|
||||
"replay <path>",
|
||||
],
|
||||
),
|
||||
(
|
||||
"explain",
|
||||
&[
|
||||
"after `explain`, expected `show`, `update`, or `delete`",
|
||||
"explain show data",
|
||||
],
|
||||
),
|
||||
("seed T.", &["after `seed T.`, expected column name", "seed <Table>.<col>"]),
|
||||
("replay", &["after `replay`, expected string literal or path", "replay <path>"]),
|
||||
("explain", &["after `explain`, expected `show`, `update`, or `delete`", "explain show data"]),
|
||||
// advanced-only entry word typed in simple mode → "this is SQL" rail
|
||||
("select * from T", &["`select` is SQL", "mode advanced"]),
|
||||
("alter table T add column c int", &["`alter` is SQL", "mode advanced"]),
|
||||
(
|
||||
"alter table T add column c int",
|
||||
&["`alter` is SQL", "mode advanced"],
|
||||
),
|
||||
];
|
||||
for (input, needles) in matrix {
|
||||
let lines = error_lines_for(input);
|
||||
@@ -164,26 +332,160 @@ fn near_miss_matrix_committed_multiforms() {
|
||||
// (input, advanced?, required-substrings)
|
||||
let matrix: &[(&str, bool, &[&str])] = &[
|
||||
// add / drop multi-forms (simple)
|
||||
("add index", false, &["after `add index`, expected `on` or `as`", "add index [as <Name>] on"]),
|
||||
("add index on T", false, &["after `add index on T`, expected `(`", "add index [as <Name>] on"]),
|
||||
("add constraint", false, &["after `add constraint`, expected `not`, `unique`, `default`, or `check`", "add constraint not null to"]),
|
||||
("add constraint not null", false, &["after `add constraint not null`, expected `to`", "add constraint not null to"]),
|
||||
("add 1:n relationship", false, &["after `add 1:n relationship`, expected `from` or `as`", "add 1:n relationship"]),
|
||||
("add 1:n relationship from", false, &["after `add 1:n relationship from`, expected table name", "from <Parent>.<col>"]),
|
||||
("drop constraint", false, &["after `drop constraint`, expected `not`, `unique`, `default`, or `check`", "drop constraint (not null"]),
|
||||
("drop constraint not null", false, &["after `drop constraint not null`, expected `from`", "drop constraint (not null"]),
|
||||
("drop index", false, &["after `drop index`, expected `on` or index name", "drop index <Name>", "drop index on <Table>"]),
|
||||
("drop index on T", false, &["after `drop index on T`, expected `(`", "drop index on <Table>"]),
|
||||
("drop relationship", false, &["after `drop relationship`, expected `from` or relationship name", "drop relationship <Name>"]),
|
||||
("show table", false, &["after `show table`, expected table name", "show table <Table>"]),
|
||||
("show relationship", false, &["after `show relationship`, expected relationship name", "show relationship <name>"]),
|
||||
("show index", false, &["after `show index`, expected index name", "show index <name>"]),
|
||||
("change column in table T: c", false, &["after `change column in table T: c`, expected `(`", "change column [in] [table]"]),
|
||||
(
|
||||
"add index",
|
||||
false,
|
||||
&[
|
||||
"after `add index`, expected `on` or `as`",
|
||||
"add index [as <Name>] on",
|
||||
],
|
||||
),
|
||||
(
|
||||
"add index on T",
|
||||
false,
|
||||
&[
|
||||
"after `add index on T`, expected `(`",
|
||||
"add index [as <Name>] on",
|
||||
],
|
||||
),
|
||||
(
|
||||
"add constraint",
|
||||
false,
|
||||
&[
|
||||
"after `add constraint`, expected `not`, `unique`, `default`, or `check`",
|
||||
"add constraint not null to",
|
||||
],
|
||||
),
|
||||
(
|
||||
"add constraint not null",
|
||||
false,
|
||||
&[
|
||||
"after `add constraint not null`, expected `to`",
|
||||
"add constraint not null to",
|
||||
],
|
||||
),
|
||||
(
|
||||
"add 1:n relationship",
|
||||
false,
|
||||
&[
|
||||
"after `add 1:n relationship`, expected `from` or `as`",
|
||||
"add 1:n relationship",
|
||||
],
|
||||
),
|
||||
(
|
||||
"add 1:n relationship from",
|
||||
false,
|
||||
&[
|
||||
"after `add 1:n relationship from`, expected table name",
|
||||
"from <Parent>.<col>",
|
||||
],
|
||||
),
|
||||
(
|
||||
"drop constraint",
|
||||
false,
|
||||
&[
|
||||
"after `drop constraint`, expected `not`, `unique`, `default`, or `check`",
|
||||
"drop constraint (not null",
|
||||
],
|
||||
),
|
||||
(
|
||||
"drop constraint not null",
|
||||
false,
|
||||
&[
|
||||
"after `drop constraint not null`, expected `from`",
|
||||
"drop constraint (not null",
|
||||
],
|
||||
),
|
||||
(
|
||||
"drop index",
|
||||
false,
|
||||
&[
|
||||
"after `drop index`, expected `on` or index name",
|
||||
"drop index <Name>",
|
||||
"drop index on <Table>",
|
||||
],
|
||||
),
|
||||
(
|
||||
"drop index on T",
|
||||
false,
|
||||
&[
|
||||
"after `drop index on T`, expected `(`",
|
||||
"drop index on <Table>",
|
||||
],
|
||||
),
|
||||
(
|
||||
"drop relationship",
|
||||
false,
|
||||
&[
|
||||
"after `drop relationship`, expected `from` or relationship name",
|
||||
"drop relationship <Name>",
|
||||
],
|
||||
),
|
||||
(
|
||||
"show table",
|
||||
false,
|
||||
&[
|
||||
"after `show table`, expected table name",
|
||||
"show table <Table>",
|
||||
],
|
||||
),
|
||||
(
|
||||
"show relationship",
|
||||
false,
|
||||
&[
|
||||
"after `show relationship`, expected relationship name",
|
||||
"show relationship <name>",
|
||||
],
|
||||
),
|
||||
(
|
||||
"show index",
|
||||
false,
|
||||
&[
|
||||
"after `show index`, expected index name",
|
||||
"show index <name>",
|
||||
],
|
||||
),
|
||||
(
|
||||
"change column in table T: c",
|
||||
false,
|
||||
&[
|
||||
"after `change column in table T: c`, expected `(`",
|
||||
"change column [in] [table]",
|
||||
],
|
||||
),
|
||||
// advanced committed multi-forms
|
||||
("create index on", true, &["after `create index on`, expected table name", "create [unique] index"]),
|
||||
("create unique index", true, &["after `create unique index`, expected `on`, identifier, or `if`", "create [unique] index"]),
|
||||
("alter table T add", true, &["after `alter table T add`, expected `column`, `constraint`, `check`, `unique`, `foreign`, or `primary`", "alter table <Table> add column"]),
|
||||
("alter table T drop", true, &["after `alter table T drop`, expected `column` or `constraint`", "alter table <Table> drop column"]),
|
||||
(
|
||||
"create index on",
|
||||
true,
|
||||
&[
|
||||
"after `create index on`, expected table name",
|
||||
"create [unique] index",
|
||||
],
|
||||
),
|
||||
(
|
||||
"create unique index",
|
||||
true,
|
||||
&[
|
||||
"after `create unique index`, expected `on`, identifier, or `if`",
|
||||
"create [unique] index",
|
||||
],
|
||||
),
|
||||
(
|
||||
"alter table T add",
|
||||
true,
|
||||
&[
|
||||
"after `alter table T add`, expected `column`, `constraint`, `check`, `unique`, `foreign`, or `primary`",
|
||||
"alter table <Table> add column",
|
||||
],
|
||||
),
|
||||
(
|
||||
"alter table T drop",
|
||||
true,
|
||||
&[
|
||||
"after `alter table T drop`, expected `column` or `constraint`",
|
||||
"alter table <Table> drop column",
|
||||
],
|
||||
),
|
||||
];
|
||||
for (input, advanced, needles) in matrix {
|
||||
let lines = if *advanced {
|
||||
@@ -265,7 +567,10 @@ fn advanced_mode_usage_block_shows_sql_and_dsl_forms() {
|
||||
// (mode-primary first).
|
||||
let sql_at = joined.find("create table [if not exists]").unwrap();
|
||||
let dsl_at = joined.find("create table <Name> with pk").unwrap();
|
||||
assert!(sql_at < dsl_at, "SQL form should precede the DSL form\n{dump_msg}");
|
||||
assert!(
|
||||
sql_at < dsl_at,
|
||||
"SQL form should precede the DSL form\n{dump_msg}"
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -307,23 +612,94 @@ fn advanced_cross_join_with_on_teaches_no_on_clause() {
|
||||
fn near_miss_matrix_advanced_mode() {
|
||||
let matrix: &[(&str, &[&str])] = &[
|
||||
// SQL select / with (G2, G4)
|
||||
("select", &["expected a projection: `*`, a column, or an expression", "select (* |"]),
|
||||
("select * from", &["after `select * from`, expected table name", "select (* |"]),
|
||||
("with", &["after `with`, expected identifier or `recursive`", "with [recursive]", "as ("]),
|
||||
(
|
||||
"select",
|
||||
&[
|
||||
"expected a projection: `*`, a column, or an expression",
|
||||
"select (* |",
|
||||
],
|
||||
),
|
||||
(
|
||||
"select * from",
|
||||
&["after `select * from`, expected table name", "select (* |"],
|
||||
),
|
||||
(
|
||||
"with",
|
||||
&[
|
||||
"after `with`, expected identifier or `recursive`",
|
||||
"with [recursive]",
|
||||
"as (",
|
||||
],
|
||||
),
|
||||
// create / drop / alter — SQL forms AND the still-valid DSL
|
||||
// fallback forms, SQL-primary first (G3).
|
||||
("create", &["after `create`, expected `table`", "create table [if not exists]", "create [unique] index", "create table <Name> with pk"]),
|
||||
("create table", &["after `create table`, expected identifier or `if`", "create table [if not exists]"]),
|
||||
("create index", &["after `create index`, expected `on`", "create [unique] index"]),
|
||||
("drop", &["after `drop`, expected `table`", "drop table [if exists]", "drop column [from]", "drop relationship"]),
|
||||
("alter", &["after `alter`, expected `table`", "alter table <Table> add column"]),
|
||||
("alter table T", &["expected `add`, `drop`, `rename`, or `alter`", "alter table <Table>"]),
|
||||
(
|
||||
"create",
|
||||
&[
|
||||
"after `create`, expected `table`",
|
||||
"create table [if not exists]",
|
||||
"create [unique] index",
|
||||
"create table <Name> with pk",
|
||||
],
|
||||
),
|
||||
(
|
||||
"create table",
|
||||
&[
|
||||
"after `create table`, expected identifier or `if`",
|
||||
"create table [if not exists]",
|
||||
],
|
||||
),
|
||||
(
|
||||
"create index",
|
||||
&[
|
||||
"after `create index`, expected `on`",
|
||||
"create [unique] index",
|
||||
],
|
||||
),
|
||||
(
|
||||
"drop",
|
||||
&[
|
||||
"after `drop`, expected `table`",
|
||||
"drop table [if exists]",
|
||||
"drop column [from]",
|
||||
"drop relationship",
|
||||
],
|
||||
),
|
||||
(
|
||||
"alter",
|
||||
&[
|
||||
"after `alter`, expected `table`",
|
||||
"alter table <Table> add column",
|
||||
],
|
||||
),
|
||||
(
|
||||
"alter table T",
|
||||
&[
|
||||
"expected `add`, `drop`, `rename`, or `alter`",
|
||||
"alter table <Table>",
|
||||
],
|
||||
),
|
||||
// shared insert/update/delete — must show usage, not the
|
||||
// available-commands fallback (regression guard for the
|
||||
// empty-usage_ids SQL nodes).
|
||||
("insert into T", &["after `insert into T`, expected `values`, `with`, `select`, or `(`", "insert into <Table>"]),
|
||||
("update T", &["after `update T`, expected `set`", "update <Table> set"]),
|
||||
("delete from", &["after `delete from`, expected table name", "delete from <Table>"]),
|
||||
(
|
||||
"insert into T",
|
||||
&[
|
||||
"after `insert into T`, expected `values`, `with`, `select`, or `(`",
|
||||
"insert into <Table>",
|
||||
],
|
||||
),
|
||||
(
|
||||
"update T",
|
||||
&["after `update T`, expected `set`", "update <Table> set"],
|
||||
),
|
||||
(
|
||||
"delete from",
|
||||
&[
|
||||
"after `delete from`, expected table name",
|
||||
"delete from <Table>",
|
||||
],
|
||||
),
|
||||
];
|
||||
for (input, needles) in matrix {
|
||||
let lines = advanced_error_lines_for(input);
|
||||
@@ -365,7 +741,9 @@ fn with_alone_renders_cte_usage_not_select() {
|
||||
.collect();
|
||||
let dump_msg = dump("with", &lines);
|
||||
assert!(
|
||||
lines.iter().any(|l| l.trim_start().starts_with("with ") && l.contains("as (")),
|
||||
lines
|
||||
.iter()
|
||||
.any(|l| l.trim_start().starts_with("with ") && l.contains("as (")),
|
||||
"missing CTE-specific `with … as (…)` usage template\n{dump_msg}",
|
||||
);
|
||||
}
|
||||
@@ -383,7 +761,9 @@ fn create_alone_renders_create_table_usage() {
|
||||
"missing usage: header\n{dump_msg}",
|
||||
);
|
||||
assert!(
|
||||
lines.iter().any(|l| l.contains("create table") && l.contains("with pk")),
|
||||
lines
|
||||
.iter()
|
||||
.any(|l| l.contains("create table") && l.contains("with pk")),
|
||||
"missing create_table usage template\n{dump_msg}",
|
||||
);
|
||||
}
|
||||
@@ -464,8 +844,7 @@ fn unknown_command_falls_back_to_available_commands_list() {
|
||||
.unwrap_or_else(|| panic!("missing available commands line\n{dump_msg}"));
|
||||
// The list must include all ten command-entry keywords.
|
||||
for cmd in [
|
||||
"add", "change", "create", "delete", "drop", "insert",
|
||||
"rename", "replay", "show", "update",
|
||||
"add", "change", "create", "delete", "drop", "insert", "rename", "replay", "show", "update",
|
||||
] {
|
||||
assert!(
|
||||
available.contains(&format!("`{cmd}`")),
|
||||
@@ -543,8 +922,3 @@ fn caret_aligns_under_offending_token() {
|
||||
"caret should sit at column 9 (under `f` of `frobulate` after the `running: ` prefix); got {leading_spaces} spaces in {caret:?}",
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user