メインコンテンツにスキップ

close_sinks

安定版

dart:coreSink インスタンスを閉じます。

詳細

#

dart:coreSink インスタンスには close を呼び出すこと

Sink インスタンスを閉じることで、メモリリークや予期せぬ動作を防ぎます。

悪い例

dart
class A {
  IOSink _sinkA;
  void init(filename) {
    _sinkA = File(filename).openWrite(); // LINT
  }
}

悪い例

dart
void someFunction() {
  IOSink _sinkF; // LINT
}

良い例

dart
class B {
  IOSink _sinkB;
  void init(filename) {
    _sinkB = File(filename).openWrite(); // OK
  }

  void dispose(filename) {
    _sinkB.close();
  }
}

良い例

dart
void someFunctionOK() {
  IOSink _sinkFOK; // OK
  _sinkFOK.close();
}

既知の制限事項

このルールでは、Sink のインスタンス化とクロージャのすべてのパターンを追跡するわけではありません。詳細については、sdk#57882 を参照してください。

有効にする

#

close_sinks ルールを有効にするには、analysis_options.yaml ファイルの linter > rules の下に close_sinks を追加します。

analysis_options.yaml
yaml
linter:
  rules:
    - close_sinks

代わりに YAML マップ構文を使用してリンタールールを設定している場合は、linter > rules の下に close_sinks: true を追加します。

analysis_options.yaml
yaml
linter:
  rules:
    close_sinks: true