unnecessary_set_literal
花括號不必要地將此表示式包裹在一個集合字面量中。
描述
#當一個返回型別為 void、Future<void> 或 FutureOr<void> 的函式使用了表示式函式體 (=>) 並且返回的值是一個包含單個元素的集合字面量時,分析器會生成此診斷。
雖然語言允許,但從 void 函式返回值是沒有用的,因為它無法在呼叫點被使用。在這種特定情況下,返回值通常是由於對語法存在誤解。花括號是不必要的,可以移除。
示例
#以下程式碼會產生此診斷,因為傳遞給 g 的閉包返回型別為 void,但卻返回了一個集合
dart
void f() {
g(() => {1});
}
void g(void Function() p) {}常見修復
#移除值周圍的花括號
dart
void f() {
g(() => 1);
}
void g(void Function() p) {}