Skip to content

Commit ae07ae6

Browse files
bwilkersonCommit Queue
authored andcommitted
Migrate two builder tests
Change-Id: I2886e2f50e5974185709716f01fd4defc74126fc Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/400801 Commit-Queue: Brian Wilkerson <[email protected]> Reviewed-by: Phil Quitslund <[email protected]>
1 parent 4d7d290 commit ae07ae6

File tree

4 files changed

+80
-60
lines changed

4 files changed

+80
-60
lines changed

pkg/analyzer/analyzer_use_new_elements.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,8 +172,6 @@ test/generated/static_type_analyzer_test.dart
172172
test/generated/type_system_test.dart
173173
test/id_tests/assigned_variables_test.dart
174174
test/id_tests/type_constraint_generation_test.dart
175-
test/src/dart/analysis/driver_caching_test.dart
176-
test/src/dart/analysis/driver_test.dart
177175
test/src/dart/analysis/index_test.dart
178176
test/src/dart/analysis/result_printer.dart
179177
test/src/dart/analysis/results/get_element_declaration_test.dart

pkg/analyzer/test/src/dart/analysis/driver_caching_test.dart

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import 'dart:async';
66
import 'dart:collection';
77

88
import 'package:analyzer/dart/analysis/results.dart';
9-
import 'package:analyzer/dart/element/element.dart';
9+
import 'package:analyzer/dart/element/element2.dart';
1010
import 'package:analyzer/error/error.dart';
1111
import 'package:analyzer/file_system/file_system.dart';
1212
import 'package:analyzer/src/dart/analysis/driver.dart';
@@ -141,7 +141,7 @@ class A {
141141
''');
142142

143143
await resolveTestFile();
144-
assertType(findElement.field('f').type, 'Set<int>');
144+
assertType(findElement2.field('f').type, 'Set<int>');
145145

146146
// The summary for the library was linked.
147147
_assertContainsLinkedCycle({testFile}, andClear: true);
@@ -161,7 +161,7 @@ class A {
161161
''');
162162

163163
await resolveTestFile();
164-
assertType(findElement.field('f').type, 'Set<int>');
164+
assertType(findElement2.field('f').type, 'Set<int>');
165165

166166
// We changed the initializer of the final field. But it is static, so
167167
// even though the class hsa a constant constructor, we don't need its
@@ -225,7 +225,7 @@ import 'a.dart';
225225
// from the `LibraryReader` current at the moment of `exportNamespace`
226226
// access, not necessary the same that created this instance.
227227
var aResult = await driver.getLibraryByUri('package:test/a.dart');
228-
var aElement = (aResult as LibraryElementResult).element;
228+
var aElement = (aResult as LibraryElementResult).element2;
229229

230230
// The element is valid at this point.
231231
expect(driver.isValidLibraryElement(aElement), isTrue);
@@ -241,7 +241,7 @@ import 'a.dart';
241241
expect(driver.isValidLibraryElement(aElement), isFalse);
242242

243243
// But its `exportNamespace` can be accessed.
244-
expect(aElement.exportNamespace.definedNames, isNotEmpty);
244+
expect(aElement.exportNamespace.definedNames2, isNotEmpty);
245245

246246
// TODO(scheglov): This is not quite right.
247247
// When we return `LibraryElement` that is not fully read, and read
@@ -361,21 +361,21 @@ export 'a.dart';
361361

362362
var analysisContext = contextFor(macroFile);
363363

