From d7b14e3ba8a2497182d8a35d466f8ff074beda6d Mon Sep 17 00:00:00 2001 From: vlkonoshenko Date: Tue, 10 May 2022 10:47:47 +0300 Subject: [PATCH] fix: avoid-border-all is triggered even when it is not a const --- CHANGELOG.md | 4 ++++ .../rules/rules_list/avoid_border_all/visitor.dart | 4 +++- .../avoid_border_all/examples/example.dart | 13 ++++++++++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cfe91a418..dbfbfbc2a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## Unreleased + +* fix: [`avoid-border-all`](https://dartcodemetrics.dev/docs/rules/flutter/avoid-border-all) is triggered even when it is not a const. + ## 4.15.0 * fix: [`format-comment`](https://dartcodemetrics.dev/docs/rules/common/format-comment) is listing the macros from dart doc. diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_border_all/visitor.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_border_all/visitor.dart index 5c10dd054b..c96358afab 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_border_all/visitor.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_border_all/visitor.dart @@ -21,7 +21,9 @@ class _Visitor extends RecursiveAstVisitor { final arg = (argument as NamedExpression).expression; if (arg is Literal) { continue; - } else if (arg is MethodInvocation || arg is ConditionalExpression) { + } else if (arg is MethodInvocation || + arg is ConditionalExpression || + arg is PropertyAccess) { isAllConst = false; } else if (arg is SimpleIdentifier) { final element = arg.staticElement; diff --git a/test/src/analyzers/lint_analyzer/rules/rules_list/avoid_border_all/examples/example.dart b/test/src/analyzers/lint_analyzer/rules/rules_list/avoid_border_all/examples/example.dart index 838a450e53..9cb1db7723 100644 --- a/test/src/analyzers/lint_analyzer/rules/rules_list/avoid_border_all/examples/example.dart +++ b/test/src/analyzers/lint_analyzer/rules/rules_list/avoid_border_all/examples/example.dart @@ -1,5 +1,5 @@ class MyWidget extends StatelessWidget { - Widget build(BuildContext _) => Column(children: [ + Widget build(BuildContext context) => Column(children: [ const Container(border: Border.fromBorderSide(BorderSide())), Container(border: Border.all()), // LINT Container( @@ -27,6 +27,11 @@ class MyWidget extends StatelessWidget { style: BorderStyle.none, ), ), + Container( + border: Border.all( + color: Theme.of(context).color, + ), + ), Container( border: Border.all( color: const Color(0), @@ -106,3 +111,9 @@ class Widget { } class BuildContext {} + +class Theme { + const color = Color(0); + + static Color of(BuildContext context) => color; +}