Skip to content

Commit 076b05f

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Migrate class/enum/etc tests by moving forPromotableFields.
Change-Id: I90d8c48ea3b53adcd214f5d6ee0ee243a4d91acc Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/402886 Reviewed-by: Samuel Rawlins <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent d5a860e commit 076b05f

File tree

6 files changed

+32
-110
lines changed

6 files changed

+32
-110
lines changed

pkg/analyzer/analyzer_use_new_elements.txt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ lib/src/dart/resolver/function_reference_resolver.dart
7171
lib/src/dart/resolver/invocation_inference_helper.dart
7272
lib/src/dart/resolver/invocation_inferrer.dart
7373
lib/src/dart/resolver/lexical_lookup.dart
74-
lib/src/dart/resolver/list_pattern_resolver.dart
7574
lib/src/dart/resolver/method_invocation_resolver.dart
7675
lib/src/dart/resolver/named_type_resolver.dart
7776
lib/src/dart/resolver/postfix_expression_resolver.dart
@@ -181,15 +180,11 @@ test/src/dart/element/type_visitor_test.dart
181180
test/src/dart/element/upper_lower_bound_test.dart
182181
test/src/dart/micro/simple_file_resolver_test.dart
183182
test/src/dart/resolution/constant_test.dart
184-
test/src/dart/resolution/generic_type_alias_test.dart
185183
test/src/dart/resolution/prefix_element_test.dart
186184
test/src/dart/resolution/resolution.dart
187185
test/src/dart/resolution/scope_test.dart
188186
test/src/dart/resolution/super_formal_parameter_test.dart
189187
test/src/summary/element_text.dart
190-
test/src/summary/elements/class_test.dart
191-
test/src/summary/elements/enum_test.dart
192-
test/src/summary/elements/extension_type_test.dart
193188
test/src/summary/elements/metadata_test.dart
194189
test/src/summary/elements/top_level_variable_test.dart
195190
test/src/summary/elements/type_inference_test.dart
@@ -198,7 +193,6 @@ test/src/summary/macro_test.dart
198193
test/src/summary/resolved_ast_printer.dart
199194
test/src/task/strong/dart2_inference_test.dart
200195
test/src/task/strong/inferred_type_test.dart
201-
test/src/utilities/extensions/analysis_session_test.dart
202196
test/src/utilities/extensions/library_element_test.dart
203197
test/util/element_printer.dart
204198
test/util/id_testing_helper.dart

pkg/analyzer/lib/src/dart/element/element.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6372,6 +6372,7 @@ abstract class InterfaceElementImpl2 extends InstanceElementImpl2
63726372

63736373
@override
63746374
List<ConstructorElement2> get constructors2 {
6375+
firstFragment.constructors; // TODO(scheglov): remove eventually
63756376
return constructors
63766377
.map((constructor) =>
63776378
(constructor.declaration as ConstructorElementImpl).element)

pkg/analyzer/test/src/summary/element_text.dart

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,35 @@ class ElementTextConfiguration {
7878
this.filter = _filterTrue,
7979
});
8080

81+
void forPromotableFields({
82+
Set<String> classNames = const {},
83+
Set<String> enumNames = const {},
84+
Set<String> extensionTypeNames = const {},
85+
Set<String> mixinNames = const {},
86+
Set<String> fieldNames = const {},
87+
}) {
88+
filter = (e) {
89+
if (e is ClassElement) {
90+
return classNames.contains(e.name);
91+
} else if (e is ConstructorElement) {
92+
return false;
93+
} else if (e is EnumElement) {
94+
return enumNames.contains(e.name);
95+
} else if (e is ExtensionTypeElement) {
96+
return extensionTypeNames.contains(e.name);
97+
} else if (e is FieldElement) {
98+
return fieldNames.isEmpty || fieldNames.contains(e.name);
99+
} else if (e is MixinElement) {
100+
return mixinNames.contains(e.name);
101+
} else if (e is PartElement) {
102+
return false;
103+
} else if (e is PropertyAccessorElement) {
104+
return false;
105+
}
106+
return true;
107+
};
108+
}
109+
81110
static bool _filterTrue(Object element) => true;
82111
}
83112

pkg/analyzer/test/src/summary/elements/class_test.dart

Lines changed: 2 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
import 'package:analyzer/dart/element/element.dart';
65
import 'package:test/test.dart';
76
import 'package:test_reflective_loader/test_reflective_loader.dart';
87

98
import '../../dart/resolution/node_text_expectations.dart';
10-
import '../element_text.dart';
119
import '../elements_base.dart';
1210

