From c3467c37f69204f153c37c669af6935e620f8344 Mon Sep 17 00:00:00 2001 From: Seiya Kokushi Date: Sat, 24 Feb 2024 11:57:49 +0900 Subject: [PATCH] fix: ignore defined_value_getter_type if return Future (#100) fix: ignore defined_value_getter_type when return furure --- .../src/lints/defined_value_getter_type.dart | 3 ++- .../test/lints/defined_value_getter_type.dart | 17 ++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/packages/nilts/lib/src/lints/defined_value_getter_type.dart b/packages/nilts/lib/src/lints/defined_value_getter_type.dart index 33be789..5842a43 100644 --- a/packages/nilts/lib/src/lints/defined_value_getter_type.dart +++ b/packages/nilts/lib/src/lints/defined_value_getter_type.dart @@ -59,7 +59,8 @@ class DefinedValueGetterType extends DartLintRule { final returnType = type.returnType; if (returnType is VoidType || returnType is InvalidType || - returnType is NeverType) return; + returnType is NeverType || + returnType.isDartAsyncFuture) return; reporter.reportErrorForNode(_code, node); }); diff --git a/packages/nilts_test/test/lints/defined_value_getter_type.dart b/packages/nilts_test/test/lints/defined_value_getter_type.dart index 1c3e8cc..2142aba 100644 --- a/packages/nilts_test/test/lints/defined_value_getter_type.dart +++ b/packages/nilts_test/test/lints/defined_value_getter_type.dart @@ -11,30 +11,36 @@ class MainButton extends StatelessWidget { const MainButton( void Function() this.onPressed, // expect_lint: defined_value_getter_type - int Function() this.onReturnPressed, { + int Function() this.onReturnPressed, + Future Function() this.onFutureReturnPressed, { void Function()? this.onNullablePressed, void Function(int)? this.onParamPressed, // expect_lint: defined_value_getter_type int Function()? this.onNullableReturnPressed, + Future Function()? this.onNullableFutureReturnPressed, super.key, }); final void Function() onPressed; // expect_lint: defined_value_getter_type final int Function() onReturnPressed; + final Future Function() onFutureReturnPressed; final void Function()? onNullablePressed; final void Function(int)? onParamPressed; // expect_lint: defined_value_getter_type final int Function()? onNullableReturnPressed; + final Future Function()? onNullableFutureReturnPressed; void _onPressed( void Function() onPressed, // expect_lint: defined_value_getter_type - int Function() onReturnPressed, { + int Function() onReturnPressed, + Future Function() onFutureReturnPressed, { void Function()? onNullablePressed, void Function(int)? onParamPressed, // expect_lint: defined_value_getter_type int Function()? onNullableReturnPressed, + Future Function()? onNullableFutureReturnPressed, }) {} @override @@ -44,6 +50,7 @@ class MainButton extends StatelessWidget { _onPressed( () {}, () => 0, + () async => 0, ); onPressed(); }, @@ -55,17 +62,21 @@ class MainButton extends StatelessWidget { final void Function() globalFunction = () {}; // expect_lint: defined_value_getter_type final int Function() globalReturnFunction = () => 0; +final Future Function() globalFutureReturnFunction = () async => 0; const void Function()? globalNullableFunction = null; const void Function(int)? globalParamFunction = null; // expect_lint: defined_value_getter_type const int Function()? globalNullableReturnFunction = null; +const Future Function()? globalNullableFutureReturnFunction = null; void _globalFunction( void Function() onPressed, // expect_lint: defined_value_getter_type - int Function() onReturnPressed, { + int Function() onReturnPressed, + Future Function() onFutureReturnPressed, { void Function()? onNullablePressed, void Function(int)? onParamPressed, // expect_lint: defined_value_getter_type int Function()? onNullableReturnPressed, + Future Function()? onNullableFutureReturnPressed, }) {}