Skip to content

Commit e77329c

Browse files
scheglovCommit Queue
authored andcommitted
DeCo. Don't check for isSynthetic in getClassMembers.
The clients don't care, we need just to know if there is something or not. Change-Id: Iaad9a4fb838a7776184e57ab165d160a8daf6105 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/465200 Commit-Queue: Konstantin Shcheglov <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]>
1 parent e1ea898 commit e77329c

File tree

2 files changed

+70
-53
lines changed

2 files changed

+70
-53
lines changed

pkg/analysis_server/lib/src/services/search/hierarchy.dart

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,10 @@ List<Element> getChildren(Element parent, [String? name]) {
4141
/// Returns direct non-synthetic children of the given [InterfaceElement].
4242
///
4343
/// Includes: fields, accessors and methods.
44-
/// Excludes: constructors and synthetic elements.
44+
/// Excludes: constructors.
4545
List<Element> getClassMembers(InterfaceElement clazz, [String? name]) {
4646
var members = <Element>[];
4747
visitChildren(clazz, (Element element) {
48-
if (element.isSynthetic) {
49-
return false;
50-
}
5148
if (element is ConstructorElement) {
5249
return false;
5350
}
@@ -265,7 +262,7 @@ Future<List<FormalParameterElement>> getHierarchyPositionalParameters(
265262
///
266263
/// Includes: fields, accessors and methods.
267264
///
268-
/// Excludes: constructors and synthetic elements.
265+
/// Excludes: constructors.
269266
List<Element> getMembers(InterfaceElement clazz) {
270267
var classElements = [...clazz.allSupertypes.map((e) => e.element), clazz];
271268
var members = <Element>[];

pkg/analysis_server/test/services/search/hierarchy_test.dart

Lines changed: 68 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44

55
import 'package:analysis_server/src/services/search/hierarchy.dart';
66
import 'package:analysis_server/src/services/search/search_engine_internal.dart';
7+
import 'package:analyzer/dart/element/element.dart';
78
import 'package:analyzer/src/util/performance/operation_performance.dart';
9+
import 'package:collection/collection.dart';
810
import 'package:test/test.dart';
911
import 'package:test_reflective_loader/test_reflective_loader.dart';
1012

@@ -362,16 +364,28 @@ class B extends A {
362364
mb2() {}
363365
}
364366
''');
365-
{
366-
var classA = findElement2.class_('A');
367-
var members = getClassMembers(classA);
368-
expect(members.map((e) => e.name), unorderedEquals(['ma1', 'ma2']));
369-
}
370-
{
371-
var classB = findElement2.class_('B');
372-
var members = getClassMembers(classB);
373-
expect(members.map((e) => e.name), unorderedEquals(['mb1', 'mb2']));
367+
368+
void check(InterfaceElement element, String expected) {
369+
var members = getClassMembers(element);
370+
var lines = members.map((e) => '${e.kind.name}: ${e.name}\n').sorted();
371+
expect(lines.join(), expected);
374372
}
373+
374+
var A = findElement2.class_('A');
375+
check(A, '''
376+
FIELD: ma1
377+
GETTER: ma1
378+
METHOD: ma2
379+
SETTER: ma1
380+
''');
381+
382+
var B = findElement2.class_('B');
383+
check(B, '''
384+
FIELD: mb1
385+
GETTER: mb1
386+
METHOD: mb2
387+
SETTER: mb1
388+
''');
375389
}
376390

377391
Future<void> test_getHierarchyNamedParameters() async {
@@ -477,45 +491,51 @@ class B extends A {
477491
mb2() {}
478492
}
479493
''');
480-
{
481-
var classA = findElement2.class_('A');
482-
var members = getMembers(classA);
483-
expect(
484-
members.map((e) => e.name),
485-
unorderedEquals([
486-
'ma1',
487-
'ma2',
488-
'==',
489-
'toString',
490-
'hashCode',
491-
'noSuchMethod',
492-
'runtimeType',
493-
'hash',
494-
'hashAll',
495-
'hashAllUnordered',
496-
]),
497-
);
498-
}
499-
{
500-
var classB = findElement2.class_('B');
501-
var members = getMembers(classB);
502-
expect(
503-
members.map((e) => e.name),
504-
unorderedEquals([
505-
'mb1',
506-
'mb2',
507-
'ma1',
508-
'ma2',
509-
'==',
510-
'toString',
511-
'hashCode',
512-
'noSuchMethod',
513-
'runtimeType',
514-
'hash',
515-
'hashAll',
516-
'hashAllUnordered',
517-
]),
518-
);
494+
495+
void check(InterfaceElement element, String expected) {
496+
var members = getMembers(element);
497+
var lines = members.map((e) => '${e.kind.name}: ${e.name}\n').sorted();
498+
expect(lines.join(), expected);
519499
}
500+
501+
var A = findElement2.class_('A');
502+
check(A, '''
503+
FIELD: hashCode
504+
FIELD: ma1
505+
FIELD: runtimeType
506+
GETTER: hashCode
507+
GETTER: ma1
508+
GETTER: runtimeType
509+
METHOD: ==
510+
METHOD: hash
511+
METHOD: hashAll
512+
METHOD: hashAllUnordered
513+
METHOD: ma2
514+
METHOD: noSuchMethod
515+
METHOD: toString
516+
SETTER: ma1
517+
''');
518+
519+
var B = findElement2.class_('B');
520+
check(B, '''
521+
FIELD: hashCode
522+
FIELD: ma1
523+
FIELD: mb1
524+
FIELD: runtimeType
525+
GETTER: hashCode
526+
GETTER: ma1
527+
GETTER: mb1
528+
GETTER: runtimeType
529+
METHOD: ==
530+
METHOD: hash
531+
METHOD: hashAll
532+
METHOD: hashAllUnordered
533+
METHOD: ma2
534+
METHOD: mb2
535+
METHOD: noSuchMethod
536+
METHOD: toString
537+
SETTER: ma1
538+
SETTER: mb1
539+
''');
520540
}
521541
}

0 commit comments

Comments
 (0)