1311
main() {
@@ -27181,8 +27179,8 @@ mixin M {}
2718127179
class X = A with M;
2718227180
''');
2718327181

27184-
var X = library.getClass('X')!;
27185-
expect(X.constructors, hasLength(1));
27182+
var X = library.getClass2('X')!;
27183+
expect(X.constructors2, hasLength(1));
2718627184
}
2718727185

2718827186
test_classAlias_constructors_default() async {
@@ -43717,35 +43715,3 @@ class ClassElementTest_keepLinking extends ClassElementTest {
4371743715
@override
4371843716
bool get keepLinkingLibraries => true;
4371943717
}
43720-
43721-
// TODO(scheglov): This is duplicate.
43722-
extension on ElementTextConfiguration {
43723-
void forPromotableFields({
43724-
Set<String> classNames = const {},
43725-
Set<String> enumNames = const {},
43726-
Set<String> extensionTypeNames = const {},
43727-
Set<String> mixinNames = const {},
43728-
Set<String> fieldNames = const {},
43729-
}) {
43730-
filter = (e) {
43731-
if (e is ClassElement) {
43732-
return classNames.contains(e.name);
43733-
} else if (e is ConstructorElement) {
43734-
return false;
43735-
} else if (e is EnumElement) {
43736-
return enumNames.contains(e.name);
43737-
} else if (e is ExtensionTypeElement) {
43738-
return extensionTypeNames.contains(e.name);
43739-
} else if (e is FieldElement) {
43740-
return fieldNames.isEmpty || fieldNames.contains(e.name);
43741-
} else if (e is MixinElement) {
43742-
return mixinNames.contains(e.name);
43743-
} else if (e is PartElement) {
43744-
return false;
43745-
} else if (e is PropertyAccessorElement) {
43746-
return false;
43747-
}
43748-
return true;
43749-
};
43750-
}
43751-
}

pkg/analyzer/test/src/summary/elements/enum_test.dart

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
import 'package:analyzer/dart/element/element.dart';
65
import 'package:test_reflective_loader/test_reflective_loader.dart';
76

87
import '../../dart/resolution/node_text_expectations.dart';
9-
import '../element_text.dart';
108
import '../elements_base.dart';
119

1210
main() {
@@ -21829,35 +21827,3 @@ class EnumElementTest_keepLinking extends EnumElementTest {
2182921827
@override
2183021828
bool get keepLinkingLibraries => true;
2183121829
}
21832-
21833-
// TODO(scheglov): This is duplicate.
21834-
extension on ElementTextConfiguration {
21835-
void forPromotableFields({
21836-
Set<String> classNames = const {},
21837-
Set<String> enumNames = const {},
21838-
Set<String> extensionTypeNames = const {},
21839-
Set<String> mixinNames = const {},
21840-
Set<String> fieldNames = const {},
21841-
}) {
21842-
filter = (e) {
21843-
if (e is ClassElement) {
21844-
return classNames.contains(e.name);
21845-
} else if (e is ConstructorElement) {
21846-
return false;
21847-
} else if (e is EnumElement) {
21848-
return enumNames.contains(e.name);
21849-
} else if (e is ExtensionTypeElement) {
21850-
return extensionTypeNames.contains(e.name);
21851-
} else if (e is FieldElement) {
21852-
return fieldNames.isEmpty || fieldNames.contains(e.name);
21853-
} else if (e is MixinElement) {
21854-
return mixinNames.contains(e.name);
21855-
} else if (e is PartElement) {
21856-
return false;
21857-
} else if (e is PropertyAccessorElement) {
21858-
return false;
21859-
}
21860-
return true;
21861-
};
21862-
}
21863-
}

pkg/analyzer/test/src/summary/elements/extension_type_test.dart

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
import 'package:analyzer/dart/element/element.dart';
65
import 'package:test_reflective_loader/test_reflective_loader.dart';
76

87
import '../../dart/resolution/node_text_expectations.dart';
9-
import '../element_text.dart';
108
import '../elements_base.dart';
119

1210
main() {
@@ -10502,35 +10500,3 @@ class ExtensionTypeElementTest_keepLinking extends ElementsBaseTest
1050210500
@override
1050310501
bool get keepLinkingLibraries => true;
1050410502
}
10505-
10506-
// TODO(scheglov): This is duplicate.
10507-
extension on ElementTextConfiguration {
10508-
void forPromotableFields({
10509-
Set<String> classNames = const {},
10510-
Set<String> enumNames = const {},
10511-
Set<String> extensionTypeNames = const {},
10512-
Set<String> mixinNames = const {},
10513-
Set<String> fieldNames = const {},
10514-
}) {
10515-
filter = (e) {
10516-
if (e is ClassElement) {
10517-
return classNames.contains(e.name);
10518-
} else if (e is ConstructorElement) {
10519-
return false;
10520-
} else if (e is EnumElement) {
10521-
return enumNames.contains(e.name);
10522-
} else if (e is ExtensionTypeElement) {
10523-
return extensionTypeNames.contains(e.name);
10524-
} else if (e is FieldElement) {
10525-
return fieldNames.isEmpty || fieldNames.contains(e.name);
10526-
} else if (e is MixinElement) {
10527-
return mixinNames.contains(e.name);
10528-
} else if (e is PartElement) {
10529-
return false;
10530-
} else if (e is PropertyAccessorElement) {
10531-
return false;
10532-
}
10533-
return true;
10534-
};
10535-
}
10536-
}

0 commit comments

Comments
 (0)