Skip to content

Commit 5a980dc

Browse files
Remove unused code in inspector files. (#9931)
* Remove unused code in inspector_service.dart * Remove unused code in inspector controllers * ignore diagnostics node warnings * formatting * review comments * remove unused getter
1 parent d7c7456 commit 5a980dc

7 files changed

Lines changed: 45 additions & 170 deletions

File tree

analysis_options.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -170,10 +170,6 @@ dart_code_metrics:
170170
# devtools_app/.
171171
# TODO(https://github.com/flutter/devtools/issues/9906) remove these
172172
# excludes as findings are resolved.
173-
# Investigate internal usages of inspector logic before removing.
174-
- lib/src/screens/inspector/**_controller.dart
175-
- lib/src/shared/diagnostics/inspector_service.dart
176-
- lib/src/shared/diagnostics/diagnostics_node.dart
177173
# This fixture has unused code for testing the debugger.
178174
- test/test_infra/fixtures/flutter_app/**
179175
rules:

packages/devtools_app/lib/src/screens/inspector/inspector_controller.dart

Lines changed: 2 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -223,17 +223,10 @@ class InspectorController extends DisposableController
223223

224224
InspectorObjectGroupManager? _layoutGroups;
225225

226-
/// Node being highlighted due to the current hover.
227-
InspectorTreeNode? get currentShowNode => inspectorTree.hover;
228-
229-
set currentShowNode(InspectorTreeNode? node) => inspectorTree.hover = node;
230-
231226
bool flutterAppFrameReady = false;
232227

233228
bool treeLoadStarted = false;
234229

235-
RemoteDiagnosticsNode? subtreeRoot;
236-
237230
bool programmaticSelectionChangeInProgress = false;
238231

239232
ValueListenable<InspectorTreeNode?> get selectedNode => _selectedNode;
@@ -252,8 +245,6 @@ class InspectorController extends DisposableController
252245
_implementationWidgetsHidden;
253246
final _implementationWidgetsHidden = ValueNotifier<bool>(true);
254247

255-
InspectorTreeNode? lastExpanded;
256-
257248
bool isActive = false;
258249

259250
final valueToInspectorTreeNode = <InspectorInstanceRef, InspectorTreeNode>{};
@@ -262,8 +253,6 @@ class InspectorController extends DisposableController
262253
/// not perform any actions.
263254
bool visibleToUser = false;
264255

265-
bool highlightNodesShownInBothTrees = false;
266-
267256
RemoteDiagnosticsNode? get selectedDiagnostic =>
268257
selectedNode.value?.diagnostic;
269258

@@ -276,10 +265,6 @@ class InspectorController extends DisposableController
276265
/// inspector tree load timing.
277266
bool firstInspectorTreeLoadCompleted = false;
278267

279-
FlutterTreeType getTreeType() {
280-
return treeType;
281-
}
282-
283268
Future<void> setVisibleToUser(bool visible) async {
284269
if (visibleToUser == visible) {
285270
return;
@@ -293,24 +278,12 @@ class InspectorController extends DisposableController
293278
}
294279
}
295280

296-
bool hasDiagnosticsValue(InspectorInstanceRef ref) {
297-
return valueToInspectorTreeNode.containsKey(ref);
298-
}
299-
300-
RemoteDiagnosticsNode? findDiagnosticsValue(InspectorInstanceRef ref) {
301-
return valueToInspectorTreeNode[ref]?.diagnostic;
302-
}
303-
304281
void endShowNode() {
305282
highlightShowNode(null);
306283
}
307284

308-
bool highlightShowFromNodeInstanceRef(InspectorInstanceRef ref) {
309-
return highlightShowNode(valueToInspectorTreeNode[ref]);
310-
}
311-
312285
bool highlightShowNode(InspectorTreeNode? node) {
313-
currentShowNode = node;
286+
inspectorTree.hover = node;
314287
return true;
315288
}
316289

@@ -350,11 +323,8 @@ class InspectorController extends DisposableController
350323
_treeGroups?.clear(isolateStopped);
351324
_selectionGroups?.clear(isolateStopped);
352325

353-
currentShowNode = null;
326+
inspectorTree.hover = null;
354327
_selectedNode.value = null;
355-
lastExpanded = null;
356-
357-
subtreeRoot = null;
358328

359329
inspectorTree.root = inspectorTree.createNode();
360330
programmaticSelectionChangeInProgress = false;
@@ -622,35 +592,6 @@ class InspectorController extends DisposableController
622592
valueToInspectorTreeNode.clear();
623593
}
624594

625-
void setSubtreeRoot(
626-
RemoteDiagnosticsNode? node,
627-
RemoteDiagnosticsNode? selection,
628-
) {
629-
selection ??= node;
630-
if (node != null && node == subtreeRoot) {
631-
// Select the new node in the existing subtree.
632-
applyNewSelection(selection);
633-
return;
634-
}
635-
subtreeRoot = node;
636-
if (node == null) {
637-
// Passing in a null node indicates we should clear the subtree and free any memory allocated.
638-
shutdownTree(false);
639-
return;
640-
}
641-
642-
// Clear now to eliminate frame of highlighted nodes flicker.
643-
_clearValueToInspectorTreeNodeMapping();
644-
unawaited(_recomputeTreeRoot(selection));
645-
}
646-
647-
InspectorTreeNode? getSubtreeRootNode() {
648-
if (subtreeRoot == null) {
649-
return null;
650-
}
651-
return valueToInspectorTreeNode[subtreeRoot!.valueRef];
652-
}
653-
654595
void refreshSelection(RemoteDiagnosticsNode? newSelection) {
655596
newSelection ??= selectedDiagnostic;
656597
final matchingNode = findMatchingInspectorTreeNode(newSelection);
@@ -676,26 +617,6 @@ class InspectorController extends DisposableController
676617
animateTo(selectedNode.value);
677618
}
678619

679-
void selectAndShowNode(RemoteDiagnosticsNode? node) {
680-
if (node == null) {
681-
return;
682-
}
683-
selectAndShowInspectorInstanceRef(node.valueRef);
684-
}
685-
686-
void selectAndShowInspectorInstanceRef(InspectorInstanceRef ref) {
687-
final node = valueToInspectorTreeNode[ref];
688-
if (node == null) {
689-
return;
690-
}
691-
setSelectedNode(node);
692-
syncTreeSelection();
693-
}
694-
695-
InspectorTreeNode? getTreeNode(RemoteDiagnosticsNode node) {
696-
return valueToInspectorTreeNode[node.valueRef];
697-
}
698-
699620
@override
700621
void onFlutterFrame() {
701622
flutterAppFrameReady = true;
@@ -754,8 +675,6 @@ class InspectorController extends DisposableController
754675

755676
selectionGroups.promoteNext();
756677

757-
subtreeRoot = newSelection;
758-
759678
applyNewSelection(newSelection);
760679

761680
await _maybeShowNotificationForSelectedNode(
@@ -804,7 +723,6 @@ class InspectorController extends DisposableController
804723

805724
_selectedNode.value = newSelection;
806725

807-
lastExpanded = null; // New selected node takes precedence.
808726
endShowNode();
809727

810728
_updateSelectedErrorFromNode(_selectedNode.value);

packages/devtools_app/lib/src/screens/inspector/inspector_tree_controller.dart

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -220,13 +220,10 @@ class InspectorTreeController extends DisposableController
220220
return true;
221221
}
222222

223-
InspectorTreeNode? get hover => _hover;
224223
InspectorTreeNode? _hover;
225224

226225
double? lastContentWidth;
227226

228-
InspectorTreeRow? _cachedSelectedRow;
229-
230227
/// All cached rows of the tree.
231228
///
232229
/// Similar to [rowsInTree] but:
@@ -290,23 +287,11 @@ class InspectorTreeController extends DisposableController
290287

291288
InspectorTreeRow? rowAtIndex(int index) => _rowsInTree.value.safeGet(index);
292289

290+
@visibleForTesting
293291
double rowOffset(int index) {
294292
return (rowAtIndex(index)?.depth ?? 0) * inspectorColumnIndent;
295293
}
296294

297-
List<InspectorTreeNode> getPathFromSelectedRowToRoot() {
298-
final selectedItem = _cachedSelectedRow?.node;
299-
if (selectedItem == null) return [];
300-
301-
final pathToRoot = <InspectorTreeNode>[selectedItem];
302-
InspectorTreeNode? nextParentNode = selectedItem.parent;
303-
while (nextParentNode != null) {
304-
pathToRoot.add(nextParentNode);
305-
nextParentNode = nextParentNode.parent;
306-
}
307-
return pathToRoot.reversed.toList();
308-
}
309-
310295
set hover(InspectorTreeNode? node) {
311296
if (node == _hover) {
312297
return;
@@ -527,6 +512,7 @@ class InspectorTreeController extends DisposableController
527512
return rowAtIndex(_rowIndexFromNode(node));
528513
}
529514

515+
@visibleForTesting
530516
InspectorTreeRow? rowForOffset(Offset offset) {
531517
final rootLocal = root;
532518
if (rootLocal == null) return null;

packages/devtools_app/lib/src/shared/diagnostics/diagnostics_node.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file or at https://developers.google.com/open-source/licenses/bsd.
44

5+
// ignore_for_file: unused-code, contains the full model class for DiagnosticsNode.
6+
57
/// @docImport '../console/widgets/description.dart';
68
library;
79

packages/devtools_app/lib/src/shared/diagnostics/inspector_service.dart

Lines changed: 2 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ import 'diagnostics_node.dart';
2929
import 'generic_instance_reference.dart';
3030
import 'object_group_api.dart';
3131
import 'primitives/instance_ref.dart';
32-
import 'primitives/source_location.dart';
3332

3433
const _inspectorLibraryUri =
3534
'package:flutter/src/widgets/widget_inspector.dart';
@@ -466,6 +465,7 @@ class InspectorService extends InspectorServiceBase {
466465
);
467466
}
468467

468+
@visibleForTesting
469469
Future<bool> isWidgetCreationTracked() {
470470
return invokeBoolServiceMethodNoArgs(
471471
WidgetInspectorServiceExtensions.isWidgetCreationTracked.name,
@@ -536,6 +536,7 @@ abstract class InspectorObjectGroupBase
536536
);
537537
}
538538

539+
// ignore: unused-code, this is used in g3.
539540
Future<RemoteDiagnosticsNode?> invokeServiceMethodWithArgReturningNode(
540541
String methodName,
541542
String arg,
@@ -834,27 +835,6 @@ abstract class InspectorObjectGroupBase
834835
return properties;
835836
}
836837

837-
Future<SourcePosition?> getPropertyLocationHelper(
838-
ClassRef classRef,
839-
String name,
840-
) async {
841-
final clazz = await inspectorLibrary.getClass(classRef, this) as Class;
842-
for (final f in clazz.functions!) {
843-
// TODO(pq): check for properties that match name.
844-
if (f.name == name) {
845-
final func = await inspectorLibrary.getFunc(f, this) as Func;
846-
final location = func.location;
847-
throw UnimplementedError(
848-
'getSourcePosition not implemented. $location',
849-
);
850-
}
851-
}
852-
final superClass = clazz.superClass;
853-
return superClass == null
854-
? null
855-
: getPropertyLocationHelper(superClass, name);
856-
}
857-
858838
Future<List<RemoteDiagnosticsNode>> getListHelper(
859839
InspectorInstanceRef? instanceRef,
860840
String methodName,
@@ -1135,23 +1115,6 @@ class ObjectGroup extends InspectorObjectGroupBase {
11351115
);
11361116
}
11371117

1138-
Future<RemoteDiagnosticsNode?> getDetailsSubtree(
1139-
RemoteDiagnosticsNode? node, {
1140-
int subtreeDepth = 2,
1141-
}) async {
1142-
if (node == null) return null;
1143-
final args = {
1144-
'objectGroup': groupName,
1145-
'arg': node.valueRef.id,
1146-
'subtreeDepth': subtreeDepth.toString(),
1147-
};
1148-
final json = await invokeServiceMethodDaemonParams(
1149-
WidgetInspectorServiceExtensions.getDetailsSubtree.name,
1150-
args,
1151-
);
1152-
return parseDiagnosticsNodeHelper(json as Map<String, Object?>?);
1153-
}
1154-
11551118
Future<void> invokeSetFlexProperties(
11561119
InspectorInstanceRef ref,
11571120
MainAxisAlignment? mainAxisAlignment,
@@ -1203,15 +1166,6 @@ class ObjectGroup extends InspectorObjectGroupBase {
12031166
),
12041167
);
12051168
}
1206-
1207-
Future<List<String>> getPubRootDirectories() async {
1208-
final invocationResult = await invokeServiceMethodDaemonParams(
1209-
WidgetInspectorServiceExtensions.getPubRootDirectories.name,
1210-
{},
1211-
);
1212-
final directories = (invocationResult as List?)?.cast<Object>();
1213-
return List.from(directories ?? []);
1214-
}
12151169
}
12161170

12171171
abstract class InspectorServiceClient {

packages/devtools_app/test/screens/inspector/inspector_integration_test.dart

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -708,3 +708,22 @@ Future<void> _resetPubRootDirectories(InspectorService inspectorService) async {
708708
await inspectorService.addPubRootDirectories([rootLibrary]);
709709
}
710710
}
711+
712+
extension _ObjectGroupTestExtension on ObjectGroup {
713+
Future<RemoteDiagnosticsNode?> getDetailsSubtree(
714+
RemoteDiagnosticsNode? node, {
715+
int subtreeDepth = 2,
716+
}) async {
717+
if (node == null) return null;
718+
final args = {
719+
'objectGroup': groupName,
720+
'arg': node.valueRef.id,
721+
'subtreeDepth': subtreeDepth.toString(),
722+
};
723+
final json = await invokeServiceMethodDaemonParams(
724+
WidgetInspectorServiceExtensions.getDetailsSubtree.name,
725+
args,
726+
);
727+
return parseDiagnosticsNodeHelper(json as Map<String, Object?>?);
728+
}
729+
}

0 commit comments

Comments
 (0)