For AI agents: A markdown version of this page is available at https://docs.datadoghq.com/security/code_security/static_analysis/static_analysis_rules/dart-code-quality/unnecessary-new.md. A documentation index is available at /llms.txt.
This product is not supported for your selected Datadog site. ().

Metadata

ID: dart-code-quality/unnecessary-new

Language: Dart

Severity: Notice

Category: Code Style

Description

Since Dart 2, the new keyword is optional when calling a constructor. It does not change behavior and only adds noise to the code.

Prefer constructor calls without new, such as List() instead of new List().

Non-Compliant Code Examples

class Foo {
  Foo();
  Foo.named();
}

void main() {
  var list = new List<int>();
  var foo = new Foo();
  var named = new Foo.named();
}

Compliant Code Examples

class Foo {
  Foo();
  Foo.named();
}

void main() {
  var list = List<int>();
  var map = Map<String, int>();
  var foo = Foo();
  var named = Foo.named();
  const value = Foo();
}
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

Seamless integrations. Try Datadog Code Security