364-
Future<LibraryElement> getLibrary(String uriStr) async {
364+
Future<LibraryElement2> getLibrary(String uriStr) async {
365365
var result = await analysisContext.currentSession.getLibraryByUri(uriStr)
366366
as LibraryElementResult;
367-
return result.element;
367+
return result.element2;
368368
}
369369

370370
// This macro generates `MacroA`, but not `MacroB`.
371371
{
372372
var libraryA = await getLibrary('package:test/a.dart');
373-
expect(libraryA.getClass('MacroA'), isNotNull);
374-
expect(libraryA.getClass('MacroB'), isNull);
373+
expect(libraryA.getClass2('MacroA'), isNotNull);
374+
expect(libraryA.getClass2('MacroB'), isNull);
375375
// This propagates transitively.
376376
var libraryB = await getLibrary('package:test/b.dart');
377-
expect(libraryB.exportNamespace.get('MacroA'), isNotNull);
378-
expect(libraryB.exportNamespace.get('MacroB'), isNull);
377+
expect(libraryB.exportNamespace.get2('MacroA'), isNotNull);
378+
expect(libraryB.exportNamespace.get2('MacroB'), isNull);
379379
}
380380

381381
_assertContainsLinkedCycle({a});
@@ -391,12 +391,12 @@ export 'a.dart';
391391
// This macro generates `MacroB`, but not `MacroA`.
392392
{
393393
var libraryA = await getLibrary('package:test/a.dart');
394-
expect(libraryA.getClass('MacroA'), isNull);
395-
expect(libraryA.getClass('MacroB'), isNotNull);
394+
expect(libraryA.getClass2('MacroA'), isNull);
395+
expect(libraryA.getClass2('MacroB'), isNotNull);
396396
// This propagates transitively.
397397
var libraryB = await getLibrary('package:test/b.dart');
398-
expect(libraryB.exportNamespace.get('MacroA'), isNull);
399-
expect(libraryB.exportNamespace.get('MacroB'), isNotNull);
398+
expect(libraryB.exportNamespace.get2('MacroA'), isNull);
399+
expect(libraryB.exportNamespace.get2('MacroB'), isNotNull);
400400
}
401401

402402
_assertContainsLinkedCycle({a});
@@ -665,7 +665,7 @@ macro class MyMacro implements ClassTypesMacro {
665665
}
666666

667667
extension on AnalysisDriver {
668-
bool isValidLibraryElement(LibraryElement element) {
668+
bool isValidLibraryElement(LibraryElement2 element) {
669669
return identical(element.session, currentSession);
670670
}
671671
}

pkg/analyzer/test/src/dart/analysis/driver_test.dart

Lines changed: 41 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ import 'dart:async';
77
import 'package:analyzer/dart/analysis/results.dart';
88
import 'package:analyzer/dart/ast/ast.dart';
99
import 'package:analyzer/dart/ast/visitor.dart';
10+
import 'package:analyzer/dart/element/element2.dart';
1011
import 'package:analyzer/error/error.dart';
1112
import 'package:analyzer/file_system/file_system.dart';
1213
import 'package:analyzer/src/dart/analysis/analysis_context_collection.dart';
1314
import 'package:analyzer/src/dart/analysis/driver.dart';
1415
import 'package:analyzer/src/dart/analysis/driver_event.dart' as driver_events;
1516
import 'package:analyzer/src/dart/analysis/file_state.dart';
1617
import 'package:analyzer/src/dart/analysis/status.dart';
17-
import 'package:analyzer/src/dart/element/element.dart';
1818
import 'package:analyzer/src/error/codes.dart';
1919
import 'package:analyzer/src/lint/linter.dart';
2020
import 'package:analyzer/src/lint/registry.dart';
@@ -1421,10 +1421,10 @@ import 'c.dart';
14211421

14221422
var driver = driverFor(testFile);
14231423

1424-
Future<LibraryElementImpl> getLibrary(String shortName) async {
1424+
Future<LibraryElement2> getLibrary(String shortName) async {
14251425
var uriStr = 'package:test/$shortName';
14261426
var result = await driver.getLibraryByUriValid(uriStr);
1427-
return result.element as LibraryElementImpl;
1427+
return result.element2;
14281428
}
14291429

14301430
var a_element = await getLibrary('a.dart');
@@ -1500,10 +1500,10 @@ import 'b.dart';
15001500

15011501
var driver = driverFor(testFile);
15021502

1503-
Future<LibraryElementImpl> getLibrary(String shortName) async {
1503+
Future<LibraryElement2> getLibrary(String shortName) async {
15041504
var uriStr = 'package:test/$shortName';
15051505
var result = await driver.getLibraryByUriValid(uriStr);
1506-
return result.element as LibraryElementImpl;
1506+
return result.element2;
15071507
}
15081508

15091509
var b_element = await getLibrary('b.dart');
@@ -1572,21 +1572,18 @@ final B1 = A1;
15721572
driver.addFile2(a);
15731573
driver.addFile2(b);
15741574

1575-
configuration.libraryConfiguration.unitConfiguration.variableTypesSelector =
1576-
(result) {
1577-
switch (result.uriStr) {
1578-
case 'package:test/a.dart':
1579-
return [
1580-
result.findElement.topVar('A1'),
1581-
result.findElement.topVar('A2'),
1582-
];
1583-
case 'package:test/b.dart':
1584-
return [
1585-
result.findElement.topVar('B1'),
1586-
];
1587-
default:
1588-
return [];
1589-
}
1575+
configuration.libraryConfiguration.unitConfiguration
1576+
.variableTypesSelector2 = (result) {
1577+
return switch (result.uriStr) {
1578+
'package:test/a.dart' => [
1579+
result.findElement2.topVar('A1'),
1580+
result.findElement2.topVar('A2'),
1581+
],
1582+
'package:test/b.dart' => [
1583+
result.findElement2.topVar('B1'),
1584+
],
1585+
_ => []
1586+
};
15901587
};
15911588

15921589
// We have results for both "a" and "b".
@@ -1662,12 +1659,12 @@ final A2 = B1;
16621659
driver.addFile2(a);
16631660
driver.priorityFiles2 = [a];
16641661

1665-
configuration.libraryConfiguration.unitConfiguration.variableTypesSelector =
1666-
(result) {
1662+
configuration.libraryConfiguration.unitConfiguration
1663+
.variableTypesSelector2 = (result) {
16671664
switch (result.uriStr) {
16681665
case 'package:test/a.dart':
16691666
return [
1670-
result.findElement.topVar('V'),
1667+
result.findElement2.topVar('V'),
16711668
];
16721669
default:
16731670
return [];
@@ -2470,8 +2467,8 @@ class B {}
24702467

24712468
var result = await driver.getLibraryByUri(aUriStr);
24722469
result as LibraryElementResult;
2473-
expect(result.element.getClass('A'), isNotNull);
2474-
expect(result.element.getClass('B'), isNotNull);
2470+
expect(result.element2.getClass2('A'), isNotNull);
2471+
expect(result.element2.getClass2('B'), isNotNull);
24752472

24762473
// It is an error to ask for a library when we know that it is a part.
24772474
expect(
@@ -3359,10 +3356,10 @@ final foo = 0;
33593356
var driver = driverFor(testFile);
33603357
var collector = DriverEventCollector(driver);
33613358

3362-
configuration.libraryConfiguration.unitConfiguration.variableTypesSelector =
3363-
(result) {
3359+
configuration.libraryConfiguration.unitConfiguration
3360+
.variableTypesSelector2 = (result) {
33643361
return [
3365-
result.findElement.topVar('foo'),
3362+
result.findElement2.topVar('foo'),
33663363
];
33673364
};
33683365

@@ -3696,8 +3693,10 @@ void bar() {}
36963693
var driver = driverFor(testFile);
36973694
var collector = DriverEventCollector(driver);
36983695

3699-
configuration.unitElementConfiguration.elementSelector = (unitElement) {
3700-
return unitElement.functions;
3696+
configuration.unitElementConfiguration.elementSelector2 = (unitFragment) {
3697+
return unitFragment.functions2
3698+
.map((fragment) => fragment.element)
3699+
.toList();
37013700
};
37023701

37033702
collector.getUnitElement('A1', a);
@@ -3709,8 +3708,8 @@ void bar() {}
37093708
flags: isLibrary
37103709
enclosing: <null>
37113710
selectedElements
3712-
package:test/a.dart::<fragment>::@function::foo
3713-
package:test/a.dart::<fragment>::@function::bar
3711+
package:test/a.dart::@function::foo
3712+
package:test/a.dart::@function::bar
37143713
[status] idle
37153714
''');
37163715
}
@@ -3781,8 +3780,8 @@ class A {}
37813780
collector.getUnitElement('AM1', a_macro);
37823781
await collector.nextStatusIdle();
37833782

3784-
configuration.unitElementConfiguration.elementSelector = (unitElement) {
3785-
return unitElement.classes;
3783+
configuration.unitElementConfiguration.elementSelector2 = (fragment) {
3784+
return fragment.classes2.map((fragment) => fragment.element).toList();
37863785
};
37873786

37883787
// The enclosing element is an augmentation library, in a library.
@@ -3795,7 +3794,7 @@ class A {}
37953794
flags: isMacroPart isPart
37963795
enclosing: package:test/a.dart::<fragment>
37973796
selectedElements
3798-
package:test/a.dart::@fragment::package:test/a.macro.dart::@class::B
3797+
package:test/a.dart::@class::B
37993798
[status] idle
38003799
''');
38013800
}
@@ -3814,12 +3813,12 @@ final B = A;
38143813
var driver = driverFor(testFile);
38153814
var collector = DriverEventCollector(driver);
38163815

3817-
configuration.libraryConfiguration.unitConfiguration.variableTypesSelector =
3818-
(result) {
3816+
configuration.libraryConfiguration.unitConfiguration
3817+
.variableTypesSelector2 = (result) {
38193818
switch (result.uriStr) {
38203819
case 'package:test/b.dart':
38213820
return [
3822-
result.findElement.topVar('B'),
3821+
result.findElement2.topVar('B'),
38233822
];
38243823
default:
38253824
return [];
@@ -5324,16 +5323,16 @@ final B = 0;
53245323
driver.addFile2(a);
53255324
driver.addFile2(b);
53265325

5327-
configuration.libraryConfiguration.unitConfiguration.variableTypesSelector =
5328-
(result) {
5326+
configuration.libraryConfiguration.unitConfiguration
5327+
.variableTypesSelector2 = (result) {
53295328
switch (result.uriStr) {
53305329
case 'package:test/a.dart':
53315330
return [
5332-
result.findElement.topVar('A'),
5331+
result.findElement2.topVar('A'),
53335332
];
53345333
case 'package:test/b.dart':
53355334
return [
5336-
result.findElement.topVar('B'),
5335+
result.findElement2.topVar('B'),
53375336
];
53385337
default:
53395338
return [];

pkg/analyzer/test/src/dart/analysis/result_printer.dart

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import 'package:analyzer/dart/analysis/results.dart';
66
import 'package:analyzer/dart/ast/ast.dart';
77
import 'package:analyzer/dart/element/element.dart';
8+
import 'package:analyzer/dart/element/element2.dart';
89
import 'package:analyzer/dart/element/type.dart';
910
import 'package:analyzer/error/error.dart';
1011
import 'package:analyzer/src/dart/analysis/driver_event.dart' as events;
@@ -287,6 +288,10 @@ class DriverEventsPrinter {
287288
var elementsToWrite =
288289
configuration.unitElementConfiguration.elementSelector(unitElement);
289290
elementPrinter.writeElementList('selectedElements', elementsToWrite);
291+
292+
var elementsToWrite2 = configuration.unitElementConfiguration
293+
.elementSelector2(unitElement as LibraryFragment);
294+
elementPrinter.writeElementList2('selectedElements', elementsToWrite2);
290295
}
291296
}
292297

@@ -580,6 +585,21 @@ class ResolvedUnitResultPrinter {
580585
elementPrinter.writeType(variable.type);
581586
},
582587
);
588+
589+
var variableTypesToWrite2 = configuration.variableTypesSelector2(result);
590+
sink.writeElements(
591+
'selectedVariableTypes',
592+
variableTypesToWrite2,
593+
(variable) {
594+
sink.writeIndent();
595+
sink.write('${variable.name3}: ');
596+
if (variable is LocalVariableElement2) {
597+
elementPrinter.writeType(variable.type);
598+
} else if (variable is TopLevelVariableElement2) {
599+
elementPrinter.writeType(variable.type);
600+
}
601+
},
602+
);
583603
});
584604
}
585605
}
@@ -590,6 +610,8 @@ class ResolvedUnitResultPrinterConfiguration {
590610
Map<String, DartType> Function(ResolvedUnitResult) typesSelector = (_) => {};
591611
List<VariableElement> Function(ResolvedUnitResult) variableTypesSelector =
592612
(_) => [];
613+
List<Element2> Function(ResolvedUnitResult) variableTypesSelector2 =
614+
(_) => [];
593615
bool Function(FileResult) withContentPredicate = (_) => false;
594616
}
595617

@@ -610,4 +632,5 @@ final class SchedulerStatusEvent extends DriverEvent {
610632

611633
class UnitElementPrinterConfiguration {
612634
List<Element> Function(CompilationUnitElement) elementSelector = (_) => [];
635+
List<Element2> Function(LibraryFragment) elementSelector2 = (_) => [];
613636
}

0 commit comments

Comments
 (0)