Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(83)

Side by Side Diff: packages/analyzer/test/src/task/incremental_element_builder_test.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 library test.src.task.incremental_element_builder_test;
6
7 import 'package:analyzer/src/generated/ast.dart';
8 import 'package:analyzer/src/generated/element.dart';
9 import 'package:analyzer/src/generated/source.dart';
10 import 'package:analyzer/src/task/incremental_element_builder.dart';
11 import 'package:unittest/unittest.dart';
12
13 import '../../reflective_tests.dart';
14 import '../../utils.dart';
15 import '../context/abstract_context.dart';
16
17 main() {
18 initializeTestEnvironment();
19 runReflectiveTests(IncrementalCompilationUnitElementBuilderTest);
20 }
21
22 @reflectiveTest
23 class IncrementalCompilationUnitElementBuilderTest extends AbstractContextTest {
24 Source source;
25
26 String oldCode;
27 CompilationUnit oldUnit;
28 CompilationUnitElement unitElement;
29
30 String newCode;
31 CompilationUnit newUnit;
32
33 CompilationUnitElementDelta unitDelta;
34
35 String getNodeText(AstNode node) {
36 return newCode.substring(node.offset, node.end);
37 }
38
39 test_directives_add() {
40 _buildOldUnit(r'''
41 library test;
42 import 'dart:math';
43 ''');
44 List<Directive> oldDirectives = oldUnit.directives.toList();
45 _buildNewUnit(r'''
46 library test;
47 import 'dart:async';
48 import 'dart:math';
49 ''');
50 List<Directive> newDirectives = newUnit.directives;
51 {
52 Directive newNode = newDirectives[0];
53 expect(newNode, same(oldDirectives[0]));
54 expect(getNodeText(newNode), "library test;");
55 LibraryElement element = newNode.element;
56 expect(element, isNotNull);
57 expect(element.nameOffset, newCode.indexOf('test;'));
58 }
59 {
60 Directive newNode = newDirectives[1];
61 expect(getNodeText(newNode), "import 'dart:async';");
62 ImportElement element = newNode.element;
63 expect(element, isNull);
64 }
65 {
66 Directive newNode = newDirectives[2];
67 expect(newNode, same(oldDirectives[1]));
68 expect(getNodeText(newNode), "import 'dart:math';");
69 ImportElement element = newNode.element;
70 expect(element, isNotNull);
71 expect(element.nameOffset, newCode.indexOf("import 'dart:math';"));
72 }
73 expect(unitDelta.hasDirectiveChange, isTrue);
74 }
75
76 test_directives_keepOffset_partOf() {
77 String libCode = '''
78 // comment to shift tokens
79 library my_lib;
80 part 'test.dart';
81 ''';
82 Source libSource = newSource('/lib.dart', libCode);
83 _buildOldUnit(
84 r'''
85 part of my_lib;
86 class A {}
87 ''',
88 libSource);
89 List<Directive> oldDirectives = oldUnit.directives.toList();
90 _buildNewUnit(r'''
91 part of my_lib;
92 class A {}
93 ''');
94 List<Directive> newDirectives = newUnit.directives;
95 {
96 Directive newNode = newDirectives[0];
97 expect(newNode, same(oldDirectives[0]));
98 expect(getNodeText(newNode), 'part of my_lib;');
99 LibraryElement element = newNode.element;
100 expect(element, isNotNull);
101 expect(element.nameOffset, libCode.indexOf('my_lib;'));
102 }
103 }
104
105 test_directives_remove() {
106 _buildOldUnit(r'''
107 library test;
108 import 'dart:async';
109 import 'dart:math';
110 ''');
111 List<Directive> oldDirectives = oldUnit.directives.toList();
112 _buildNewUnit(r'''
113 library test;
114 import 'dart:math';
115 ''');
116 List<Directive> newDirectives = newUnit.directives;
117 {
118 Directive newNode = newDirectives[0];
119 expect(newNode, same(oldDirectives[0]));
120 expect(getNodeText(newNode), "library test;");
121 LibraryElement element = newNode.element;
122 expect(element, isNotNull);
123 expect(element.nameOffset, newCode.indexOf('test;'));
124 }
125 {
126 Directive newNode = newDirectives[1];
127 expect(newNode, same(oldDirectives[2]));
128 expect(getNodeText(newNode), "import 'dart:math';");
129 ImportElement element = newNode.element;
130 expect(element, isNotNull);
131 expect(element.nameOffset, newCode.indexOf("import 'dart:math';"));
132 }
133 expect(unitDelta.hasDirectiveChange, isTrue);
134 }
135
136 test_directives_reorder() {
137 _buildOldUnit(r'''
138 library test;
139 import 'dart:math' as m;
140 import 'dart:async';
141 ''');
142 List<Directive> oldDirectives = oldUnit.directives.toList();
143 _buildNewUnit(r'''
144 library test;
145 import 'dart:async';
146 import 'dart:math' as m;
147 ''');
148 List<Directive> newDirectives = newUnit.directives;
149 {
150 Directive newNode = newDirectives[0];
151 expect(newNode, same(oldDirectives[0]));
152 expect(getNodeText(newNode), "library test;");
153 LibraryElement element = newNode.element;
154 expect(element, isNotNull);
155 expect(element.nameOffset, newCode.indexOf('test;'));
156 }
157 {
158 Directive newNode = newDirectives[1];
159 expect(newNode, same(oldDirectives[2]));
160 expect(getNodeText(newNode), "import 'dart:async';");
161 ImportElement element = newNode.element;
162 expect(element, isNotNull);
163 expect(element.nameOffset, newCode.indexOf("import 'dart:async';"));
164 }
165 {
166 Directive newNode = newDirectives[2];
167 expect(newNode, same(oldDirectives[1]));
168 expect(getNodeText(newNode), "import 'dart:math' as m;");
169 ImportElement element = newNode.element;
170 expect(element, isNotNull);
171 expect(element.nameOffset, newCode.indexOf("import 'dart:math' as m;"));
172 expect(element.prefix.nameOffset, newCode.indexOf("m;"));
173 }
174 expect(unitDelta.hasDirectiveChange, isFalse);
175 }
176
177 test_directives_sameOrder_insertSpaces() {
178 _buildOldUnit(r'''
179 library test;
180 import 'dart:async';
181 import 'dart:math';
182 ''');
183 List<Directive> oldDirectives = oldUnit.directives.toList();
184 _buildNewUnit(r'''
185 library test;
186
187 import 'dart:async' ;
188 import 'dart:math';
189 ''');
190 List<Directive> newDirectives = newUnit.directives;
191 {
192 Directive newNode = newDirectives[0];
193 expect(newNode, same(oldDirectives[0]));
194 expect(getNodeText(newNode), "library test;");
195 LibraryElement element = newNode.element;
196 expect(element, isNotNull);
197 expect(element.nameOffset, newCode.indexOf('test;'));
198 }
199 {
200 Directive newNode = newDirectives[1];
201 expect(newNode, same(oldDirectives[1]));
202 expect(getNodeText(newNode), "import 'dart:async' ;");
203 ImportElement element = newNode.element;
204 expect(element, isNotNull);
205 expect(element.nameOffset, newCode.indexOf("import 'dart:async' ;"));
206 }
207 {
208 Directive newNode = newDirectives[2];
209 expect(newNode, same(oldDirectives[2]));
210 expect(getNodeText(newNode), "import 'dart:math';");
211 ImportElement element = newNode.element;
212 expect(element, isNotNull);
213 expect(element.nameOffset, newCode.indexOf("import 'dart:math';"));
214 }
215 expect(unitDelta.hasDirectiveChange, isFalse);
216 }
217
218 test_directives_sameOrder_removeSpaces() {
219 _buildOldUnit(r'''
220 library test;
221
222 import 'dart:async' ;
223 import 'dart:math';
224 ''');
225 List<Directive> oldDirectives = oldUnit.directives.toList();
226 _buildNewUnit(r'''
227 library test;
228 import 'dart:async';
229 import 'dart:math';
230 ''');
231 List<Directive> newDirectives = newUnit.directives;
232 {
233 Directive newNode = newDirectives[0];
234 expect(newNode, same(oldDirectives[0]));
235 expect(getNodeText(newNode), "library test;");
236 LibraryElement element = newNode.element;
237 expect(element, isNotNull);
238 expect(element.nameOffset, newCode.indexOf('test;'));
239 }
240 {
241 Directive newNode = newDirectives[1];
242 expect(newNode, same(oldDirectives[1]));
243 expect(getNodeText(newNode), "import 'dart:async';");
244 ImportElement element = newNode.element;
245 expect(element, isNotNull);
246 expect(element.nameOffset, newCode.indexOf("import 'dart:async';"));
247 }
248 {
249 Directive newNode = newDirectives[2];
250 expect(newNode, same(oldDirectives[2]));
251 expect(getNodeText(newNode), "import 'dart:math';");
252 ImportElement element = newNode.element;
253 expect(element, isNotNull);
254 expect(element.nameOffset, newCode.indexOf("import 'dart:math';"));
255 }
256 expect(unitDelta.hasDirectiveChange, isFalse);
257 }
258
259 test_unitMembers_accessor_add() {
260 _buildOldUnit(r'''
261 get a => 1;
262 ''');
263 List<CompilationUnitMember> oldNodes = oldUnit.declarations.toList();
264 _buildNewUnit(r'''
265 get a => 1;
266 get b => 2;
267 ''');
268 List<CompilationUnitMember> newNodes = newUnit.declarations;
269 // nodes
270 FunctionDeclaration node1 = newNodes[0];
271 FunctionDeclaration node2 = newNodes[1];
272 expect(node1, same(oldNodes[0]));
273 // elements
274 PropertyAccessorElement elementA = node1.element;
275 PropertyAccessorElement elementB = node2.element;
276 expect(elementA, isNotNull);
277 expect(elementB, isNotNull);
278 expect(elementA.name, 'a');
279 expect(elementB.name, 'b');
280 // unit.types
281 expect(unitElement.topLevelVariables,
282 unorderedEquals([elementA.variable, elementB.variable]));
283 expect(unitElement.accessors, unorderedEquals([elementA, elementB]));
284 }
285
286 test_unitMembers_class_add() {
287 _buildOldUnit(r'''
288 class A {}
289 ''');
290 List<CompilationUnitMember> oldNodes = oldUnit.declarations.toList();
291 _buildNewUnit(r'''
292 class A {}
293 class B {}
294 ''');
295 List<CompilationUnitMember> newNodes = newUnit.declarations;
296 // nodes
297 CompilationUnitMember nodeA = newNodes[0];
298 CompilationUnitMember nodeB = newNodes[1];
299 expect(nodeA, same(oldNodes[0]));
300 // elements
301 ClassElement elementA = nodeA.element;
302 ClassElement elementB = nodeB.element;
303 expect(elementA, isNotNull);
304 expect(elementB, isNotNull);
305 expect(elementA.name, 'A');
306 expect(elementB.name, 'B');
307 // unit.types
308 expect(unitElement.types, unorderedEquals([elementA, elementB]));
309 // verify delta
310 expect(unitDelta.addedDeclarations, unorderedEquals([elementB]));
311 expect(unitDelta.removedDeclarations, unorderedEquals([]));
312 }
313
314 test_unitMembers_class_comments() {
315 _buildOldUnit(r'''
316 /// reference [bool] type.
317 class A {}
318 /// reference [int] type.
319 class B {}
320 /// reference [double] and [B] types.
321 class C {}
322 ''');
323 List<CompilationUnitMember> oldNodes = oldUnit.declarations.toList();
324 _buildNewUnit(r'''
325 /// reference [double] and [B] types.
326 class C {}
327 /// reference [bool] type.
328 class A {}
329 /// reference [int] type.
330 class B {}
331 ''');
332 List<CompilationUnitMember> newNodes = newUnit.declarations;
333 {
334 CompilationUnitMember newNode = newNodes[0];
335 expect(newNode, same(oldNodes[2]));
336 expect(
337 getNodeText(newNode),
338 r'''
339 /// reference [double] and [B] types.
340 class C {}''');
341 ClassElement element = newNode.element;
342 expect(element, isNotNull);
343 expect(element.name, 'C');
344 expect(element.nameOffset, newCode.indexOf('C {}'));
345 // [double] and [B] are still resolved
346 {
347 var docReferences = newNode.documentationComment.references;
348 expect(docReferences, hasLength(2));
349 expect(docReferences[0].identifier.staticElement.name, 'double');
350 expect(docReferences[1].identifier.staticElement,
351 same(newNodes[2].element));
352 }
353 }
354 {
355 CompilationUnitMember newNode = newNodes[1];
356 expect(newNode, same(oldNodes[0]));
357 expect(
358 getNodeText(newNode),
359 r'''
360 /// reference [bool] type.
361 class A {}''');
362 ClassElement element = newNode.element;
363 expect(element, isNotNull);
364 expect(element.name, 'A');
365 expect(element.nameOffset, newCode.indexOf('A {}'));
366 // [bool] is still resolved
367 {
368 var docReferences = newNode.documentationComment.references;
369 expect(docReferences, hasLength(1));
370 expect(docReferences[0].identifier.staticElement.name, 'bool');
371 }
372 }
373 {
374 CompilationUnitMember newNode = newNodes[2];
375 expect(newNode, same(oldNodes[1]));
376 expect(
377 getNodeText(newNode),
378 r'''
379 /// reference [int] type.
380 class B {}''');
381 ClassElement element = newNode.element;
382 expect(element, isNotNull);
383 expect(element.name, 'B');
384 expect(element.nameOffset, newCode.indexOf('B {}'));
385 // [int] is still resolved
386 {
387 var docReferences = newNode.documentationComment.references;
388 expect(docReferences, hasLength(1));
389 expect(docReferences[0].identifier.staticElement.name, 'int');
390 }
391 }
392 // verify delta
393 expect(unitDelta.addedDeclarations, unorderedEquals([]));
394 expect(unitDelta.removedDeclarations, unorderedEquals([]));
395 }
396
397 test_unitMembers_class_remove() {
398 _buildOldUnit(r'''
399 class A {}
400 class B {}
401 ''');
402 List<CompilationUnitMember> oldNodes = oldUnit.declarations.toList();
403 _buildNewUnit(r'''
404 class A {}
405 ''');
406 List<CompilationUnitMember> newNodes = newUnit.declarations;
407 // nodes
408 CompilationUnitMember nodeA = newNodes[0];
409 CompilationUnitMember nodeB = oldNodes[1];
410 expect(nodeA, same(oldNodes[0]));
411 // elements
412 ClassElement elementA = nodeA.element;
413 ClassElement elementB = nodeB.element;
414 expect(elementA, isNotNull);
415 expect(elementB, isNotNull);
416 expect(elementA.name, 'A');
417 expect(elementB.name, 'B');
418 // unit.types
419 expect(unitElement.types, unorderedEquals([elementA]));
420 // verify delta
421 expect(unitDelta.addedDeclarations, unorderedEquals([]));
422 expect(unitDelta.removedDeclarations, unorderedEquals([elementB]));
423 }
424
425 test_unitMembers_class_reorder() {
426 _buildOldUnit(r'''
427 class A {}
428 class B {}
429 class C {}
430 ''');
431 List<CompilationUnitMember> oldNodes = oldUnit.declarations.toList();
432 _buildNewUnit(r'''
433 class C {}
434 class A {}
435 class B {}
436 ''');
437 List<CompilationUnitMember> newNodes = newUnit.declarations;
438 {
439 CompilationUnitMember newNode = newNodes[0];
440 expect(newNode, same(oldNodes[2]));
441 expect(getNodeText(newNode), 'class C {}');
442 ClassElement element = newNode.element;
443 expect(element, isNotNull);
444 expect(element.name, 'C');
445 expect(element.nameOffset, newCode.indexOf('C {}'));
446 }
447 {
448 CompilationUnitMember newNode = newNodes[1];
449 expect(newNode, same(oldNodes[0]));
450 expect(getNodeText(newNode), 'class A {}');
451 ClassElement element = newNode.element;
452 expect(element, isNotNull);
453 expect(element.name, 'A');
454 expect(element.nameOffset, newCode.indexOf('A {}'));
455 }
456 {
457 CompilationUnitMember newNode = newNodes[2];
458 expect(newNode, same(oldNodes[1]));
459 expect(getNodeText(newNode), 'class B {}');
460 ClassElement element = newNode.element;
461 expect(element, isNotNull);
462 expect(element.name, 'B');
463 expect(element.nameOffset, newCode.indexOf('B {}'));
464 }
465 // verify delta
466 expect(unitDelta.addedDeclarations, unorderedEquals([]));
467 expect(unitDelta.removedDeclarations, unorderedEquals([]));
468 }
469
470 test_unitMembers_enum_add() {
471 _buildOldUnit(r'''
472 enum A {A1, A2}
473 ''');
474 List<CompilationUnitMember> oldNodes = oldUnit.declarations.toList();
475 _buildNewUnit(r'''
476 enum A {A1, A2}
477 enum B {B1, B2}
478 ''');
479 List<CompilationUnitMember> newNodes = newUnit.declarations;
480 // nodes
481 CompilationUnitMember nodeA = newNodes[0];
482 CompilationUnitMember nodeB = newNodes[1];
483 expect(nodeA, same(oldNodes[0]));
484 // elements
485 ClassElement elementA = nodeA.element;
486 ClassElement elementB = nodeB.element;
487 expect(elementA, isNotNull);
488 expect(elementB, isNotNull);
489 expect(elementA.name, 'A');
490 expect(elementB.name, 'B');
491 // unit.types
492 expect(unitElement.enums, unorderedEquals([elementA, elementB]));
493 // verify delta
494 expect(unitDelta.addedDeclarations, unorderedEquals([elementB]));
495 expect(unitDelta.removedDeclarations, unorderedEquals([]));
496 }
497
498 test_unitMembers_function_add() {
499 _buildOldUnit(r'''
500 a() {}
501 ''');
502 List<CompilationUnitMember> oldNodes = oldUnit.declarations.toList();
503 _buildNewUnit(r'''
504 a() {}
505 b() {}
506 ''');
507 List<CompilationUnitMember> newNodes = newUnit.declarations;
508 // nodes
509 CompilationUnitMember nodeA = newNodes[0];
510 CompilationUnitMember nodeB = newNodes[1];
511 expect(nodeA, same(oldNodes[0]));
512 // elements
513 FunctionElement elementA = nodeA.element;
514 FunctionElement elementB = nodeB.element;
515 expect(elementA, isNotNull);
516 expect(elementB, isNotNull);
517 expect(elementA.name, 'a');
518 expect(elementB.name, 'b');
519 // unit.types
520 expect(unitElement.functions, unorderedEquals([elementA, elementB]));
521 // verify delta
522 expect(unitDelta.addedDeclarations, unorderedEquals([elementB]));
523 expect(unitDelta.removedDeclarations, unorderedEquals([]));
524 }
525
526 test_unitMembers_functionTypeAlias_add() {
527 _buildOldUnit(r'''
528 typedef A();
529 ''');
530 List<CompilationUnitMember> oldNodes = oldUnit.declarations.toList();
531 _buildNewUnit(r'''
532 typedef A();
533 typedef B();
534 ''');
535 List<CompilationUnitMember> newNodes = newUnit.declarations;
536 // nodes
537 CompilationUnitMember nodeA = newNodes[0];
538 CompilationUnitMember nodeB = newNodes[1];
539 expect(nodeA, same(oldNodes[0]));
540 // elements
541 FunctionTypeAliasElement elementA = nodeA.element;
542 FunctionTypeAliasElement elementB = nodeB.element;
543 expect(elementA, isNotNull);
544 expect(elementB, isNotNull);
545 expect(elementA.name, 'A');
546 expect(elementB.name, 'B');
547 // unit.types
548 expect(
549 unitElement.functionTypeAliases, unorderedEquals([elementA, elementB]));
550 // verify delta
551 expect(unitDelta.addedDeclarations, unorderedEquals([elementB]));
552 expect(unitDelta.removedDeclarations, unorderedEquals([]));
553 }
554
555 test_unitMembers_topLevelVariable() {
556 _buildOldUnit(r'''
557 bool a = 1, b = 2;
558 int c = 3;
559 ''');
560 List<CompilationUnitMember> oldNodes = oldUnit.declarations.toList();
561 _buildNewUnit(r'''
562 int c = 3;
563
564 bool a =1, b = 2;
565 ''');
566 List<CompilationUnitMember> newNodes = newUnit.declarations;
567 {
568 TopLevelVariableDeclaration newNode = newNodes[0];
569 expect(newNode, same(oldNodes[1]));
570 expect(getNodeText(newNode), 'int c = 3;');
571 {
572 TopLevelVariableElement element =
573 newNode.variables.variables[0].element;
574 expect(element, isNotNull);
575 expect(element.name, 'c');
576 expect(element.nameOffset, newCode.indexOf('c = 3'));
577 }
578 }
579 {
580 TopLevelVariableDeclaration newNode = newNodes[1];
581 expect(newNode, same(oldNodes[0]));
582 expect(getNodeText(newNode), 'bool a =1, b = 2;');
583 {
584 TopLevelVariableElement element =
585 newNode.variables.variables[0].element;
586 expect(element, isNotNull);
587 expect(element.name, 'a');
588 expect(element.nameOffset, newCode.indexOf('a =1'));
589 }
590 {
591 TopLevelVariableElement element =
592 newNode.variables.variables[1].element;
593 expect(element, isNotNull);
594 expect(element.name, 'b');
595 expect(element.nameOffset, newCode.indexOf('b = 2'));
596 }
597 }
598 // verify delta
599 expect(unitDelta.addedDeclarations, unorderedEquals([]));
600 expect(unitDelta.removedDeclarations, unorderedEquals([]));
601 }
602
603 test_unitMembers_topLevelVariable_add() {
604 _buildOldUnit(r'''
605 int a, b;
606 ''');
607 List<CompilationUnitMember> oldNodes = oldUnit.declarations.toList();
608 _buildNewUnit(r'''
609 int a, b;
610 int c, d;
611 ''');
612 List<CompilationUnitMember> newNodes = newUnit.declarations;
613 // nodes
614 TopLevelVariableDeclaration node1 = newNodes[0];
615 TopLevelVariableDeclaration node2 = newNodes[1];
616 expect(node1, same(oldNodes[0]));
617 // elements
618 TopLevelVariableElement elementA = node1.variables.variables[0].element;
619 TopLevelVariableElement elementB = node1.variables.variables[1].element;
620 TopLevelVariableElement elementC = node2.variables.variables[0].element;
621 TopLevelVariableElement elementD = node2.variables.variables[1].element;
622 expect(elementA, isNotNull);
623 expect(elementB, isNotNull);
624 expect(elementC, isNotNull);
625 expect(elementD, isNotNull);
626 expect(elementA.name, 'a');
627 expect(elementB.name, 'b');
628 expect(elementC.name, 'c');
629 expect(elementD.name, 'd');
630 // unit.types
631 expect(unitElement.topLevelVariables,
632 unorderedEquals([elementA, elementB, elementC, elementD]));
633 expect(
634 unitElement.accessors,
635 unorderedEquals([
636 elementA.getter,
637 elementA.setter,
638 elementB.getter,
639 elementB.setter,
640 elementC.getter,
641 elementC.setter,
642 elementD.getter,
643 elementD.setter
644 ]));
645 }
646
647 test_unitMembers_topLevelVariable_final() {
648 _buildOldUnit(r'''
649 final int a = 1;
650 ''');
651 List<CompilationUnitMember> oldNodes = oldUnit.declarations.toList();
652 _buildNewUnit(r'''
653 final int a = 1;
654 ''');
655 List<CompilationUnitMember> newNodes = newUnit.declarations;
656 {
657 TopLevelVariableDeclaration newNode = newNodes[0];
658 expect(newNode, same(oldNodes[0]));
659 expect(getNodeText(newNode), 'final int a = 1;');
660 {
661 TopLevelVariableElement element =
662 newNode.variables.variables[0].element;
663 expect(element, isNotNull);
664 expect(element.name, 'a');
665 expect(element.nameOffset, newCode.indexOf('a = 1'));
666 }
667 }
668 // verify delta
669 expect(unitDelta.addedDeclarations, unorderedEquals([]));
670 expect(unitDelta.removedDeclarations, unorderedEquals([]));
671 }
672
673 void _buildNewUnit(String newCode) {
674 this.newCode = newCode;
675 context.setContents(source, newCode);
676 newUnit = context.parseCompilationUnit(source);
677 IncrementalCompilationUnitElementBuilder builder =
678 new IncrementalCompilationUnitElementBuilder(oldUnit, newUnit);
679 builder.build();
680 unitDelta = builder.unitDelta;
681 expect(newUnit.element, unitElement);
682 }
683
684 void _buildOldUnit(String oldCode, [Source libSource]) {
685 this.oldCode = oldCode;
686 source = newSource('/test.dart', oldCode);
687 if (libSource == null) {
688 libSource = source;
689 }
690 oldUnit = context.resolveCompilationUnit2(source, libSource);
691 unitElement = oldUnit.element;
692 expect(unitElement, isNotNull);
693 }
694 }
OLDNEW
« no previous file with comments | « packages/analyzer/test/src/task/html_work_manager_test.dart ('k') | packages/analyzer/test/src/task/inputs_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698