From 44523e7118543f783e4bf174e53d741053cd7562 Mon Sep 17 00:00:00 2001 From: Kenzie Davisson Date: Tue, 21 Jul 2026 15:54:32 -0700 Subject: [PATCH 1/8] Add check-unused-code to DCM CI checks. --- .github/workflows/build.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index d1fd75d9c0a..a4abae7fa9c 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -79,9 +79,13 @@ jobs: echo "$(dcm --version)" - name: Setup Dart SDK uses: dart-lang/setup-dart@e51d8e571e22473a2ddebf0ef8a2123f0ab2c02c - - name: Run DCM on root + - name: Run dcm analyze on root run: | dcm analyze packages/devtools_app packages/devtools_app_shared packages/devtools_extensions packages/devtools_shared packages/devtools_test + - name: Run dcm checks on packages + # TODO(https://github.com/flutter/devtools/issues/9906): run on all packages. + run: | + dcm check-unused-code packages/devtools_app test-packages: name: ${{ matrix.os }} ${{ matrix.package }} test From 76e7220f7abf487b488c6e6df7e089b68488e3da Mon Sep 17 00:00:00 2001 From: Kenzie Davisson Date: Tue, 21 Jul 2026 15:57:02 -0700 Subject: [PATCH 2/8] exclude public API --- .github/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index a4abae7fa9c..125a7ca0e6b 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -83,9 +83,9 @@ jobs: run: | dcm analyze packages/devtools_app packages/devtools_app_shared packages/devtools_extensions packages/devtools_shared packages/devtools_test - name: Run dcm checks on packages - # TODO(https://github.com/flutter/devtools/issues/9906): run on all packages. + # TODO(https://github.com/flutter/devtools/issues/9906): run on all DevTools packages. run: | - dcm check-unused-code packages/devtools_app + dcm check-unused-code packages/devtools_app --exclude-public-api test-packages: name: ${{ matrix.os }} ${{ matrix.package }} test From 93ec692f4146672ac23a6e9c089a25bc22ae6387 Mon Sep 17 00:00:00 2001 From: Kenzie Davisson Date: Tue, 21 Jul 2026 16:05:02 -0700 Subject: [PATCH 3/8] Add excludes --- analysis_options.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/analysis_options.yaml b/analysis_options.yaml index f59d8d0ede5..9c0b00deb23 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -156,6 +156,19 @@ dart_code_metrics: maximum-nesting-level: 5 metrics-exclude: - test/** + exclude: + unused-code: + # TODO(https://github.com/dart-lang/sdk/issues/63864): clean up these + # paths once this issue is fixed. These paths are currently relative to + # devtools_app/. + # TODO(https://github.com/flutter/devtools/issues/9906) remove these + # excludes as findings are resolved. + - lib/src/extensions/** + - lib/src/framework/** + - lib/src/screens/** + - lib/src/shared/** + - lib/src/standalone_ui/** + - test/ rules: # - arguments-ordering Too strict # - avoid-banned-imports # TODO(polina-c): add configuration From 6ebb76b19dfe4a540a810841187a1042fa364103 Mon Sep 17 00:00:00 2001 From: Kenzie Davisson Date: Tue, 21 Jul 2026 16:06:32 -0700 Subject: [PATCH 4/8] exclude test/ --- analysis_options.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/analysis_options.yaml b/analysis_options.yaml index 9c0b00deb23..ddb75b26666 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -168,7 +168,7 @@ dart_code_metrics: - lib/src/screens/** - lib/src/shared/** - lib/src/standalone_ui/** - - test/ + - test/** rules: # - arguments-ordering Too strict # - avoid-banned-imports # TODO(polina-c): add configuration From 00d014e641a1256a5a4ea6ff652af85ba6155212 Mon Sep 17 00:00:00 2001 From: Kenzie Davisson Date: Tue, 21 Jul 2026 16:08:03 -0700 Subject: [PATCH 5/8] exclude service/ --- analysis_options.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/analysis_options.yaml b/analysis_options.yaml index ddb75b26666..314eb64b341 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -166,6 +166,7 @@ dart_code_metrics: - lib/src/extensions/** - lib/src/framework/** - lib/src/screens/** + - lib/src/service/** - lib/src/shared/** - lib/src/standalone_ui/** - test/** From 0b896c5809279700fb79d9a1386dda139b465017 Mon Sep 17 00:00:00 2001 From: Kenzie Davisson Date: Tue, 21 Jul 2026 16:09:26 -0700 Subject: [PATCH 6/8] exclude integration_test/ --- analysis_options.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/analysis_options.yaml b/analysis_options.yaml index 314eb64b341..d6dd068cd84 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -163,6 +163,7 @@ dart_code_metrics: # devtools_app/. # TODO(https://github.com/flutter/devtools/issues/9906) remove these # excludes as findings are resolved. + - integration_test/** - lib/src/extensions/** - lib/src/framework/** - lib/src/screens/** From 6d414f7e62a93785633b7762852a94a15d4c7be8 Mon Sep 17 00:00:00 2001 From: Kenzie Davisson Date: Tue, 21 Jul 2026 16:11:10 -0700 Subject: [PATCH 7/8] Ignore false positives in app.dart. --- packages/devtools_app/lib/src/app.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/devtools_app/lib/src/app.dart b/packages/devtools_app/lib/src/app.dart index e51ec18c84a..b19f4506f84 100644 --- a/packages/devtools_app/lib/src/app.dart +++ b/packages/devtools_app/lib/src/app.dart @@ -618,7 +618,9 @@ typedef UrlParametersBuilder = /// /// This avoids issues with widgets in the appbar being hidden by the banner /// in a web or desktop app. +// ignore: unused-code, TODO(https://github.com/flutter/devtools/issues/9907): false positive. class _AlternateCheckedModeBanner extends StatelessWidget { + // ignore: unused-code, TODO(https://github.com/flutter/devtools/issues/9907): false positive. const _AlternateCheckedModeBanner({required this.builder}); final WidgetBuilder builder; From 7c4f8c782facbf1f9424a50913b7e581445cacb3 Mon Sep 17 00:00:00 2001 From: Kenzie Davisson Date: Tue, 21 Jul 2026 16:19:15 -0700 Subject: [PATCH 8/8] remove assert --- packages/devtools_app/lib/src/app.dart | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/devtools_app/lib/src/app.dart b/packages/devtools_app/lib/src/app.dart index b19f4506f84..b948d84edec 100644 --- a/packages/devtools_app/lib/src/app.dart +++ b/packages/devtools_app/lib/src/app.dart @@ -242,12 +242,11 @@ class DevToolsAppState extends State with AutoDisposeMixin { // Provide the appropriate page route. if (pages.containsKey(page)) { Widget widget = pages[page]!(context, page, params, state); - assert(() { + if (kDebugMode) { widget = _AlternateCheckedModeBanner( builder: (context) => pages[page]!(context, page, params, state), ); - return true; - }()); + } return MaterialPage(child: widget); }