avoid-escaping-inner-quotes

Same as avoid_escaping_inner_quotes in Dart lints

Group
Style
Path
lint/style/avoid-escaping-inner-quotes
Default
Off, opt in
Origin
Dart lints
Rule
63 of 512

Flags a string literal that escapes its own quote character when switching the outer quotes would remove every escape.

A single-quoted literal whose value contains ' but no " (or the mirror case for double quotes) can swap its delimiters and drop the backslashes:

var s = 'It\'s here';   // flagged
var s = "It's here";    // preferred
var s = 'It\'s "here"'; // fine: both quote kinds appear

Only literal text counts; interpolated expressions are ignored. Raw and multiline (triple-quoted) literals are never flagged. Each part of an adjacent-string concatenation is checked on its own.

Invalid

example.dartdart
void use(Object o) {}

void main() {
  var name = 'Ann';
  use('It\'s here');
  use("Say \"hi\"");
  use('Don\'t panic, $name');
  use("${name} said \"no\"");
  use('It\x27s escaped');
  use('a\'b' 'plain');
}
Unnecessary escape of '''; change the outer quotes to '"'.
4 var name = 'Ann';
5 use('It\'s here');
Unnecessary escape of '"'; change the outer quotes to '''.
5 use('It\'s here');
6 use("Say \"hi\"");
Unnecessary escape of '''; change the outer quotes to '"'.
6 use("Say \"hi\"");
7 use('Don\'t panic, $name');
Unnecessary escape of '"'; change the outer quotes to '''.
7 use('Don\'t panic, $name');
8 use("${name} said \"no\"");
Unnecessary escape of '''; change the outer quotes to '"'.
8 use("${name} said \"no\"");
9 use('It\x27s escaped');
Unnecessary escape of '''; change the outer quotes to '"'.
9 use('It\x27s escaped');
10 use('a\'b' 'plain');

Valid

example.dartdart
void use(Object o) {}

void main() {
  var name = 'Ann';
  use("It's here");
  use('Say "hi"');
  use('It\'s "both" kinds');
  use("Mixed 'single' and \"double\"");
  use(r"raw ' quote");
  use('''It\'s multiline''');
  use('plain $name');
  use("${name.contains("'")}");
}

Configure avoid-escaping-inner-quotes

Set its severity in falcon.json. See the configuration guide.

falcon.jsonjson
{
  "linter": {
    "rules": {
      "style": {
        "avoid-escaping-inner-quotes": "error"
      }
    }
  }
}

Or silence one occurrence with a suppression comment; the reason is required.

example.dartdart
// falcon-ignore lint/style/avoid-escaping-inner-quotes: <reason>