| Index: pkg/analysis_server/test/src/utilities/change_builder_dart_test.dart
|
| diff --git a/pkg/analysis_server/test/src/utilities/change_builder_dart_test.dart b/pkg/analysis_server/test/src/utilities/change_builder_dart_test.dart
|
| index 4e88aec0b984c84e9cee16cd543ba9f23e15f682..b549f7a008f27796b27648537b3a3500c2c6dfe9 100644
|
| --- a/pkg/analysis_server/test/src/utilities/change_builder_dart_test.dart
|
| +++ b/pkg/analysis_server/test/src/utilities/change_builder_dart_test.dart
|
| @@ -2,8 +2,6 @@
|
| // for details. All rights reserved. Use of this source code is governed by a
|
| // BSD-style license that can be found in the LICENSE file.
|
|
|
| -library analysis_server.test.src.utilities.change_builder_dart_test;
|
| -
|
| import 'package:analysis_server/plugin/protocol/protocol.dart';
|
| import 'package:analysis_server/src/provisional/edit/utilities/change_builder_core.dart';
|
| import 'package:analysis_server/src/provisional/edit/utilities/change_builder_dart.dart';
|
| @@ -11,7 +9,7 @@ import 'package:analysis_server/src/utilities/change_builder_dart.dart';
|
| import 'package:analyzer/dart/ast/ast.dart';
|
| import 'package:analyzer/dart/ast/standard_resolution_map.dart';
|
| import 'package:analyzer/dart/element/element.dart';
|
| -import 'package:analyzer/src/generated/source.dart';
|
| +import 'package:analyzer/dart/element/type.dart';
|
| import 'package:test/test.dart';
|
| import 'package:test_reflective_loader/test_reflective_loader.dart';
|
|
|
| @@ -27,22 +25,28 @@ main() {
|
|
|
| @reflectiveTest
|
| class DartChangeBuilderImplTest extends AbstractContextTest {
|
| + @override
|
| + bool get enableNewAnalysisDriver => true;
|
| +
|
| test_createFileEditBuilder() async {
|
| - Source source = addSource('/test.dart', 'library test;');
|
| - await resolveLibraryUnit(source);
|
| + String path = '/test.dart';
|
| + addSource(path, 'library test;');
|
| int timeStamp = 54;
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| DartFileEditBuilderImpl fileEditBuilder =
|
| - builder.createFileEditBuilder(source, timeStamp);
|
| + await builder.createFileEditBuilder(path, timeStamp);
|
| expect(fileEditBuilder, new isInstanceOf<DartFileEditBuilder>());
|
| SourceFileEdit fileEdit = fileEditBuilder.fileEdit;
|
| - expect(fileEdit.file, source.fullName);
|
| + expect(fileEdit.file, path);
|
| expect(fileEdit.fileStamp, timeStamp);
|
| }
|
| }
|
|
|
| @reflectiveTest
|
| class DartEditBuilderImplTest extends AbstractContextTest {
|
| + @override
|
| + bool get enableNewAnalysisDriver => true;
|
| +
|
| SourceEdit getEdit(DartChangeBuilderImpl builder) {
|
| SourceChange sourceChange = builder.sourceChange;
|
| expect(sourceChange, isNotNull);
|
| @@ -56,16 +60,15 @@ class DartEditBuilderImplTest extends AbstractContextTest {
|
| }
|
|
|
| test_writeClassDeclaration_interfaces() async {
|
| - Source source = addSource('/test.dart', 'class A {}');
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| - ClassDeclaration declaration = unit.declarations[0];
|
| + String path = '/test.dart';
|
| + addSource(path, 'class A {}');
|
| + DartType typeA = (await driver.getUnitElement(path)).getType('A').type;
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(0, (EditBuilder builder) {
|
| - (builder as DartEditBuilder).writeClassDeclaration('C', interfaces: [
|
| - resolutionMap.elementDeclaredByClassDeclaration(declaration).type
|
| - ]);
|
| + (builder as DartEditBuilder)
|
| + .writeClassDeclaration('C', interfaces: [typeA]);
|
| });
|
| });
|
| SourceEdit edit = getEdit(builder);
|
| @@ -74,11 +77,11 @@ class DartEditBuilderImplTest extends AbstractContextTest {
|
| }
|
|
|
| test_writeClassDeclaration_isAbstract() async {
|
| - Source source = addSource('/test.dart', '');
|
| - await resolveLibraryUnit(source);
|
| + String path = '/test.dart';
|
| + addSource(path, '');
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(0, (EditBuilder builder) {
|
| (builder as DartEditBuilder)
|
| .writeClassDeclaration('C', isAbstract: true);
|
| @@ -89,11 +92,11 @@ class DartEditBuilderImplTest extends AbstractContextTest {
|
| }
|
|
|
| test_writeClassDeclaration_memberWriter() async {
|
| - Source source = addSource('/test.dart', '');
|
| - await resolveLibraryUnit(source);
|
| + String path = '/test.dart';
|
| + addSource(path, '');
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(0, (EditBuilder builder) {
|
| (builder as DartEditBuilder).writeClassDeclaration('C',
|
| memberWriter: () {
|
| @@ -106,16 +109,15 @@ class DartEditBuilderImplTest extends AbstractContextTest {
|
| }
|
|
|
| test_writeClassDeclaration_mixins_noSuperclass() async {
|
| - Source source = addSource('/test.dart', 'class A {}');
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| - ClassDeclaration classA = unit.declarations[0];
|
| + String path = '/test.dart';
|
| + addSource(path, 'class A {}');
|
| + DartType typeA = (await driver.getUnitElement(path)).getType('A').type;
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(0, (EditBuilder builder) {
|
| - (builder as DartEditBuilder).writeClassDeclaration('C', mixins: [
|
| - resolutionMap.elementDeclaredByClassDeclaration(classA).type
|
| - ]);
|
| + (builder as DartEditBuilder)
|
| + .writeClassDeclaration('C', mixins: [typeA]);
|
| });
|
| });
|
| SourceEdit edit = getEdit(builder);
|
| @@ -124,20 +126,16 @@ class DartEditBuilderImplTest extends AbstractContextTest {
|
| }
|
|
|
| test_writeClassDeclaration_mixins_superclass() async {
|
| - Source source = addSource('/test.dart', 'class A {} class B {}');
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| - ClassDeclaration classA = unit.declarations[0];
|
| - ClassDeclaration classB = unit.declarations[1];
|
| + String path = '/test.dart';
|
| + addSource(path, 'class A {} class B {}');
|
| + DartType typeA = (await driver.getUnitElement(path)).getType('A').type;
|
| + DartType typeB = (await driver.getUnitElement(path)).getType('B').type;
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(0, (EditBuilder builder) {
|
| - (builder as DartEditBuilder).writeClassDeclaration('C',
|
| - mixins: [
|
| - resolutionMap.elementDeclaredByClassDeclaration(classB).type
|
| - ],
|
| - superclass:
|
| - resolutionMap.elementDeclaredByClassDeclaration(classA).type);
|
| + (builder as DartEditBuilder)
|
| + .writeClassDeclaration('C', mixins: [typeB], superclass: typeA);
|
| });
|
| });
|
| SourceEdit edit = getEdit(builder);
|
| @@ -146,11 +144,11 @@ class DartEditBuilderImplTest extends AbstractContextTest {
|
| }
|
|
|
| test_writeClassDeclaration_nameGroupName() async {
|
| - Source source = addSource('/test.dart', '');
|
| - await resolveLibraryUnit(source);
|
| + String path = '/test.dart';
|
| + addSource(path, '');
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(0, (EditBuilder builder) {
|
| (builder as DartEditBuilder)
|
| .writeClassDeclaration('C', nameGroupName: 'name');
|
| @@ -168,17 +166,15 @@ class DartEditBuilderImplTest extends AbstractContextTest {
|
| }
|
|
|
| test_writeClassDeclaration_superclass() async {
|
| - Source source = addSource('/test.dart', 'class B {}');
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| - ClassDeclaration declaration = unit.declarations[0];
|
| + String path = '/test.dart';
|
| + addSource(path, 'class B {}');
|
| + DartType typeB = (await driver.getUnitElement(path)).getType('B').type;
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(0, (EditBuilder builder) {
|
| - (builder as DartEditBuilder).writeClassDeclaration('C',
|
| - superclass: resolutionMap
|
| - .elementDeclaredByClassDeclaration(declaration)
|
| - .type);
|
| + (builder as DartEditBuilder)
|
| + .writeClassDeclaration('C', superclass: typeB);
|
| });
|
| });
|
| SourceEdit edit = getEdit(builder);
|
| @@ -186,12 +182,12 @@ class DartEditBuilderImplTest extends AbstractContextTest {
|
| }
|
|
|
| test_writeFieldDeclaration_initializerWriter() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {}';
|
| - Source source = addSource('/test.dart', content);
|
| - await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilder).writeFieldDeclaration('f',
|
| initializerWriter: () {
|
| @@ -204,12 +200,12 @@ class DartEditBuilderImplTest extends AbstractContextTest {
|
| }
|
|
|
| test_writeFieldDeclaration_isConst() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {}';
|
| - Source source = addSource('/test.dart', content);
|
| - await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilder).writeFieldDeclaration('f', isConst: true);
|
| });
|
| @@ -219,12 +215,12 @@ class DartEditBuilderImplTest extends AbstractContextTest {
|
| }
|
|
|
| test_writeFieldDeclaration_isConst_isFinal() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {}';
|
| - Source source = addSource('/test.dart', content);
|
| - await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilder)
|
| .writeFieldDeclaration('f', isConst: true, isFinal: true);
|
| @@ -235,12 +231,12 @@ class DartEditBuilderImplTest extends AbstractContextTest {
|
| }
|
|
|
| test_writeFieldDeclaration_isFinal() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {}';
|
| - Source source = addSource('/test.dart', content);
|
| - await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilder).writeFieldDeclaration('f', isFinal: true);
|
| });
|
| @@ -250,12 +246,12 @@ class DartEditBuilderImplTest extends AbstractContextTest {
|
| }
|
|
|
| test_writeFieldDeclaration_isStatic() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {}';
|
| - Source source = addSource('/test.dart', content);
|
| - await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilder).writeFieldDeclaration('f', isStatic: true);
|
| });
|
| @@ -265,12 +261,12 @@ class DartEditBuilderImplTest extends AbstractContextTest {
|
| }
|
|
|
| test_writeFieldDeclaration_nameGroupName() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {}';
|
| - Source source = addSource('/test.dart', content);
|
| - await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilder)
|
| .writeFieldDeclaration('f', nameGroupName: 'name');
|
| @@ -290,19 +286,16 @@ class DartEditBuilderImplTest extends AbstractContextTest {
|
| }
|
|
|
| test_writeFieldDeclaration_type_typeGroupName() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {} class B {}';
|
| - Source source = addSource('/test.dart', content);
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| - ClassDeclaration declaration = unit.declarations[0];
|
| + addSource(path, content);
|
| + DartType typeA = (await driver.getUnitElement(path)).getType('A').type;
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| - (builder as DartEditBuilder).writeFieldDeclaration('f',
|
| - type: resolutionMap
|
| - .elementDeclaredByClassDeclaration(declaration)
|
| - .type,
|
| - typeGroupName: 'type');
|
| + (builder as DartEditBuilder)
|
| + .writeFieldDeclaration('f', type: typeA, typeGroupName: 'type');
|
| });
|
| });
|
| SourceEdit edit = getEdit(builder);
|
| @@ -319,12 +312,12 @@ class DartEditBuilderImplTest extends AbstractContextTest {
|
| }
|
|
|
| test_writeGetterDeclaration_bodyWriter() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {}';
|
| - Source source = addSource('/test.dart', content);
|
| - await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilder).writeGetterDeclaration('g',
|
| bodyWriter: () {
|
| @@ -337,12 +330,12 @@ class DartEditBuilderImplTest extends AbstractContextTest {
|
| }
|
|
|
| test_writeGetterDeclaration_isStatic() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {}';
|
| - Source source = addSource('/test.dart', content);
|
| - await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilder)
|
| .writeGetterDeclaration('g', isStatic: true);
|
| @@ -353,12 +346,12 @@ class DartEditBuilderImplTest extends AbstractContextTest {
|
| }
|
|
|
| test_writeGetterDeclaration_nameGroupName() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {}';
|
| - Source source = addSource('/test.dart', content);
|
| - await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilder)
|
| .writeGetterDeclaration('g', nameGroupName: 'name');
|
| @@ -378,18 +371,16 @@ class DartEditBuilderImplTest extends AbstractContextTest {
|
| }
|
|
|
| test_writeGetterDeclaration_returnType() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {} class B {}';
|
| - Source source = addSource('/test.dart', content);
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| - ClassDeclaration classA = unit.declarations[0];
|
| + addSource(path, content);
|
| + DartType typeA = (await driver.getUnitElement(path)).getType('A').type;
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilder).writeGetterDeclaration('g',
|
| - returnType:
|
| - resolutionMap.elementDeclaredByClassDeclaration(classA).type,
|
| - returnTypeGroupName: 'returnType');
|
| + returnType: typeA, returnTypeGroupName: 'returnType');
|
| });
|
| });
|
| SourceEdit edit = getEdit(builder);
|
| @@ -406,23 +397,21 @@ class DartEditBuilderImplTest extends AbstractContextTest {
|
| }
|
|
|
| test_writeOverrideOfInheritedMember() async {
|
| + String path = '/test.dart';
|
| String content = '''
|
| class A {
|
| A add(A a) => null;
|
| }
|
| class B extends A {
|
| }''';
|
| - Source source = addSource('/test.dart', content);
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| - ClassDeclaration declaration = unit.declarations[0];
|
| + addSource(path, content);
|
| + ClassElement classA = (await driver.getUnitElement(path)).getType('A');
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| - (builder as DartEditBuilder).writeOverrideOfInheritedMember(
|
| - resolutionMap
|
| - .elementDeclaredByClassDeclaration(declaration)
|
| - .methods[0]);
|
| + (builder as DartEditBuilder)
|
| + .writeOverrideOfInheritedMember(classA.methods[0]);
|
| });
|
| });
|
| SourceEdit edit = getEdit(builder);
|
| @@ -435,16 +424,17 @@ A add(A a) {
|
| }
|
|
|
| test_writeParameters_named() async {
|
| + String path = '/test.dart';
|
| String content = 'f(int i, {String s}) {}';
|
| - Source source = addSource('/test.dart', content);
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
| + CompilationUnit unit = (await driver.getResult(path))?.unit;
|
| FunctionDeclaration f = unit.declarations[0];
|
| FormalParameterList parameters = f.functionExpression.parameters;
|
| Iterable<ParameterElement> elements = parameters.parameters
|
| .map(resolutionMap.elementDeclaredByFormalParameter);
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilder).writeParameters(elements);
|
| });
|
| @@ -454,16 +444,17 @@ A add(A a) {
|
| }
|
|
|
| test_writeParameters_positional() async {
|
| + String path = '/test.dart';
|
| String content = 'f(int i, [String s]) {}';
|
| - Source source = addSource('/test.dart', content);
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
| + CompilationUnit unit = (await driver.getResult(path))?.unit;
|
| FunctionDeclaration f = unit.declarations[0];
|
| FormalParameterList parameters = f.functionExpression.parameters;
|
| Iterable<ParameterElement> elements = parameters.parameters
|
| .map(resolutionMap.elementDeclaredByFormalParameter);
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilder).writeParameters(elements);
|
| });
|
| @@ -473,16 +464,17 @@ A add(A a) {
|
| }
|
|
|
| test_writeParameters_required() async {
|
| + String path = '/test.dart';
|
| String content = 'f(int i, String s) {}';
|
| - Source source = addSource('/test.dart', content);
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
| + CompilationUnit unit = (await driver.getResult(path))?.unit;
|
| FunctionDeclaration f = unit.declarations[0];
|
| FormalParameterList parameters = f.functionExpression.parameters;
|
| Iterable<ParameterElement> elements = parameters.parameters
|
| .map(resolutionMap.elementDeclaredByFormalParameter);
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilder).writeParameters(elements);
|
| });
|
| @@ -492,19 +484,20 @@ A add(A a) {
|
| }
|
|
|
| test_writeParametersMatchingArguments_named() async {
|
| + String path = '/test.dart';
|
| String content = '''
|
| f(int i, String s) {
|
| g(s, index: i);
|
| }''';
|
| - Source source = addSource('/test.dart', content);
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
| + CompilationUnit unit = (await driver.getResult(path))?.unit;
|
| FunctionDeclaration f = unit.declarations[0];
|
| BlockFunctionBody body = f.functionExpression.body;
|
| ExpressionStatement statement = body.block.statements[0];
|
| MethodInvocation invocation = statement.expression;
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilder)
|
| .writeParametersMatchingArguments(invocation.argumentList);
|
| @@ -516,19 +509,20 @@ f(int i, String s) {
|
| }
|
|
|
| test_writeParametersMatchingArguments_required() async {
|
| + String path = '/test.dart';
|
| String content = '''
|
| f(int i, String s) {
|
| g(s, i);
|
| }''';
|
| - Source source = addSource('/test.dart', content);
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
| + CompilationUnit unit = (await driver.getResult(path))?.unit;
|
| FunctionDeclaration f = unit.declarations[0];
|
| BlockFunctionBody body = f.functionExpression.body;
|
| ExpressionStatement statement = body.block.statements[0];
|
| MethodInvocation invocation = statement.expression;
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilder)
|
| .writeParametersMatchingArguments(invocation.argumentList);
|
| @@ -539,16 +533,15 @@ f(int i, String s) {
|
| }
|
|
|
| test_writeParameterSource() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {}';
|
| - Source source = addSource('/test.dart', content);
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| - ClassDeclaration classA = unit.declarations[0];
|
| + addSource(path, content);
|
| + DartType typeA = (await driver.getUnitElement(path)).getType('A').type;
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| - (builder as DartEditBuilder).writeParameterSource(
|
| - resolutionMap.elementDeclaredByClassDeclaration(classA).type, 'a');
|
| + (builder as DartEditBuilder).writeParameterSource(typeA, 'a');
|
| });
|
| });
|
| SourceEdit edit = getEdit(builder);
|
| @@ -556,12 +549,13 @@ f(int i, String s) {
|
| }
|
|
|
| test_writeType_dynamic() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {}';
|
| - Source source = addSource('/test.dart', content);
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
| + CompilationUnit unit = (await driver.getResult(path))?.unit;
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilder).writeType(resolutionMap
|
| .elementDeclaredByCompilationUnit(unit)
|
| @@ -575,21 +569,16 @@ f(int i, String s) {
|
| }
|
|
|
| test_writeType_genericType() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {} class B<E> {}';
|
| - Source source = addSource('/test.dart', content);
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| - ClassDeclaration classA = unit.declarations[0];
|
| - ClassDeclaration classB = unit.declarations[1];
|
| + addSource(path, content);
|
| + InterfaceType typeA = (await driver.getUnitElement(path)).getType('A').type;
|
| + InterfaceType typeB = (await driver.getUnitElement(path)).getType('B').type;
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| - (builder as DartEditBuilder).writeType(resolutionMap
|
| - .elementDeclaredByClassDeclaration(classB)
|
| - .type
|
| - .instantiate([
|
| - resolutionMap.elementDeclaredByClassDeclaration(classA).type
|
| - ]));
|
| + (builder as DartEditBuilder).writeType(typeB.instantiate([typeA]));
|
| });
|
| });
|
| SourceEdit edit = getEdit(builder);
|
| @@ -597,17 +586,15 @@ f(int i, String s) {
|
| }
|
|
|
| test_writeType_groupName() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {} class B extends A {} class C extends B {}';
|
| - Source source = addSource('/test.dart', content);
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| - ClassDeclaration classC = unit.declarations[2];
|
| + addSource(path, content);
|
| + DartType typeC = (await driver.getUnitElement(path)).getType('C').type;
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| - (builder as DartEditBuilder).writeType(
|
| - resolutionMap.elementDeclaredByClassDeclaration(classC).type,
|
| - groupName: 'type');
|
| + (builder as DartEditBuilder).writeType(typeC, groupName: 'type');
|
| });
|
| });
|
| SourceEdit edit = getEdit(builder);
|
| @@ -621,18 +608,16 @@ f(int i, String s) {
|
| }
|
|
|
| test_writeType_groupName_addSupertypeProposals() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {} class B extends A {} class C extends B {}';
|
| - Source source = addSource('/test.dart', content);
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| - ClassDeclaration classC = unit.declarations[2];
|
| + addSource(path, content);
|
| + DartType typeC = (await driver.getUnitElement(path)).getType('C').type;
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| - (builder as DartEditBuilder).writeType(
|
| - resolutionMap.elementDeclaredByClassDeclaration(classC).type,
|
| - addSupertypeProposals: true,
|
| - groupName: 'type');
|
| + (builder as DartEditBuilder)
|
| + .writeType(typeC, addSupertypeProposals: true, groupName: 'type');
|
| });
|
| });
|
| SourceEdit edit = getEdit(builder);
|
| @@ -656,12 +641,12 @@ f(int i, String s) {
|
| }
|
|
|
| test_writeType_null() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {}';
|
| - Source source = addSource('/test.dart', content);
|
| - await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilder).writeType(null);
|
| });
|
| @@ -671,12 +656,13 @@ f(int i, String s) {
|
| }
|
|
|
| test_writeType_required_dynamic() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {}';
|
| - Source source = addSource('/test.dart', content);
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
| + CompilationUnit unit = (await driver.getResult(path))?.unit;
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilder).writeType(
|
| resolutionMap
|
| @@ -692,17 +678,15 @@ f(int i, String s) {
|
| }
|
|
|
| test_writeType_required_notNull() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {}';
|
| - Source source = addSource('/test.dart', content);
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| - ClassDeclaration classA = unit.declarations[0];
|
| + addSource(path, content);
|
| + DartType typeA = (await driver.getUnitElement(path)).getType('A').type;
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| - (builder as DartEditBuilder).writeType(
|
| - resolutionMap.elementDeclaredByClassDeclaration(classA).type,
|
| - required: true);
|
| + (builder as DartEditBuilder).writeType(typeA, required: true);
|
| });
|
| });
|
| SourceEdit edit = getEdit(builder);
|
| @@ -710,12 +694,12 @@ f(int i, String s) {
|
| }
|
|
|
| test_writeType_required_null() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {}';
|
| - Source source = addSource('/test.dart', content);
|
| - await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilder).writeType(null, required: true);
|
| });
|
| @@ -725,16 +709,15 @@ f(int i, String s) {
|
| }
|
|
|
| test_writeType_simpleType() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {}';
|
| - Source source = addSource('/test.dart', content);
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| - ClassDeclaration classA = unit.declarations[0];
|
| + addSource(path, content);
|
| + DartType typeA = (await driver.getUnitElement(path)).getType('A').type;
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| - (builder as DartEditBuilder).writeType(
|
| - resolutionMap.elementDeclaredByClassDeclaration(classA).type);
|
| + (builder as DartEditBuilder).writeType(typeA);
|
| });
|
| });
|
| SourceEdit edit = getEdit(builder);
|
| @@ -742,12 +725,12 @@ f(int i, String s) {
|
| }
|
|
|
| test_writeTypes_empty() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {}';
|
| - Source source = addSource('/test.dart', content);
|
| - await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilderImpl).writeTypes([]);
|
| });
|
| @@ -757,19 +740,16 @@ f(int i, String s) {
|
| }
|
|
|
| test_writeTypes_noPrefix() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {} class B {}';
|
| - Source source = addSource('/test.dart', content);
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| - ClassDeclaration classA = unit.declarations[0];
|
| - ClassDeclaration classB = unit.declarations[1];
|
| + addSource(path, content);
|
| + DartType typeA = (await driver.getUnitElement(path)).getType('A').type;
|
| + DartType typeB = (await driver.getUnitElement(path)).getType('B').type;
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| - (builder as DartEditBuilderImpl).writeTypes([
|
| - resolutionMap.elementDeclaredByClassDeclaration(classA).type,
|
| - resolutionMap.elementDeclaredByClassDeclaration(classB).type
|
| - ]);
|
| + (builder as DartEditBuilderImpl).writeTypes([typeA, typeB]);
|
| });
|
| });
|
| SourceEdit edit = getEdit(builder);
|
| @@ -777,12 +757,12 @@ f(int i, String s) {
|
| }
|
|
|
| test_writeTypes_null() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {}';
|
| - Source source = addSource('/test.dart', content);
|
| - await resolveLibraryUnit(source);
|
| + addSource(path, content);
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| (builder as DartEditBuilderImpl).writeTypes(null);
|
| });
|
| @@ -792,19 +772,17 @@ f(int i, String s) {
|
| }
|
|
|
| test_writeTypes_prefix() async {
|
| + String path = '/test.dart';
|
| String content = 'class A {} class B {}';
|
| - Source source = addSource('/test.dart', content);
|
| - CompilationUnit unit = await resolveLibraryUnit(source);
|
| - ClassDeclaration classA = unit.declarations[0];
|
| - ClassDeclaration classB = unit.declarations[1];
|
| + addSource(path, content);
|
| + DartType typeA = (await driver.getUnitElement(path)).getType('A').type;
|
| + DartType typeB = (await driver.getUnitElement(path)).getType('B').type;
|
|
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, 1, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
| builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
| - (builder as DartEditBuilderImpl).writeTypes([
|
| - resolutionMap.elementDeclaredByClassDeclaration(classA).type,
|
| - resolutionMap.elementDeclaredByClassDeclaration(classB).type
|
| - ], prefix: 'implements ');
|
| + (builder as DartEditBuilderImpl)
|
| + .writeTypes([typeA, typeB], prefix: 'implements ');
|
| });
|
| });
|
| SourceEdit edit = getEdit(builder);
|
| @@ -814,12 +792,15 @@ f(int i, String s) {
|
|
|
| @reflectiveTest
|
| class DartFileEditBuilderImplTest extends AbstractContextTest {
|
| + @override
|
| + bool get enableNewAnalysisDriver => true;
|
| +
|
| test_createEditBuilder() async {
|
| - Source source = addSource('/test.dart', 'library test;');
|
| - await resolveLibraryUnit(source);
|
| + String path = '/test.dart';
|
| + addSource(path, 'library test;');
|
| int timeStamp = 65;
|
| - DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
|
| - builder.addFileEdit(source, timeStamp, (FileEditBuilder builder) {
|
| + DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
| + await builder.addFileEdit(path, timeStamp, (FileEditBuilder builder) {
|
| int offset = 4;
|
| int length = 5;
|
| DartEditBuilderImpl editBuilder = (builder as DartFileEditBuilderImpl)
|
|
|