| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 import 'dart:async'; | 5 import 'dart:async'; |
| 6 | 6 |
| 7 import 'package:analysis_server/plugin/protocol/protocol.dart'; | 7 import 'package:analysis_server/plugin/protocol/protocol.dart'; |
| 8 import 'package:analysis_server/src/provisional/edit/utilities/change_builder_co
re.dart'; | 8 import 'package:analysis_server/src/provisional/edit/utilities/change_builder_co
re.dart'; |
| 9 import 'package:analysis_server/src/provisional/edit/utilities/change_builder_da
rt.dart'; | 9 import 'package:analysis_server/src/provisional/edit/utilities/change_builder_da
rt.dart'; |
| 10 import 'package:analysis_server/src/utilities/change_builder_dart.dart'; | 10 import 'package:analysis_server/src/utilities/change_builder_dart.dart'; |
| (...skipping 1123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1134 CompilationUnit unit = (await driver.getResult(path))?.unit; | 1134 CompilationUnit unit = (await driver.getResult(path))?.unit; |
| 1135 FunctionDeclaration function = unit.declarations[0]; | 1135 FunctionDeclaration function = unit.declarations[0]; |
| 1136 FunctionBody body = function.functionExpression.body; | 1136 FunctionBody body = function.functionExpression.body; |
| 1137 | 1137 |
| 1138 DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver); | 1138 DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver); |
| 1139 await builder.addFileEdit(path, 1, (FileEditBuilder builder) { | 1139 await builder.addFileEdit(path, 1, (FileEditBuilder builder) { |
| 1140 (builder as DartFileEditBuilder) | 1140 (builder as DartFileEditBuilder) |
| 1141 .convertFunctionFromSyncToAsync(body, typeProvider); | 1141 .convertFunctionFromSyncToAsync(body, typeProvider); |
| 1142 }); | 1142 }); |
| 1143 List<SourceEdit> edits = getEdits(builder); | 1143 List<SourceEdit> edits = getEdits(builder); |
| 1144 expect(edits, hasLength(2)); | 1144 expect(edits, hasLength(3)); |
| 1145 expect(edits[0].replacement, equalsIgnoringWhitespace('async')); | 1145 expect(edits[0].replacement, equalsIgnoringWhitespace('async')); |
| 1146 expect(edits[1].replacement, equalsIgnoringWhitespace('Future<String>')); | 1146 expect( |
| 1147 edits[1].replacement, equalsIgnoringWhitespace("import 'dart:async';")); |
| 1148 expect(edits[2].replacement, equalsIgnoringWhitespace('Future<String>')); |
| 1147 } | 1149 } |
| 1148 | 1150 |
| 1149 test_createEditBuilder() async { | 1151 test_createEditBuilder() async { |
| 1150 String path = '/test.dart'; | 1152 String path = '/test.dart'; |
| 1151 addSource(path, 'library test;'); | 1153 addSource(path, 'library test;'); |
| 1152 int timeStamp = 65; | 1154 int timeStamp = 65; |
| 1153 DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver); | 1155 DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver); |
| 1154 await builder.addFileEdit(path, timeStamp, (FileEditBuilder builder) { | 1156 await builder.addFileEdit(path, timeStamp, (FileEditBuilder builder) { |
| 1155 int offset = 4; | 1157 int offset = 4; |
| 1156 int length = 5; | 1158 int length = 5; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1170 | 1172 |
| 1171 CompilationUnit unit = (await driver.getResult(path))?.unit; | 1173 CompilationUnit unit = (await driver.getResult(path))?.unit; |
| 1172 FunctionDeclaration function = unit.declarations[0]; | 1174 FunctionDeclaration function = unit.declarations[0]; |
| 1173 TypeAnnotation type = function.returnType; | 1175 TypeAnnotation type = function.returnType; |
| 1174 | 1176 |
| 1175 DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver); | 1177 DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver); |
| 1176 await builder.addFileEdit(path, 1, (FileEditBuilder builder) { | 1178 await builder.addFileEdit(path, 1, (FileEditBuilder builder) { |
| 1177 (builder as DartFileEditBuilder) | 1179 (builder as DartFileEditBuilder) |
| 1178 .replaceTypeWithFuture(type, typeProvider); | 1180 .replaceTypeWithFuture(type, typeProvider); |
| 1179 }); | 1181 }); |
| 1180 SourceEdit edit = getEdit(builder); | 1182 List<SourceEdit> edits = getEdits(builder); |
| 1181 expect(edit.replacement, equalsIgnoringWhitespace('Future<String>')); | 1183 expect(edits, hasLength(2)); |
| 1184 expect( |
| 1185 edits[0].replacement, equalsIgnoringWhitespace("import 'dart:async';")); |
| 1186 expect(edits[1].replacement, equalsIgnoringWhitespace('Future<String>')); |
| 1182 } | 1187 } |
| 1183 } | 1188 } |
| 1184 | 1189 |
| 1185 @reflectiveTest | 1190 @reflectiveTest |
| 1186 class DartLinkedEditBuilderImplTest extends AbstractContextTest { | 1191 class DartLinkedEditBuilderImplTest extends AbstractContextTest { |
| 1187 @override | 1192 @override |
| 1188 bool get enableNewAnalysisDriver => true; | 1193 bool get enableNewAnalysisDriver => true; |
| 1189 | 1194 |
| 1190 test_addSuperTypesAsSuggestions() async { | 1195 test_addSuperTypesAsSuggestions() async { |
| 1191 String path = '/test.dart'; | 1196 String path = '/test.dart'; |
| 1192 addSource( | 1197 addSource( |
| 1193 path, | 1198 path, |
| 1194 ''' | 1199 ''' |
| 1195 class A {} | 1200 class A {} |
| 1196 class B extends A {} | 1201 class B extends A {} |
| 1197 class C extends B {} | 1202 class C extends B {} |
| 1198 '''); | 1203 '''); |
| 1199 CompilationUnit unit = (await driver.getResult(path))?.unit; | 1204 CompilationUnit unit = (await driver.getResult(path))?.unit; |
| 1200 ClassDeclaration classC = unit.declarations[2]; | 1205 ClassDeclaration classC = unit.declarations[2]; |
| 1201 DartLinkedEditBuilderImpl builder = new DartLinkedEditBuilderImpl(null); | 1206 DartLinkedEditBuilderImpl builder = new DartLinkedEditBuilderImpl(null); |
| 1202 builder.addSuperTypesAsSuggestions(classC.element.type); | 1207 builder.addSuperTypesAsSuggestions(classC.element.type); |
| 1203 List<LinkedEditSuggestion> suggestions = builder.suggestions; | 1208 List<LinkedEditSuggestion> suggestions = builder.suggestions; |
| 1204 expect(suggestions, hasLength(4)); | 1209 expect(suggestions, hasLength(4)); |
| 1205 expect(suggestions.map((s) => s.value), | 1210 expect(suggestions.map((s) => s.value), |
| 1206 unorderedEquals(['Object', 'A', 'B', 'C'])); | 1211 unorderedEquals(['Object', 'A', 'B', 'C'])); |
| 1207 } | 1212 } |
| 1208 } | 1213 } |
| OLD | NEW |