close_sinks
Close instances of dart.core.Sink.
This rule is available as of Dart 2.0.0.
Details
DO invoke close on instances of dart.core.Sink.
Closing instances of Sink prevents memory leaks and unexpected behavior.
BAD:
class A {
IOSink _sinkA;
void init(filename) {
_sinkA = File(filename).openWrite(); // LINT
}
}
BAD:
void someFunction() {
IOSink _sinkF; // LINT
}
GOOD:
class B {
IOSink _sinkB;
void init(filename) {
_sinkB = File(filename).openWrite(); // OK
}
void dispose(filename) {
_sinkB.close();
}
}
GOOD:
void someFunctionOK() {
IOSink _sinkFOK; // OK
_sinkFOK.close();
}
Usage
To enable the close_sinks rule,
add close_sinks under linter > rules in your
analysis_options.yaml
file:
linter:
rules:
- close_sinks